すべてのプロジェクトとグループを一覧表示する 質問する

すべてのプロジェクトとグループを一覧表示する 質問する

プライベートトークンを使用して GitLab 内のすべてのプロジェクトとグループを一覧表示する最も簡単な方法は何ですか?

ベストアンサー1

プライベート トークンのみが利用可能な場合は、API のみを使用できます。

プロジェクト

プロジェクトをリクエストするには、次のコマンドを使用します。

curl "https://<host>/api/v4/projects?private_token=<your private token>"

これで最初の20件のエントリが返されます。さらに取得するには、パラメータを追加します。per_page

curl "https://<host>/api/v4/projects?private_token=<your private token>&per_page=100"

このパラメータを使用すると、エントリ間のリクエストが可能20です100REST API ページネーションドキュメンテーション)。

すべてのプロジェクトが必要な場合は、ページをループする必要があります。別のページに移動するには、パラメータを追加しますpage

curl "https://<host>/api/v4/projects?private_token=<your private token>&per_page=100&page=<page_number>"

ここで、ページ数がいくつあるか知りたいと思うかもしれません。そのためには、curlパラメータを追加します--head。これにより、ペイロードではなくヘッダーが返されます。

結果は次のようになります。

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 13 Jul 2017 17:43:24 GMT
Content-Type: application/json
Content-Length: 29428
Cache-Control: no-cache
Link: <request link>
Vary: Origin
X-Frame-Options: SAMEORIGIN
X-Next-Page: 2
X-Page: 1
X-Per-Page: 20
X-Prev-Page:
X-Request-Id: 80ecc167-4f3f-4c99-b09d-261e240e7fe9
X-Runtime: 4.117558
X-Total: 312257
X-Total-Pages: 15613
Strict-Transport-Security: max-age=31536000

ここで興味深い部分はX-TotalとですX-Total-Pages。1 つ目は利用可能なエントリの数、2 つ目は合計ページ数です。

リクエストを処理し、最後に結果を連結するには、Python または他の種類のスクリプトを使用することをお勧めします。

検索を絞り込みたい場合は、次の wiki ページを参照してください。プロジェクト

グループ

グループの場合は、カール内のprojectsを に置き換えるだけです。groupshttps://docs.gitlab.com/ce/api/groups.html#グループのリスト


アップデート:

Gitlab API クライアント/ラッパーの公式リストはこちらです:
https://docs.gitlab.com/ee/api/rest/#third-party-clients

これらのいずれかを使用することを強くお勧めします。

おすすめ記事