mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
teams: Correctly handle more than 50 teams.
The page size limit for GET requests on /api/v1/orgs/guix/teams is 50. Thus, ‘organization-teams’ was previously reporting at most 50 teams, even though there are now 52 of them. This patch fixes that. * etc/teams.scm (organization-teams): Rename to… (organization-teams/paginated): … this. Add ‘page’ parameter and honor it. Remove “limit” URL parameter. (organization-teams): New procedure. Fixes: guix/guix#5833 Reported-by: Maxim Cournoyer <maxim@guixotic.coop> Change-Id: Ia25685e001e8522ca4268557ade7d29b5106ae00 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #5883
This commit is contained in:
@@ -285,14 +285,25 @@ PARAMETERS."
|
||||
|
||||
;; API documentation at <https://codeberg.org/api/swagger>.
|
||||
|
||||
(define-forgejo-request (organization-teams organization)
|
||||
"Return the list of teams of ORGANIZATION."
|
||||
(define-forgejo-request (organization-teams/paginated organization page)
|
||||
"Return the list of teams of ORGANIZATION, for the given PAGE (1-indexed)."
|
||||
(GET "orgs" organization "teams"
|
||||
& '(("limit" . "100"))) ;get up to 100 teams
|
||||
& `(("page" . ,(number->string page))))
|
||||
=> 200
|
||||
(lambda (port)
|
||||
(map json->forgejo-team (vector->list (json->scm port)))))
|
||||
|
||||
(define (organization-teams token organization)
|
||||
"Return the list of teams of ORGANIZATION."
|
||||
(let loop ((index 1)
|
||||
(pages '()))
|
||||
(match (organization-teams/paginated token organization index)
|
||||
(()
|
||||
(concatenate (reverse pages)))
|
||||
(lst
|
||||
(loop (+ 1 index)
|
||||
(cons lst pages))))))
|
||||
|
||||
(define-forgejo-request (create-team organization team)
|
||||
"Create TEAM, a Forgejo team, under ORGANIZATION."
|
||||
(POST "orgs" organization "teams")
|
||||
|
||||
Reference in New Issue
Block a user