teams: Add 'cc-members-header-cmd' action.

* etc/teams.scm.in (patch->teams): New procedure.
(main): Use it.  Add a new "cc-members-header-cmd" command; document it.
This commit is contained in:
Maxim Cournoyer 2023-04-22 23:35:59 -04:00
parent a9cbf8b379
commit 0eddeb9896
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 15 additions and 5 deletions

View File

@ -5,7 +5,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -696,6 +696,12 @@ and REV-END, two git revision strings."
(rev-start (string-append rev-end "^")))
(list rev-start rev-end)))
(define (patch->teams patch-file)
"Return the name of the teams in scope for the changes in PATCH-FILE."
(map (compose symbol->string team-id)
(find-team-by-scope (apply diff-revisions
(git-patch->revisions patch-file)))))
(define (main . args)
(match args
@ -708,11 +714,13 @@ and REV-END, two git revision strings."
(("cc-members" rev-start rev-end)
(apply cc (find-team-by-scope
(diff-revisions rev-start rev-end))))
(("cc-members-header-cmd" patch-file)
(for-each (lambda (team-name)
(list-members (find-team team-name) (current-output-port)
"X-Debbugs-Cc: "))
(patch->teams patch-file)))
(("get-maintainer" patch-file)
(apply main "list-members"
(map (compose symbol->string team-id)
(find-team-by-scope (apply diff-revisions
(git-patch->revisions patch-file))))))
(apply main "list-members" (patch->teams patch-file)))
(("list-teams" . args)
(list-teams))
(("list-members" . team-names)
@ -729,6 +737,8 @@ Commands:
get git send-email flags for cc-ing <team-name>
cc-members <start> <end> | patch
cc teams related to files changed between revisions or in a patch file
cc-members-header-cmd <patch>
cc-members variant for use with 'git send-email --header-cmd'
list-teams
list teams and their members
list-members <team-name>