From 5ee7e972f659afb951944873de024f88c1d1b149 Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 5 Jun 2024 12:20:12 -0600 Subject: Paginate through each page of results --- pkg/gitlab/group.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/gitlab/group.go b/pkg/gitlab/group.go index 1969610..553d7dc 100644 --- a/pkg/gitlab/group.go +++ b/pkg/gitlab/group.go @@ -21,10 +21,17 @@ func NewGroup(gl *GitLab, id int) *Group { } func (group *Group) EachIssue(fn func(*Issue)) { - response := group.api.Get(group.url + "/issues") - defer response.Body.Close() + page := "1" + perPage := "100" + for page != "" { + response := group.api.Get(fmt.Sprintf("%v/issues?page=%v&per_page=%v", group.url, page, perPage)) + defer response.Body.Close() - for _, issue := range x.Must(FromIssues(response.Body)) { - fn(&issue) + for _, issue := range x.Must(FromIssues(response.Body)) { + fn(&issue) + } + + page = response.Header.Get("x-next-page") + perPage = response.Header.Get("x-per-page") } } -- cgit v1.2.3