commit: 48a99de8bd72bdb9e7d52f738a04201a0a9b4358 Author: Thomas Bracht Laumann Jespersen <t <AT> laumann <DOT> xyz> AuthorDate: Sat Mar 14 16:56:48 2026 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Sat Mar 14 18:33:29 2026 +0000 URL: https://gitweb.gentoo.org/proj/assign-pull-requests.git/commit/?id=48a99de8
codeberg: request reviews from individual maintainers It appears that it's not possible to request reviews from the PR submitter, so we take care to filter out that user (for self-maintained packages). Signed-off-by: Thomas Bracht Laumann Jespersen <t <AT> laumann.xyz> Closes: https://github.com/gentoo/assign-pull-requests/pull/14 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> assign-pull-requests-codeberg.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/assign-pull-requests-codeberg.py b/assign-pull-requests-codeberg.py index 13259a5..9b9ff72 100644 --- a/assign-pull-requests-codeberg.py +++ b/assign-pull-requests-codeberg.py @@ -172,6 +172,7 @@ def assign_one( bug_limit = 5 body = pr["body"] pr_id = pr["number"] + pr_submitter = pr["user"]["login"] # Check if we are to reassign if "[please reassign]" in pr["title"].lower(): @@ -206,7 +207,7 @@ def assign_one( body = f"""## Pull Request assignment -*Submitter*: @{pr["user"]["login"]} +*Submitter*: @{pr_submitter} *Areas affected*: {", ".join(sorted(areas)) or "(none, wtf?)"} *Packages affected*: {", ".join(sorted(packages)[:5]) or "(none)"}{", ..." if len(packages) > 5 else ""} """ @@ -224,6 +225,7 @@ def assign_one( invalid_bug_linked = False unique_maints = set() totally_all_maints = set() + reviewers = set() team_reviewers = set() # TODO Try to determine unique set of maintainers @@ -254,6 +256,8 @@ def assign_one( team_reviewers.add(team) else: ms = map_dev(memail, dev_mapping) + if u := dev_mapping.get(memail.lower()) and u != pr_submitter: + reviewers.add(u) for subm in m: if m.tag == "description" and m.get("lang", "en") == "en": @@ -266,7 +270,7 @@ def assign_one( pkg_maints[p] = all_ms - if "@" + pr["user"]["login"] not in all_ms: + if f"@{pr_submitter}" not in all_ms: self_maintained = False unique_maints.add(tuple(sorted(all_ms))) if len(unique_maints) > assignee_limit: @@ -384,7 +388,9 @@ def assign_one( # finally! post comment... repo.create_comment(pr_id, body) - repo.request_review(pr_id, team_reviewers=list(team_reviewers)) + repo.request_review( + pr_id, reviewers=list(reviewers), team_reviewers=list(team_reviewers) + ) updated_labels = [] for l in pr["labels"]:
