debian-mirror-gitlab/doc/api/deploy_keys.md

206 lines
6.3 KiB
Markdown
Raw Normal View History

2017-09-10 17:25:29 +05:30
# Deploy Keys API
2014-09-02 18:07:02 +05:30
2016-08-24 12:49:21 +05:30
## List all deploy keys
2017-08-17 22:00:37 +05:30
Get a list of all deploy keys across all projects of the GitLab instance. This endpoint requires admin access.
2016-08-24 12:49:21 +05:30
```
GET /deploy_keys
```
```bash
2019-02-13 22:33:31 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/deploy_keys"
2016-08-24 12:49:21 +05:30
```
Example response:
```json
[
{
"id": 1,
"title": "Public key",
2018-03-17 18:26:18 +05:30
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
2016-08-24 12:49:21 +05:30
"created_at": "2013-10-02T10:12:29Z"
},
{
"id": 3,
"title": "Another Public key",
2018-03-17 18:26:18 +05:30
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
2016-08-24 12:49:21 +05:30
"created_at": "2013-10-02T11:12:29Z"
}
]
```
## List project deploy keys
2014-09-02 18:07:02 +05:30
Get a list of a project's deploy keys.
```
2016-08-24 12:49:21 +05:30
GET /projects/:id/deploy_keys
2014-09-02 18:07:02 +05:30
```
2016-04-02 18:10:28 +05:30
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
2017-08-17 22:00:37 +05:30
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
2016-04-02 18:10:28 +05:30
```bash
2019-02-13 22:33:31 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/deploy_keys"
2016-04-02 18:10:28 +05:30
```
2014-09-02 18:07:02 +05:30
2016-04-02 18:10:28 +05:30
Example response:
2014-09-02 18:07:02 +05:30
```json
[
{
"id": 1,
"title": "Public key",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
2018-03-17 18:26:18 +05:30
"created_at": "2013-10-02T10:12:29Z",
"can_push": false
2014-09-02 18:07:02 +05:30
},
{
"id": 3,
"title": "Another Public key",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
2018-03-17 18:26:18 +05:30
"created_at": "2013-10-02T11:12:29Z",
"can_push": false
2014-09-02 18:07:02 +05:30
}
]
```
## Single deploy key
Get a single key.
```
2016-08-24 12:49:21 +05:30
GET /projects/:id/deploy_keys/:key_id
2014-09-02 18:07:02 +05:30
```
Parameters:
2016-04-02 18:10:28 +05:30
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
2017-08-17 22:00:37 +05:30
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
2016-04-02 18:10:28 +05:30
| `key_id` | integer | yes | The ID of the deploy key |
```bash
2019-02-13 22:33:31 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/deploy_keys/11"
2016-04-02 18:10:28 +05:30
```
Example response:
2014-09-02 18:07:02 +05:30
```json
{
"id": 1,
"title": "Public key",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
2018-03-17 18:26:18 +05:30
"created_at": "2013-10-02T10:12:29Z",
"can_push": false
2014-09-02 18:07:02 +05:30
}
```
## Add deploy key
Creates a new deploy key for a project.
2016-04-02 18:10:28 +05:30
If the deploy key already exists in another project, it will be joined to current
2018-03-17 18:26:18 +05:30
project only if original one is accessible by the same user.
2014-09-02 18:07:02 +05:30
```
2016-08-24 12:49:21 +05:30
POST /projects/:id/deploy_keys
2014-09-02 18:07:02 +05:30
```
2017-08-17 22:00:37 +05:30
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
| `title` | string | yes | New deploy key's title |
| `key` | string | yes | New deploy key |
| `can_push` | boolean | no | Can deploy key push to the project's repository |
2016-04-02 18:10:28 +05:30
```bash
2019-02-13 22:33:31 +05:30
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/"
2016-04-02 18:10:28 +05:30
```
2014-09-02 18:07:02 +05:30
2016-04-02 18:10:28 +05:30
Example response:
```json
{
"key" : "ssh-rsa AAAA...",
"id" : 12,
"title" : "My deploy key",
2017-08-17 22:00:37 +05:30
"can_push": true,
2016-04-02 18:10:28 +05:30
"created_at" : "2015-08-29T12:44:31.550Z"
}
```
2014-09-02 18:07:02 +05:30
2018-03-17 18:26:18 +05:30
## Update deploy key
Updates a deploy key for a project.
```
PUT /projects/:id/deploy_keys/:key_id
```
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
| `title` | string | no | New deploy key's title |
| `can_push` | boolean | no | Can deploy key push to the project's repository |
```bash
2019-02-13 22:33:31 +05:30
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"
2018-03-17 18:26:18 +05:30
```
Example response:
```json
{
"id": 11,
"title": "New deploy key",
"key": "ssh-rsa AAAA...",
"created_at": "2015-08-29T12:44:31.550Z",
"can_push": true
}
```
2014-09-02 18:07:02 +05:30
## Delete deploy key
2017-08-17 22:00:37 +05:30
Removes a deploy key from the project. If the deploy key is used only for this project, it will be deleted from the system.
2014-09-02 18:07:02 +05:30
```
2016-08-24 12:49:21 +05:30
DELETE /projects/:id/deploy_keys/:key_id
2014-09-02 18:07:02 +05:30
```
2016-04-02 18:10:28 +05:30
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
2017-08-17 22:00:37 +05:30
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
2016-04-02 18:10:28 +05:30
| `key_id` | integer | yes | The ID of the deploy key |
```bash
2019-02-13 22:33:31 +05:30
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/deploy_keys/13"
2016-04-02 18:10:28 +05:30
```
2016-09-13 17:45:13 +05:30
## Enable a deploy key
Enables a deploy key for a project so this can be used. Returns the enabled key, with a status code 201 when successful.
```bash
2019-02-13 22:33:31 +05:30
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/deploy_keys/13/enable
2016-09-13 17:45:13 +05:30
```
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
2017-08-17 22:00:37 +05:30
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
2016-09-13 17:45:13 +05:30
| `key_id` | integer | yes | The ID of the deploy key |
Example response:
```json
{
"key" : "ssh-rsa AAAA...",
"id" : 12,
"title" : "My deploy key",
"created_at" : "2015-08-29T12:44:31.550Z"
}
```