commit:     2c860c05c6129224148aea2d22f9cc5e0237b579
Author:     Thomas Bracht Laumann Jespersen <t <AT> laumann <DOT> xyz>
AuthorDate: Sat Mar 14 15:23:41 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 14 15:31:05 2026 +0000
URL:        
https://gitweb.gentoo.org/proj/assign-pull-requests.git/commit/?id=2c860c05

codeberg: Request project team reviews

Signed-off-by: Thomas Bracht Laumann Jespersen <t <AT> laumann.xyz>
Part-of: https://github.com/gentoo/assign-pull-requests/pull/12
Closes: https://github.com/gentoo/assign-pull-requests/pull/12
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 assign-pull-requests-codeberg.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/assign-pull-requests-codeberg.py b/assign-pull-requests-codeberg.py
index 88a9b65..6fc2c2b 100644
--- a/assign-pull-requests-codeberg.py
+++ b/assign-pull-requests-codeberg.py
@@ -43,6 +43,12 @@ def map_proj(proj, proj_mapping):
     return "~~[%s (project)]~~" % proj
 
 
+def map_proj_team(proj, proj_mapping):
+    if proj.lower() in proj_mapping:
+        return proj_mapping[proj.lower()].lower().removeprefix("gentoo/")
+    return None
+
+
 def bugz_user_query(mails, bz):
     return bz.getusers(mails)
 
@@ -218,6 +224,7 @@ def assign_one(
     invalid_bug_linked = False
     unique_maints = set()
     totally_all_maints = set()
+    team_reviewers = set()
 
     # TODO Try to determine unique set of maintainers
     if packages:
@@ -228,6 +235,7 @@ def assign_one(
                 metadata_xml = lxml.etree.parse(ppath)
             except (OSError, IOError):
                 pkg_maints[p] = ["@gentoo/proxy-maint (new package)"]
+                team_reviewers.add("proxy-maint")
                 new_package = True
             else:
                 existing_package = True
@@ -241,6 +249,9 @@ def assign_one(
                     # mapping is email -> codeberg handle
                     if m.get("type") == "project":
                         ms = map_proj(memail, proj_mapping)
+                        team = map_proj_team(proj, proj_mapping)
+                        if team is not None:
+                            team_reviewers.add(team)
                     else:
                         ms = map_dev(memail, dev_mapping)
 
@@ -263,11 +274,13 @@ def assign_one(
                 else:
                     # maintainer-needed!
                     pkg_maints[p] = ["@gentoo/proxy-maint (maintainer needed)"]
+                    team_reviewers.add("proxy-maint")
                     maint_needed = True
 
         if len(unique_maints) > assignee_limit:
             cant_assign = True
             body += "\n@gentoo/codeberg: Too many disjoint maintainers, 
disabling auto-assignment."
+            team_reviewers.add("codeberg")
         else:
             for p in sorted(packages):
                 body += "\n**%s**: %s" % (p, ", ".join(pkg_maints[p]))
@@ -276,6 +289,7 @@ def assign_one(
     else:
         cant_assign = True
         body += "\n@gentoo/codeberg"
+        team_reviewers.add("codeberg")
 
     if len(unique_maints) > assignee_limit:
         totally_all_maints = set()
@@ -370,6 +384,7 @@ def assign_one(
 
     # finally! post comment...
     repo.create_comment(pr_id, body)
+    repo.request_review(pr_id, team_reviewers=list(team_reviewers))
 
     updated_labels = []
     for l in pr["labels"]:

Reply via email to