web-dev-qa-db-ja.com

gitlab apiのプロジェクトIDはどこにありますか?

私は彼らのサーバーでgitlabを使用しています。このようなAPIを使用して、最新のビルドされたアーティファクト(gitlab-ciでビルド)をダウンロードしたい

curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.com/api/v3/projects/1/builds/8/artifacts"

このプロジェクトIDはどこにありますか?または、APIを使用するこの方法は、ホストされているgitlabプロジェクト向けではありませんか?

BWヒューバート

44

所有プロジェクトを照会できます:

curl -XGET --header "PRIVATE-TOKEN: XXXX" "https://gitlab.com/api/v3/projects/owned"

所有プロジェクトごとにJSONを受け取ります。

[
  {
    "id":48,
    "description":"",
    "default_branch":"master",
    "tag_list":[
...

プロジェクトのトリガー構成からプロジェクトIDを取得することもできます。トリガー構成には、IDのサンプルコードが既に含まれています。

トリガーページから:

curl -X POST \
     -F token=TOKEN \
     -F ref=REF_NAME \
     https://<GitLab Installation>/api/v3/projects/<ProjectID>/trigger/builds
26
Fairy

プロジェクトIDを取得するさらに簡単な方法を見つけました。プロジェクトをホストしているgitlabページのHTMLコンテンツを表示するだけです。 project_idと呼ばれるフィールドを持つ入力があります、例えば:

<input type="hidden" name="project_id" id="project_id" value="335" />
34
codependent

[プロジェクトの編集]ページの右上隅に[プロジェクトID]フィールドがあります。

(IDは、トリガーセクションのサンプルコードのCI/CDパイプラインページでも確認できます。)

古いバージョンでは、サンプルコードのURLの[トリガー]ページで確認できます。

25
Bernát

プロジェクトを入力します。

左側のメニューで、[設定]-> [一般]-> [一般設定を展開]をクリックします。

プロジェクトIDというラベルがあり、プロジェクト名の横にあります。

これはバージョンGitLab 10.2にあります

18
Martin Naughton

この記事の執筆時点でのGitLab 11.4の最新バージョンでは、リポジトリのフロントページの上部にプロジェクトIDが追加されています。

スクリーンショット:

GitLab Project Front Page

15
Rakaim

here で述べたように、すべてのプロジェクトスコープAPIは、IDまたはプロジェクトパス(URLエンコード)のいずれかを想定しています。したがって、プロジェクトとやり取りする場合は、 https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-ce を直接使用します。

8
Martin Nowak

問題を実際に解決するソリューションを提供します特定のgitlabプロジェクトのプロジェクトIDを取得するAPI

curl -XGET -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $GITLAB_TOKEN" http://<YOUR-GITLAB-SERVER>/api/v3/projects/<YOUR-NAMESPACE>%2F<YOUR-PROJECT-NAME> | python -mjson.tool

または、プロジェクトIDのみが必要な場合があります。

curl -XGET -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $GITLAB_TOKEN" http://<YOUR-GITLAB-SERVER>/api/v3/projects/<YOUR-NAMESPACE>%2F<YOUR-PROJECT-NAME> | python -c 'import sys, json; print(json.load(sys.stdin)["id"])'

repo url(namespace/repo name)はエンコードされているであることに注意してください。

5
artificerpi

次の検索属性を使用してプロジェクトをクエリできます:

http://gitlab.com/api/v3/projects?private_token=xxx&search=myprojectname

4
MTZ4

記録のために、他の誰かがgitlab-ciで作成されたgitlab.comからアーティファクトをダウンロードする必要がある場合

  1. ブラウザ内でプライベートトークンを作成する
  2. curl -XGET --header "PRIVATE-TOKEN: YOUR_AD_HERE?" "https://gitlab.com/api/v3/projects/owned"を介してプロジェクトIDを取得します
  3. Release curl -XGET --header "PRIVATE-TOKEN: YOUR_AD_HERE?" -o myapp.jar "https://gitlab.com/api/v3/projects/4711/builds/artifacts/master/download?job=release"というgitlab-ciステップを介して作成されたマスターブランチから最後のアーティファクトをダウンロードします

Gitlabの美しさに非常に感銘を受けました。

3

プロジェクト名がわかっている場合は、次のAPIを使用してプロジェクトIDを取得できます。

curl --header "Private-Token: <your_token>" -X GET https://gitlab.com/api/v4/projects?search=<exact_project_name>

これにより、IDを含むJSONが返されます。

[
  {
     "id":<project id>, ...
  }
]
1
shunya

Gitlab API v4以降、次のAPIは所有するすべてのプロジェクトを返します。

curl --header 'PRIVATE-TOKEN: <your_token>' 'https://gitlab.com/api/v4/projects?owned=true'

応答にはプロジェクトidが含まれます。 Gitlabアクセストークンは、このページから作成できます- https://gitlab.com/profile/personal_access_tokens

1
jerrymouse

プロジェクト名が一意である場合は、shunyaの回答に従う、名前で検索する、API doc を参照するのが便利です。

より強力なアクセストークンがあり、Gitlabに異なるグループ内のいくつかの同じ名前のプロジェクトが含まれている場合、グループ内の検索がより便利です。 APIドキュメント ここ 。例えば.

curl --header "PRIVATE-TOKEN: <token>" -X GET https://gitlab.com/api/v4/groups/<group_id>/search?scope=projects&search=<project_name>

グループIDは、グループドメインの下のSettingsページから見つけることができます。

出力からプロジェクトIDを取得するには、次のようにします。

curl --header "PRIVATE-TOKEN: <token>" -X GET https://gitlab.com/api/v4/groups/<group_id>/search?scope=projects&search=<project_name> | jq '[0].id'
0
Chuan

すべてのプロジェクトからIDを取得するには、次を使用します。

curl --header 'PRIVATE-TOKEN: XXXXXXXXXXXXXXXXXXXXXXX' 'https://gitlab.com/api/v4/projects?owned=true' > curloutput
grep -oPz 'name\":\".*?\"|{\"id\":[0-9]+' curloutput | sed 's/{\"/\n/g' | sed 's/name//g' |sed 's/id\"://g' |sed 's/\"//g'  | sort -u -n
0
Ferroao