- すべてのデプロイキーのリスト
- プロジェクトデプロイキー一覧
- シングルデプロイキー
- デプロイキーの追加
- デプロイキーの更新
- デプロイキーの削除
- デプロイキーの有効化
- 複数のプロジェクトへのデプロイキーの追加
デプロイキー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