diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2026-01-24 21:39:53 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2026-01-29 11:51:37 +0100 |
| commit | 9dd02e1f9112c1bae3f86da0fa23a94da5b91c7d (patch) | |
| tree | ca3bc660fecb2d621cf45fe28033ecf2698ec22d | |
| parent | cf81cfadbd22f70807df57b94afca4507aa71491 (diff) | |
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
| -rwxr-xr-x | etc/teams.scm | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/etc/teams.scm b/etc/teams.scm index 1650286c425..5e5d5643edd 100755 --- a/etc/teams.scm +++ b/etc/teams.scm @@ -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") |
