我使用 GitLab API 来获取我有权访问的项目列表(URL /api/v3/projects/all?private_token=xxx
),但由于某种原因,有 6-7 个项目未包含在列表中。
编辑:我的用户是管理员,我想列出URL 指示的所有项目。/projects/all
我可以使用 git 本身和 GitLab Web 界面访问这些项目。有什么建议为什么项目不会显示在 API 的列表中?
所有缺失的项目都比其他项目新。我尝试刷新我的 API 令牌;没变。
版本:
GitLab 6.4.3
GitLab Shell 1.8.0
GitLab API v3
Ruby 2.0.0p353
Rails 4.0.2
我刚刚对此进行了测试,看起来 GitLab API 响应正在使用分页。根据文档 ( http://api.gitlab.org ),每页的默认结果数设置为 20,起始页为 1。
要调整每页的最大结果,您需要使用
per_page
HTTP 请求行中的变量。如果您的page
存储库数量超过per_page
. 您可以指定最大值per_page
为 100。例如,您的请求可能如下所示:
page
和变量不是必需的per_page
,因为它们具有默认值,因此如果您不想包含它们,则不需要包含它们。希望这可以解决您的问题。
是的,它适用于分页,您需要更改“页面”参数值并多次调用,如下所示。
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
如果您不确定页数,请按以下方式使用:
https://git.example.com/api/v3/projects/all?per_page=-1&private_token=some_token_key