用户令牌 API
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
使用此 API 与个人访问令牌和模拟令牌进行交互。有关更多信息,请参阅个人访问令牌和模拟令牌。
为用户创建个人访问令牌
History
- 在极狐GitLab 16.0 中引入了 expires_at 属性默认值。
为指定用户创建个人访问令牌。令牌值包含在响应中,但无法稍后检索。
先决条件:
- 您必须拥有实例的管理员访问权限。
plaintextPOST /users/:user_id/personal_access_tokens
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
user_id | integer | 是 | 用户账户的 ID |
name | string | 是 | 个人访问令牌的名称 |
description | string | 否 | 个人访问令牌的描述 |
expires_at | date | 否 | 访问令牌的过期日期,采用 ISO 格式 (YYYY-MM-DD)。如果未定义,则日期设置为最大允许生存期限限制。 |
scopes | array | 是 | 批准范围的数组。有关可能值的列表,请参阅个人访问令牌范围。 |
示例请求:
shellcurl --request POST \ --header "PRIVATE-TOKEN: <your_access_token>" \ --data "name=mytoken" --data "expires_at=2017-04-04" \ --data "scopes[]=api" \ --url "https://gitlab.example.com/api/v4/users/42/personal_access_tokens"
示例响应:
json1{ 2 "id": 3, 3 "name": "mytoken", 4 "revoked": false, 5 "created_at": "2020-10-14T11:58:53.526Z", 6 "description": "Test Token description", 7 "scopes": [ 8 "api" 9 ], 10 "user_id": 42, 11 "active": true, 12 "expires_at": "2020-12-31", 13 "token": "<your_new_access_token>" 14}
创建个人访问令牌
History
- 在极狐GitLab 16.5 中引入。
为您的账户创建个人访问令牌。出于安全考虑,令牌:
- 限制在k8s_proxy范围内。此范围授予使用 Kubernetes 代理执行 Kubernetes API 调用的权限。
- 默认情况下,在创建当天结束时过期。
令牌值包含在响应中,但无法稍后检索。
先决条件:
- 您必须经过身份验证。
plaintextPOST /user/personal_access_tokens
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
name | string | 是 | 个人访问令牌的名称 |
description | string | 否 | 个人访问令牌的描述 |
scopes | array | 是 | 批准范围的数组。仅接受k8s_proxy。 |
expires_at | array | 否 | 访问令牌的过期日期,采用 ISO 格式 (YYYY-MM-DD)。如果未定义,则日期设置为最大允许生存期限限制。 |
示例请求:
shellcurl --request POST \ --header "PRIVATE-TOKEN: <your_access_token>" \ --data "name=mytoken" --data "scopes[]=k8s_proxy" \ --url "https://gitlab.example.com/api/v4/user/personal_access_tokens"
示例响应:
json1{ 2 "id": 3, 3 "name": "mytoken", 4 "revoked": false, 5 "created_at": "2020-10-14T11:58:53.526Z", 6 "description": "Test Token description", 7 "scopes": [ 8 "k8s_proxy" 9 ], 10 "user_id": 42, 11 "active": true, 12 "expires_at": "2020-10-15", 13 "token": "<your_new_access_token>" 14}
列出用户的所有模拟令牌
列出指定用户的所有模拟令牌。使用page和per_page分页参数过滤结果。
先决条件:
- 您必须拥有实例的管理员访问权限。
plaintextGET /users/:user_id/impersonation_tokens
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
user_id | integer | 是 | 用户账户的 ID |
state | string | 否 | 根据状态过滤令牌。可能的值:all、active或inactive。 |
示例请求:
shellcurl --request GET \ --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"
示例响应:
json1[ 2 { 3 "active" : true, 4 "user_id" : 2, 5 "scopes" : [ 6 "api" 7 ], 8 "revoked" : false, 9 "name" : "mytoken", 10 "description": "Test Token description", 11 "id" : 2, 12 "created_at" : "2017-03-17T17:18:09.283Z", 13 "impersonation" : true, 14 "expires_at" : "2017-04-04", 15 "last_used_at": "2017-03-24T09:44:21.722Z" 16 }, 17 { 18 "active" : false, 19 "user_id" : 2, 20 "scopes" : [ 21 "read_user" 22 ], 23 "revoked" : true, 24 "name" : "mytoken2", 25 "description": "Test Token description", 26 "created_at" : "2017-03-17T17:19:28.697Z", 27 "id" : 3, 28 "impersonation" : true, 29 "expires_at" : "2017-04-14", 30 "last_used_at": "2017-03-24T09:44:21.722Z" 31 } 32]
获取用户的模拟令牌
获取指定用户的模拟令牌。
先决条件:
- 您必须拥有实例的管理员访问权限。
plaintextGET /users/:user_id/impersonation_tokens/:impersonation_token_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
user_id | integer | 是 | 用户账户的 ID |
impersonation_token_id | integer | 是 | 模拟令牌的 ID |
示例请求:
shellcurl --request GET \ --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/2"
示例响应:
json1{ 2 "active" : true, 3 "user_id" : 2, 4 "scopes" : [ 5 "api" 6 ], 7 "revoked" : false, 8 "name" : "mytoken", 9 "description": "Test Token description", 10 "id" : 2, 11 "created_at" : "2017-03-17T17:18:09.283Z", 12 "impersonation" : true, 13 "expires_at" : "2017-04-04" 14}
创建模拟令牌
为指定用户创建模拟令牌。这些令牌用于代表用户执行操作,可以执行 API 调用以及 Git 读取和写入操作。这些令牌在用户的个人资料设置页面上不可见。
令牌值包含在响应中,但无法稍后检索。
先决条件:
- 您必须拥有实例的管理员访问权限。
plaintextPOST /users/:user_id/impersonation_tokens
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
user_id | integer | 是 | 用户账户的 ID |
name | string | 是 | 模拟令牌的名称 |
description | string | 否 | 模拟令牌的描述 |
expires_at | date | 是 | 模拟令牌的过期日期,采用 ISO 格式 (YYYY-MM-DD)。如果未定义,则日期设置为最大允许生存期限限制。 |
scopes | array | 是 | 批准范围的数组。有关可能值的列表,请参阅个人访问令牌范围。 |
示例请求:
shellcurl --request POST \ --header "PRIVATE-TOKEN: <your_access_token>" \ --data "name=mytoken" --data "expires_at=2017-04-04" \ --data "scopes[]=api" \ --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"
示例响应:
json1{ 2 "id" : 2, 3 "revoked" : false, 4 "user_id" : 2, 5 "scopes" : [ 6 "api" 7 ], 8 "token" : "<impersonation_token>", 9 "active" : true, 10 "impersonation" : true, 11 "name" : "mytoken", 12 "description": "Test Token description", 13 "created_at" : "2017-03-17T17:18:09.283Z", 14 "expires_at" : "2017-04-04" 15}
撤销模拟令牌
撤销指定用户的模拟令牌。
先决条件:
- 您必须拥有实例的管理员访问权限。
plaintextDELETE /users/:user_id/impersonation_tokens/:impersonation_token_id
支持的属性:
属性 | 类型 | 必需 | 描述 |
---|---|---|---|
user_id | integer | 是 | 用户账户的 ID |
impersonation_token_id | integer | 是 | 模拟令牌的 ID |
示例请求:
shellcurl --request DELETE \ --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/1"