デプロイキーAPI

すべてのデプロイキーのリスト

GitLabインスタンスの全プロジェクトにわたる全デプロイキーのリストを取得します。 このエンドポイントは管理者権限が必要で、GitLab.comでは利用できません。

GET /deploy_keys
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/deploy_keys"

回答例

[
  {
    "id": 1,
    "title": "Public key",
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
    "created_at": "2013-10-02T10:12:29Z"
  },
  {
    "id": 3,
    "title": "Another Public key",
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
    "created_at": "2013-10-02T11:12:29Z"
  }
]

プロジェクトデプロイキー一覧

プロジェクトのデプロイキーのリストを取得します。

GET /projects/:id/deploy_keys
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/deploy_keys"

回答例

[
  {
    "id": 1,
    "title": "Public key",
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
    "created_at": "2013-10-02T10:12:29Z",
    "can_push": false
  },
  {
    "id": 3,
    "title": "Another Public key",
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
    "created_at": "2013-10-02T11:12:29Z",
    "can_push": false
  }
]

シングルデプロイキー

キーを1つ取得します。

GET /projects/:id/deploy_keys/:key_id

パラメーター

属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス
key_id 整数 はい デプロイキーのID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/deploy_keys/11"

回答例

{
  "id": 1,
  "title": "Public key",
  "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  "created_at": "2013-10-02T10:12:29Z",
  "can_push": false
}

デプロイキーの追加

プロジェクトの新しいデプロイキーを作成します。

デプロイされたキーが既に別のプロジェクトに存在する場合、元のプロジェクトに同じユーザーがアクセスできる場合に限り、そのキーは現在のプロジェクトに結合されます。

POST /projects/:id/deploy_keys
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス
title はい 新しいデプロイキーのタイトル
key はい 新しいデプロイキー
can_push ブーリアン いいえ プロジェクトのリポジトリにキープッシュをデプロイできます。
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" --data '{"title": "My deploy key", "key": "ssh-rsa AAAA...", "can_push": "true"}' "https://gitlab.example.com/api/v4/projects/5/deploy_keys/"

回答例

{
   "key" : "ssh-rsa AAAA...",
   "id" : 12,
   "title" : "My deploy key",
   "can_push": true,
   "created_at" : "2015-08-29T12:44:31.550Z"
}

デプロイキーの更新

プロジェクトのデプロイキーを更新します。

PUT /projects/:id/deploy_keys/:key_id
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス
title いいえ 新しいデプロイキーのタイトル
can_push ブーリアン いいえ プロジェクトのリポジトリにキープッシュをデプロイできます。
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" --data '{"title": "New deploy key", "can_push": true}' "https://gitlab.example.com/api/v4/projects/5/deploy_keys/11"

回答例

{
   "id": 11,
   "title": "New deploy key",
   "key": "ssh-rsa AAAA...",
   "created_at": "2015-08-29T12:44:31.550Z",
   "can_push": true
}

デプロイキーの削除

プロジェクトからデプロイキーを削除します。 デプロイキーがこのプロジェクトでのみ使用されている場合、システムから削除されます。

DELETE /projects/:id/deploy_keys/:key_id
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス
key_id 整数 はい デプロイキーのID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/deploy_keys/13"

デプロイキーの有効化

プロジェクトのデプロイキーを有効にします。 有効になったキーを返し、成功した場合はステータスコード 201 を返します。

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/deploy_keys/13/enable"
属性 タイプ 必須 説明
id 整数/文字列 はい 認証されたユーザーが所有するプロジェクトのIDまたはURLエンコードされたパス
key_id 整数 はい デプロイキーのID

回答例

{
   "key" : "ssh-rsa AAAA...",
   "id" : 12,
   "title" : "My deploy key",
   "created_at" : "2015-08-29T12:44:31.550Z"
}

複数のプロジェクトへのデプロイキーの追加

同じグループ内の複数のプロジェクトに同じデプロイキーを簡単に追加したい場合は、APIを使用すると非常に簡単に実現できます。

まず、全プロジェクトをリストアップして、興味のあるプロジェクトのIDを探します:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects"

グループのIDを見つけることもできます:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups"

次に、そのグループ(例えば、グループ1234)のすべてのプロジェクトをリストアップします:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1234"

これらのIDを使って、すべてに同じデプロイキーを追加します:

for project_id in 321 456 987; do
    curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" \
    --data '{"title": "my key", "key": "ssh-rsa AAAA..."}' "https://gitlab.example.com/api/v4/projects/${project_id}/deploy_keys"
done