Keys API
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
如果在 API 调用中使用 SHA256 指纹,你应该对指纹进行 URL 编码。
通过 SSH 密钥的 ID 获取 SSH 密钥和用户
通过 SSH 密钥的 ID 获取 SSH 密钥和用户。仅对 管理员 可用。
plaintextGET /keys/:id
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
id | integer | 是 | SSH 密钥的 ID。 |
示例请求:
shellcurl --header "PRIVATE-TOKEN: <your_access_token>" \ "https://gitlab.example.com/api/v4/keys/1"
json1{ 2 "id": 1, 3 "title": "Sample key 25", 4 "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1256k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", 5 "created_at": "2015-09-03T07:24:44.627Z", 6 "expires_at": "2020-05-05T00:00:00.000Z", 7 "last_used_at": "2020-04-07T00:00:00.000Z", 8 "usage_type": "auth", 9 "user": { 10 "name": "John Smith", 11 "username": "john_smith", 12 "id": 25, 13 "state": "active", 14 "avatar_url": "http://www.gravatar.com/avatar/cfa35b8cd2ec278026357769582fa563?s=40\u0026d=identicon", 15 "web_url": "http://localhost:3000/john_smith", 16 "created_at": "2015-09-03T07:24:01.670Z", 17 "bio": null, 18 "location": null, 19 "public_email": "john@example.com", 20 "skype": "", 21 "linkedin": "", 22 "twitter": "", 23 "website_url": "", 24 "organization": null, 25 "last_sign_in_at": "2015-09-03T07:24:01.670Z", 26 "confirmed_at": "2015-09-03T07:24:01.670Z", 27 "last_activity_on": "2015-09-03", 28 "email": "john@example.com", 29 "theme_id": 2, 30 "color_scheme_id": 1, 31 "projects_limit": 10, 32 "current_sign_in_at": null, 33 "identities": [], 34 "can_create_group": true, 35 "can_create_project": true, 36 "two_factor_enabled": false, 37 "external": false, 38 "private_profile": null 39 } 40}
通过 SSH 密钥指纹获取用户
你可以搜索拥有特定 SSH 密钥的用户。注意,只有 管理员 才能通过 SSH 密钥的指纹查找 SSH 密钥。
plaintextGET /keys
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
fingerprint | string | 是 | SSH 密钥的指纹。 |
示例请求:
shellcurl --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"
示例响应:
json1{ 2 "id": 1, 3 "title": "Sample key 1", 4 "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1016k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", 5 "created_at": "2019-11-14T15:11:13.222Z", 6 "expires_at": "2020-05-05T00:00:00.000Z", 7 "last_used_at": "2020-04-07T00:00:00.000Z", 8 "usage_type": "auth", 9 "user": { 10 "id": 1, 11 "name": "Administrator", 12 "username": "root", 13 "state": "active", 14 "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", 15 "web_url": "http://0.0.0.0:3000/root", 16 "created_at": "2019-11-14T15:09:34.831Z", 17 "bio": null, 18 "location": null, 19 "public_email": "", 20 "skype": "", 21 "linkedin": "", 22 "twitter": "", 23 "website_url": "", 24 "organization": null, 25 "last_sign_in_at": "2019-11-16T22:41:26.663Z", 26 "confirmed_at": "2019-11-14T15:09:34.575Z", 27 "last_activity_on": "2019-11-20", 28 "email": "admin@example.com", 29 "theme_id": 1, 30 "color_scheme_id": 1, 31 "projects_limit": 100000, 32 "current_sign_in_at": "2019-11-19T14:42:18.078Z", 33 "identities": [ 34 ], 35 "can_create_group": true, 36 "can_create_project": true, 37 "two_factor_enabled": false, 38 "external": false, 39 "private_profile": false, 40 "shared_runners_minutes_limit": null, 41 "extra_shared_runners_minutes_limit": null 42 } 43}
通过部署密钥指纹获取用户
部署密钥绑定到创建用户。如果你使用部署密钥指纹查询,你将获得关于使用该密钥的软件包的额外信息。
使用 MD5 指纹的示例请求:
shellcurl --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"
在这个 SHA256 示例中,/ 表示为 %2F,: 表示为 %3A:
shellcurl --header "PRIVATE-TOKEN: <your_access_token>" \ "https://gitlab.example.com/api/v4/keys?fingerprint=SHA256%3AnUhzNyftwADy8AH3wFY31tAKs7HufskYTte2aXo%2FlCg"
示例响应:
json1{ 2 "id": 1, 3 "title": "Sample key 1", 4 "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1016k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=", 5 "created_at": "2019-11-14T15:11:13.222Z", 6 "expires_at": "2020-05-05T00:00:00.000Z", 7 "last_used_at": "2020-04-07T00:00:00.000Z", 8 "usage_type": "auth", 9 "user": { 10 "id": 1, 11 "name": "Administrator", 12 "username": "root", 13 "state": "active", 14 "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", 15 "web_url": "http://0.0.0.0:3000/root", 16 "created_at": "2019-11-14T15:09:34.831Z", 17 "bio": null, 18 "location": null, 19 "public_email": "", 20 "skype": "", 21 "linkedin": "", 22 "twitter": "", 23 "website_url": "", 24 "organization": null, 25 "last_sign_in_at": "2019-11-16T22:41:26.663Z", 26 "confirmed_at": "2019-11-14T15:09:34.575Z", 27 "last_activity_on": "2019-11-20", 28 "email": "admin@example.com", 29 "theme_id": 1, 30 "color_scheme_id": 1, 31 "projects_limit": 100000, 32 "current_sign_in_at": "2019-11-19T14:42:18.078Z", 33 "identities": [ 34 ], 35 "can_create_group": true, 36 "can_create_project": true, 37 "two_factor_enabled": false, 38 "external": false, 39 "private_profile": false, 40 "shared_runners_minutes_limit": null, 41 "extra_shared_runners_minutes_limit": null 42 }, 43 "deploy_keys_projects": [ 44 { 45 "id": 1, 46 "deploy_key_id": 1, 47 "project_id": 1, 48 "created_at": "2020-01-09T07:32:52.453Z", 49 "updated_at": "2020-01-09T07:32:52.453Z", 50 "can_push": false 51 } 52 ] 53}