Fix for pagination issues in GitLab list repositories #41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
go fmt ./...
for formatting the code before submitting the pull request.Issue Description-
Gitlab List Repositories do not iterate through all the pages in the remote repository. This is because the "X-Total-Pages" are not populated by the remote API, which the library uses to decide whether to continue iteration or not.
Library requests for all projects the current user have visibility; this is similar to browsing "Explore Projects" (https://gitlab.com/explore/projects) in Gitlab. For performance reasons, if a query returns more than 10,000 records, GitLab doesn’t return the following headers:
https://docs.gitlab.com/ee/user/gitlab_com/index.html#pagination-response-headers
"X-Total-Pages" is available if you request "membership=true" projects; these are the projects where the current user is a member.
Fix -
vcsclient/gitlab.go - added membership=true to the request URI.
vcsclient/gitlab_test.go - Updated the test case, to mock pagination.
vcsclient/testdata/gitlab/projects_response.json - Added more data to return two pages, with a default page size of 20.