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

213 lines
6.4 KiB
Markdown
Raw Normal View History

2020-10-24 23:57:45 +05:30
---
stage: Create
group: Source Code
2022-11-25 23:54:43 +05:30
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments"
2020-10-24 23:57:45 +05:30
type: reference, api
---
2021-03-11 19:13:27 +05:30
# Keys API **(FREE)**
2015-09-25 12:07:36 +05:30
2023-05-27 22:25:52 +05:30
If using a SHA256 fingerprint in an API call, you should URL-encode the fingerprint.
2015-09-25 12:07:36 +05:30
## Get SSH key with user by ID of an SSH key
Get SSH key with user by ID of an SSH key. Note only administrators can lookup SSH key with user by ID of an SSH key.
2020-05-24 23:13:21 +05:30
```plaintext
2015-09-25 12:07:36 +05:30
GET /keys/:id
```
2020-01-01 13:55:28 +05:30
| Attribute | Type | Required | Description |
|:----------|:--------|:---------|:---------------------|
| `id` | integer | yes | The ID of an SSH key |
Example request:
2015-09-25 12:07:36 +05:30
2020-03-13 15:44:24 +05:30
```shell
2023-05-27 22:25:52 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/keys/1"
2020-01-01 13:55:28 +05:30
```
2015-09-25 12:07:36 +05:30
```json
{
"id": 1,
"title": "Sample key 25",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1256k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2015-09-03T07:24:44.627Z",
2021-06-08 01:23:25 +05:30
"expires_at": "2020-05-05T00:00:00.000Z",
2023-03-04 22:38:38 +05:30
"usage_type": "auth",
2015-09-25 12:07:36 +05:30
"user": {
"name": "John Smith",
"username": "john_smith",
"id": 25,
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/cfa35b8cd2ec278026357769582fa563?s=40\u0026d=identicon",
2016-11-03 12:29:30 +05:30
"web_url": "http://localhost:3000/john_smith",
2015-09-25 12:07:36 +05:30
"created_at": "2015-09-03T07:24:01.670Z",
"bio": null,
2018-12-05 23:21:45 +05:30
"location": null,
"public_email": "john@example.com",
2015-09-25 12:07:36 +05:30
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
2018-12-05 23:21:45 +05:30
"organization": null,
"last_sign_in_at": "2015-09-03T07:24:01.670Z",
"confirmed_at": "2015-09-03T07:24:01.670Z",
"last_activity_on": "2015-09-03",
2015-09-25 12:07:36 +05:30
"email": "john@example.com",
2018-03-17 18:26:18 +05:30
"theme_id": 2,
2015-09-25 12:07:36 +05:30
"color_scheme_id": 1,
"projects_limit": 10,
"current_sign_in_at": null,
"identities": [],
"can_create_group": true,
"can_create_project": true,
2021-06-08 01:23:25 +05:30
"two_factor_enabled": false,
2018-12-05 23:21:45 +05:30
"external": false,
"private_profile": null
2015-09-25 12:07:36 +05:30
}
}
```
2020-01-01 13:55:28 +05:30
## Get user by fingerprint of SSH key
You can search for a user that owns a specific SSH key. Note only administrators can lookup SSH key with the fingerprint of an SSH key.
2020-05-24 23:13:21 +05:30
```plaintext
2020-01-01 13:55:28 +05:30
GET /keys
```
| Attribute | Type | Required | Description |
|:--------------|:-------|:---------|:------------------------------|
| `fingerprint` | string | yes | The fingerprint of an SSH key |
Example request:
2020-03-13 15:44:24 +05:30
```shell
2023-05-27 22:25:52 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/keys?fingerprint=ba:81:59:68:d7:6c:cd:02:02:bf:6a:9b:55:4e:af:d1"
2020-01-01 13:55:28 +05:30
```
Example response:
```json
{
"id": 1,
"title": "Sample key 1",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1016k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2019-11-14T15:11:13.222Z",
2021-06-08 01:23:25 +05:30
"expires_at": "2020-05-05T00:00:00.000Z",
2023-03-04 22:38:38 +05:30
"usage_type": "auth",
2020-01-01 13:55:28 +05:30
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://0.0.0.0:3000/root",
"created_at": "2019-11-14T15:09:34.831Z",
"bio": null,
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": null,
"last_sign_in_at": "2019-11-16T22:41:26.663Z",
"confirmed_at": "2019-11-14T15:09:34.575Z",
"last_activity_on": "2019-11-20",
"email": "admin@example.com",
"theme_id": 1,
"color_scheme_id": 1,
"projects_limit": 100000,
"current_sign_in_at": "2019-11-19T14:42:18.078Z",
"identities": [
],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": false,
"external": false,
"private_profile": false,
"shared_runners_minutes_limit": null,
"extra_shared_runners_minutes_limit": null
}
}
```
2020-03-13 15:44:24 +05:30
## Get user by deploy key fingerprint
2023-05-27 22:25:52 +05:30
Deploy keys are bound to the creating user. If you query with a deploy key
fingerprint, you get additional information about the projects using that key.
2020-03-13 15:44:24 +05:30
2023-05-27 22:25:52 +05:30
Example request with an MD5 fingerprint:
2020-03-13 15:44:24 +05:30
2023-05-27 22:25:52 +05:30
```shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/keys?fingerprint=ba:81:59:68:d7:6c:cd:02:02:bf:6a:9b:55:4e:af:d1"
```
In this SHA256 example, `/` is represented by `%2F` and `:` is represented by`%3A`:
2020-03-13 15:44:24 +05:30
```shell
2023-05-27 22:25:52 +05:30
curl --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/keys?fingerprint=SHA256%3AnUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo%2FlCg"
2020-03-13 15:44:24 +05:30
```
Example response:
```json
{
"id": 1,
"title": "Sample key 1",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1016k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
"created_at": "2019-11-14T15:11:13.222Z",
2023-03-04 22:38:38 +05:30
"usage_type": "auth",
2020-03-13 15:44:24 +05:30
"user": {
"id": 1,
"name": "Administrator",
"username": "root",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "http://0.0.0.0:3000/root",
"created_at": "2019-11-14T15:09:34.831Z",
"bio": null,
"location": null,
"public_email": "",
"skype": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": null,
"last_sign_in_at": "2019-11-16T22:41:26.663Z",
"confirmed_at": "2019-11-14T15:09:34.575Z",
"last_activity_on": "2019-11-20",
"email": "admin@example.com",
"theme_id": 1,
"color_scheme_id": 1,
"projects_limit": 100000,
"current_sign_in_at": "2019-11-19T14:42:18.078Z",
"identities": [
],
"can_create_group": true,
"can_create_project": true,
"two_factor_enabled": false,
"external": false,
"private_profile": false,
"shared_runners_minutes_limit": null,
"extra_shared_runners_minutes_limit": null
},
"deploy_keys_projects": [
{
"id": 1,
"deploy_key_id": 1,
"project_id": 1,
"created_at": "2020-01-09T07:32:52.453Z",
"updated_at": "2020-01-09T07:32:52.453Z",
"can_push": false
}
]
}
```