Commit 5ee7e97

mo khan <mo@mokhan.ca>
2024-06-05 18:20:12
Paginate through each page of results
1 parent 441696d
Changed files (1)
pkg
gitlab
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")
 	}
 }