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"]:

Reply via email to