diff options
| author | mo khan <mo@mokhan.ca> | 2024-06-05 12:20:12 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2024-06-05 12:20:12 -0600 |
| commit | 5ee7e972f659afb951944873de024f88c1d1b149 (patch) | |
| tree | 68b640291c5cf7a3f5f28787300b138bcd2415f3 | |
| parent | 441696da61af739f8cdadf122e7a669452094fbb (diff) | |
Paginate through each page of results
| -rw-r--r-- | pkg/gitlab/group.go | 15 |
1 files 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") } } |
