我使用 GitLab API 来获取我有权访问的项目列表(URL /api/v3/projects/all?private_token=xxx
),但由于某种原因,有 6-7 个项目未包含在列表中。
编辑:我的用户是管理员,我想列出全部项目如/projects/all
URL 所示。
我可以使用 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
答案1
我刚刚测试了这一点,看起来 GitLab API 响应正在使用分页。根据文档(http://api.gitlab.org),默认每页显示结果数为20,起始页为1。
要调整每页的最大结果数,您需要在 HTTP 请求行中使用变量。如果您的存储库数量超过最大值,也per_page
可以使用 更改页码。您可以指定最大值100。page
per_page
per_page
例如,您的请求可能如下所示:
https://git.example.com/api/v3/projects/all?page=1&per_page=100&private_token=abc123
page
和变量per_page
不是必需的,因为它们具有默认值,因此如果您不想,则不需要包含它们。
希望这能解决您的问题。
答案2
答案3
如果您不确定页数,请按如下方式使用:
https://git.example.com/api/v3/projects/all?per_page=-1&private_token=some_token_key