guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 1b7a11efb0e5efd987f795006437888e681751c4
Author: Ludovic Courtès <l...@gnu.org>
AuthorDate: Fri May 23 18:08:05 2025 +0200

    teams: Use suitable team identifiers for Codeberg.
    
    The “c++” team has to be called “cpp”.
    
    * etc/teams.scm (team-id->forgejo-id): New procedure.
    (team->codeowners-snippet): Use it.
    
    Change-Id: I10619d8833b5c747504f26b7b0eedb9d61bfd812
---
 etc/teams.scm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/etc/teams.scm b/etc/teams.scm
index a57d132787..9fa189a92c 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -1024,13 +1024,27 @@ and REV-END, two git revision strings."
        (find-team-by-scope (apply diff-revisions
                                   (git-patch->revisions patch-file)))))
 
+(define (team-id->forgejo-id id)
+  "Return a name (string) suitable as a Forgejo team name."
+  (define valid                                   ;"AlphaDashDot"
+    (char-set-union char-set:ascii (char-set #\-) (char-set #\.)))
+
+  (define (valid? chr)
+    (char-set-contains? valid chr))
+
+  (string-map (match-lambda
+                (#\+ #\p)                         ;special case for "c++"
+                ((? valid? chr) chr)
+                (_ #\-))
+              (symbol->string id)))
+
 (define (team->codeowners-snippet team)
   (string-join (map (lambda (scope)
                       (format #f "~50a @guix/~a"
                               (if (regexp*? scope)
                                   (regexp*-pattern scope)
                                   (regexp-quote scope))
-                              (team-id team)))
+                              (team-id->forgejo-id (team-id team))))
                     (team-scope team))
                "\n"
                'suffix))

Reply via email to