commit:     26b530c633d5e5e0581f7a168bf53ea435157928
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 14 10:56:38 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 14 10:56:38 2026 +0000
URL:        
https://gitweb.gentoo.org/proj/assign-pull-requests.git/commit/?id=26b530c6

Post assignments as comments, not reviews

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 assign-pull-requests-codeberg.py | 20 ++++++++++++--------
 codebergapi.py                   | 14 ++++++--------
 2 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/assign-pull-requests-codeberg.py b/assign-pull-requests-codeberg.py
index d15943d..1cf7b24 100644
--- a/assign-pull-requests-codeberg.py
+++ b/assign-pull-requests-codeberg.py
@@ -138,13 +138,17 @@ def scanfiles(filelist, categories):
     return areas, packages, metadata_xml_files
 
 
-def delete_old_review(repo, pr_id, codeberg_username):
-    reviews = repo.get_reviews(pr_id)
+def delete_old_assignment(repo, pr_id, codeberg_username):
+    comments = repo.get_comments(pr_id)
+    to_remove = []
 
-    for rv in reviews:
-        if rv["user"]["login"] == codeberg_username:
-            if "Pull Request assignment" in rv["body"]:
-                repo.delete_review(pr_id, rv["id"])
+    for c in comments:
+        if c["user"]["login"] == codeberg_username:
+            if "Pull Request assignment" in c["body"]:
+                to_remove.append(c["id"])
+
+    for c_id in to_remove:
+        repo.delete_comment(c_id)
 
 
 def assign_one(
@@ -185,7 +189,7 @@ def assign_one(
         assignee_limit = 9999
         bug_limit = 9999
 
-    delete_old_review(repo, pr_id, codeberg_username)
+    delete_old_assignment(repo, pr_id, codeberg_username)
 
     commits = repo.commits(pr_id)
     files = repo.files(pr_id)
@@ -368,7 +372,7 @@ def assign_one(
     body += "\n\n---\nIn order to force reassignment and/or bug reference 
scan, please append `[please reassign]` to the pull request title.\n\n*Docs*: 
[Code of Conduct](https://wiki.gentoo.org/wiki/Project:Council/Code_of_conduct) 
● [Copyright policy](https://www.gentoo.org/glep/glep-0076.html) 
([expl.](https://dev.gentoo.org/~mgorny/articles/new-gentoo-copyright-policy-explained.html))
 ● [Devmanual](https://devmanual.gentoo.org/) ● [Codeberg 
PRs](https://wiki.gentoo.org/wiki/Project:Codeberg/Pull_requests) ● 
[Proxy-maint 
guide](https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers/User_Guide)"
 
     # finally! post comment...
-    repo.create_review(pr_id, body)
+    repo.create_comment(pr_id, body)
 
     updated_labels = []
     for l in pr["labels"]:

diff --git a/codebergapi.py b/codebergapi.py
index 1c99034..3c591e4 100644
--- a/codebergapi.py
+++ b/codebergapi.py
@@ -89,21 +89,19 @@ class CodebergAPI:
     def files(self, pr_id: int) -> list[dict]:
         return 
self.session.get(f"{self.repos_baseurl}/pulls/{pr_id}/files").json()
 
-    def get_reviews(self, pr_id: int) -> list[dict]:
-        return 
self.session.get(f"{self.repos_baseurl}/pulls/{pr_id}/reviews").json()
+    def get_comments(self, pr_id: int) -> list[dict]:
+        return 
self._get_paginated(f"{self.repos_baseurl}/issues/{pr_id}/comments")
 
-    def create_review(self, pr_id: int, comment: str) -> None:
-        # Does not appear to be possible to simply post comments
-        # https://codeberg.org/api/swagger#/repository/repoCreatePullReview
+    def create_comment(self, pr_id: int, comment: str) -> None:
         self.session.post(
-            f"{self.repos_baseurl}/pulls/{pr_id}/reviews",
+            f"{self.repos_baseurl}/issues/{pr_id}/comments",
             json={
                 "body": comment,
             },
         )
 
-    def delete_review(self, pr_id: int, review_id: int) -> None:
-        
self.session.delete(f"{self.repos_baseurl}/pulls/{pr_id}/reviews/{review_id}")
+    def delete_comment(self, comment_id: int) -> None:
+        
self.session.delete(f"{self.repos_baseurl}/issues/comments/{comment_id}")
 
     def teams(self, org: str) -> Generator[None, dict, None]:
         # https://codeberg.org/api/swagger#/organization/orgListTeams

Reply via email to