summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2024-06-05 12:20:12 -0600
committermo khan <mo@mokhan.ca>2024-06-05 12:20:12 -0600
commit5ee7e972f659afb951944873de024f88c1d1b149 (patch)
tree68b640291c5cf7a3f5f28787300b138bcd2415f3
parent441696da61af739f8cdadf122e7a669452094fbb (diff)
Paginate through each page of results
-rw-r--r--pkg/gitlab/group.go15
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")
}
}