GitLab APIを使用して、アクセス可能なプロジェクトのリストを取得します(URL /api/v3/projects/all?private_token=xxx
)ですが、何らかの理由でリストに含まれていないプロジェクトが6〜7個あります。
編集:私のユーザーは管理者であり、_all/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
私はこれをテストしたところ、GitLab APIレスポンスがページネーションを使用しているようです。ドキュメント( http://api.gitlab.org )によると、ページあたりの結果のデフォルト数は20に設定され、開始ページは1です。
ページごとの最大結果を調整するには、HTTP要求行でper_page
変数を使用する必要があります。 per_page
の最大値よりも多くのリポジトリがある場合は、page
を使用してページ番号を変更することもできます。 per_page
の最大値として100を指定できます。
たとえば、リクエストは次のようになります。
https://git.example.com/api/v3/projects/all?page=1&per_page=100&private_token=abc123
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