207 lines
6.3 KiB
Markdown
207 lines
6.3 KiB
Markdown
---
|
|
stage: Create
|
|
group: Source Code
|
|
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"
|
|
type: reference, api
|
|
---
|
|
|
|
# Keys API **(FREE)**
|
|
|
|
## 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.
|
|
|
|
```plaintext
|
|
GET /keys/:id
|
|
```
|
|
|
|
| Attribute | Type | Required | Description |
|
|
|:----------|:--------|:---------|:---------------------|
|
|
| `id` | integer | yes | The ID of an SSH key |
|
|
|
|
Example request:
|
|
|
|
```shell
|
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/keys/1"
|
|
```
|
|
|
|
```json
|
|
{
|
|
"id": 1,
|
|
"title": "Sample key 25",
|
|
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1256k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
|
|
"created_at": "2015-09-03T07:24:44.627Z",
|
|
"expires_at": "2020-05-05T00:00:00.000Z",
|
|
"user": {
|
|
"name": "John Smith",
|
|
"username": "john_smith",
|
|
"id": 25,
|
|
"state": "active",
|
|
"avatar_url": "http://www.gravatar.com/avatar/cfa35b8cd2ec278026357769582fa563?s=40\u0026d=identicon",
|
|
"web_url": "http://localhost:3000/john_smith",
|
|
"created_at": "2015-09-03T07:24:01.670Z",
|
|
"bio": null,
|
|
"location": null,
|
|
"public_email": "john@example.com",
|
|
"skype": "",
|
|
"linkedin": "",
|
|
"twitter": "",
|
|
"website_url": "",
|
|
"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",
|
|
"email": "john@example.com",
|
|
"theme_id": 2,
|
|
"color_scheme_id": 1,
|
|
"projects_limit": 10,
|
|
"current_sign_in_at": null,
|
|
"identities": [],
|
|
"can_create_group": true,
|
|
"can_create_project": true,
|
|
"two_factor_enabled": false,
|
|
"external": false,
|
|
"private_profile": null
|
|
}
|
|
}
|
|
```
|
|
|
|
## 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.
|
|
|
|
```plaintext
|
|
GET /keys
|
|
```
|
|
|
|
| Attribute | Type | Required | Description |
|
|
|:--------------|:-------|:---------|:------------------------------|
|
|
| `fingerprint` | string | yes | The fingerprint of an SSH key |
|
|
|
|
Example request:
|
|
|
|
```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"
|
|
```
|
|
|
|
If using sha256 fingerprint API calls, make sure that the fingerprint is URL-encoded.
|
|
|
|
For example, `/` is represented by `%2F` and `:` is represented by`%3A`:
|
|
|
|
```shell
|
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/keys?fingerprint=SHA256%3AnUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo%2FlCg"
|
|
```
|
|
|
|
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",
|
|
"expires_at": "2020-05-05T00:00:00.000Z",
|
|
"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
|
|
}
|
|
}
|
|
```
|
|
|
|
## Get user by deploy key fingerprint
|
|
|
|
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/119209) in GitLab 12.7.
|
|
|
|
Deploy keys are bound to the creating user, so if you query with a deploy key
|
|
fingerprint you get additional information about the projects using that key.
|
|
|
|
Example request:
|
|
|
|
```shell
|
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/keys?fingerprint=SHA256%3AnUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo%2FlCg"
|
|
```
|
|
|
|
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",
|
|
"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
|
|
}
|
|
]
|
|
}
|
|
```
|