~ruther/guix-local

9687a9fb6661b18f199dccd4b7b4c8340ff98a56 — Ludovic Courtès 5 months ago 633ed51
teams: ‘sync-codeberg-teams’ actually removes team members when needed.

This fixes a pretty fun omission.

* etc/teams.scm (remove-team-member): New Forgejo request.
(update-team): Use it.

Change-Id: Id3e4d3d2290fe6e030b38fae621f2db4e67cc6e6
1 files changed, 8 insertions(+), 1 deletions(-)

M etc/teams.scm
M etc/teams.scm => etc/teams.scm +8 -1
@@ 326,6 326,12 @@ PARAMETERS."
       "members" user)
  => 204)

(define-forgejo-request (remove-team-member team user)
  "Remove USER (a string) from TEAM, a Forgejo team."
  (DELETE "teams" (number->string (forgejo-team-id team))
          "members" user)
  => 204)

(define-forgejo-request (repository-teams owner repository)
  "Return the list of teams assigned to REPOSITORY of OWNER."
  (GET "repos" owner repository "teams"


@@ 372,7 378,8 @@ PARAMETERS."
              to-add)
    (for-each (lambda (user)
                (format log-port "removing '~a' from team '~a'~%"
                        user (forgejo-team-name forgejo-team)))
                        user (forgejo-team-name forgejo-team))
                (remove-team-member token forgejo-team user))
              to-remove)))

(define* (synchronize-team token team