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