diff --git a/cmd/app/merge_requests.go b/cmd/app/merge_requests.go index 86f697cd..a72408db 100644 --- a/cmd/app/merge_requests.go +++ b/cmd/app/merge_requests.go @@ -35,16 +35,23 @@ func (a mergeRequestListerService) ServeHTTP(w http.ResponseWriter, r *http.Requ payload.Scope = gitlab.Ptr("all") } - mergeRequests, res, err := a.client.ListProjectMergeRequests(a.projectInfo.ProjectId, payload) + payload.PerPage = 100 + var mergeRequests []*gitlab.BasicMergeRequest + for nextPage := int64(1); nextPage != 0; { + payload.Page = nextPage + mrs, res, err := a.client.ListProjectMergeRequests(a.projectInfo.ProjectId, payload) + if err != nil { + handleError(w, err, "Failed to list merge requests", http.StatusInternalServerError) + return + } - if err != nil { - handleError(w, err, "Failed to list merge requests", http.StatusInternalServerError) - return - } + if res.StatusCode >= 300 { + handleError(w, GenericError{r.URL.Path}, "Failed to list merge requests", res.StatusCode) + return + } - if res.StatusCode >= 300 { - handleError(w, GenericError{r.URL.Path}, "Failed to list merge requests", res.StatusCode) - return + mergeRequests = append(mergeRequests, mrs...) + nextPage = res.NextPage } if len(mergeRequests) == 0 { @@ -58,7 +65,7 @@ func (a mergeRequestListerService) ServeHTTP(w http.ResponseWriter, r *http.Requ MergeRequests: mergeRequests, } - err = json.NewEncoder(w).Encode(response) + err := json.NewEncoder(w).Encode(response) if err != nil { handleError(w, err, "could not encode response", http.StatusInternalServerError) } diff --git a/lua/gitlab/state.lua b/lua/gitlab/state.lua index 3a6df9b5..67830c2e 100644 --- a/lua/gitlab/state.lua +++ b/lua/gitlab/state.lua @@ -559,7 +559,7 @@ M.dependencies = { opts["not[label]"] = opts.notlabel opts.notlabel = nil end - return opts or vim.json.decode("{}") + return opts or {} end, }, merge_requests_by_username = {