I use the GitLab API to fetch a list of the projects I have access to (URL /api/v3/projects/all?private_token=xxx
), but there are 6-7 projects that are not included in the list for some reason.
EDIT: My user is an administrator, and I want to list all projects like the /projects/all
URL indicates.
I have access to the projects just fine using git itself and the GitLab web interface. Any suggestions why the projects wouldn't be shown in the list from the API?
All the projects missing are newer than the others. I have tried refreshing my API token; no change.
Versions:
GitLab 6.4.3
GitLab Shell 1.8.0
GitLab API v3
Ruby 2.0.0p353
Rails 4.0.2
I just tested this and it looks like the GitLab API response is using pagination. According to the documentation (http://api.gitlab.org), the default number of results per page is set to 20 and the starting page is 1.
To adjust the maximum results per page, you need to use the
per_page
variable in the HTTP request line. You can change the page number by usingpage
as well, if you have more repositories than the maximum value ofper_page
. You can specify a maximumper_page
value of 100.For example, you request may look like:
The
page
andper_page
variables are not required as they have default values, so you do not need to include either if you don't want to.Hopefully this solves your problem.
yes, it works with pagination you need to change the "page" parameter value and call multiple times as follows.
https://gitlab.example.com/api/v3/projects/all?page=1&per_page=100&private_token=some_token
https://gitlab.example.com/api/v3/projects/all?page=2&per_page=100&private_token=some_token
If you aren't sure about number of pages use it as below:
https://git.example.com/api/v3/projects/all?per_page=-1&private_token=some_token_key