Help us learn about your current experience with the documentation. Take the survey.

用户令牌 API

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed, GitLab Dedicated

使用此 API 与个人访问令牌和模拟令牌进行交互。更多信息,请参阅 个人访问令牌模拟令牌

为用户创建个人访问令牌

为指定用户创建个人访问令牌。

令牌值包含在响应中,但之后无法检索。

先决条件:

  • 您必须拥有实例的管理员权限。
POST /users/:user_id/personal_access_tokens

支持的属性:

属性 类型 必需 描述
user_id integer 用户账户 ID
name string 个人访问令牌名称
description string 个人访问令牌描述
expires_at date 访问令牌的过期日期,采用 ISO 格式(YYYY-MM-DD)。如果未定义,日期将设置为 最大允许生命周期限制
scopes array 已批准范围的数组。可能的值列表,请参阅 个人访问令牌范围

示例请求:

curl --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"

示例响应:

{
    "id": 3,
    "name": "mytoken",
    "revoked": false,
    "created_at": "2020-10-14T11:58:53.526Z",
    "description": "测试令牌描述",
    "scopes": [
        "api"
    ],
    "user_id": 42,
    "active": true,
    "expires_at": "2020-12-31",
    "token": "<your_new_access_token>"
}

创建个人访问令牌

为您的账户创建个人访问令牌。出于安全考虑,该令牌:

  • 仅限于 k8s_proxy 范围。 此范围授予使用 Kubernetes 代理执行 Kubernetes API 调用的权限。
  • 默认在创建当天的午夜过期。

令牌值包含在响应中,但之后无法检索。

先决条件:

  • 您必须已通过身份验证。
POST /user/personal_access_tokens

支持的属性:

属性 类型 必需 描述
name string 个人访问令牌名称
description string 个人访问令牌描述
scopes array 已批准范围的数组。仅接受 k8s_proxy
expires_at array 访问令牌的过期日期,采用 ISO 格式(YYYY-MM-DD)。如果未定义,日期将设置为 最大允许生命周期限制

示例请求:

curl --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"

示例响应:

{
    "id": 3,
    "name": "mytoken",
    "revoked": false,
    "created_at": "2020-10-14T11:58:53.526Z",
    "description": "测试令牌描述",
    "scopes": [
        "k8s_proxy"
    ],
    "user_id": 42,
    "active": true,
    "expires_at": "2020-10-15",
    "token": "<your_new_access_token>"
}

列出用户的所有模拟令牌

列出指定用户的所有模拟令牌。

使用 pageper_page 分页参数 来过滤结果。

先决条件:

  • 您必须拥有实例的管理员权限。
GET /users/:user_id/impersonation_tokens

支持的属性:

属性 类型 必需 描述
user_id integer 用户账户 ID
state string 根据状态过滤令牌。可能的值:allactiveinactive

示例请求:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"

示例响应:

[
   {
      "active" : true,
      "user_id" : 2,
      "scopes" : [
         "api"
      ],
      "revoked" : false,
      "name" : "mytoken",
      "description": "测试令牌描述",
      "id" : 2,
      "created_at" : "2017-03-17T17:18:09.283Z",
      "impersonation" : true,
      "expires_at" : "2017-04-04",
      "last_used_at": "2017-03-24T09:44:21.722Z"
   },
   {
      "active" : false,
      "user_id" : 2,
      "scopes" : [
         "read_user"
      ],
      "revoked" : true,
      "name" : "mytoken2",
      "description": "测试令牌描述",
      "created_at" : "2017-03-17T17:19:28.697Z",
      "id" : 3,
      "impersonation" : true,
      "expires_at" : "2017-04-14",
      "last_used_at": "2017-03-24T09:44:21.722Z"
   }
]

获取用户的模拟令牌

获取指定用户的模拟令牌。

先决条件:

  • 您必须拥有实例的管理员权限。
GET /users/:user_id/impersonation_tokens/:impersonation_token_id

支持的属性:

属性 类型 必需 描述
user_id integer 用户账户 ID
impersonation_token_id integer 模拟令牌 ID

示例请求:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/2"

示例响应:

{
   "active" : true,
   "user_id" : 2,
   "scopes" : [
      "api"
   ],
   "revoked" : false,
   "name" : "mytoken",
   "description": "测试令牌描述",
   "id" : 2,
   "created_at" : "2017-03-17T17:18:09.283Z",
   "impersonation" : true,
   "expires_at" : "2017-04-04"
}

创建模拟令牌

为指定用户创建模拟令牌。这些令牌用于代表用户操作,可以执行 API 调用以及 Git 读写操作。这些令牌在用户的个人设置页面上对关联用户不可见。

令牌值包含在响应中,但之后无法检索。

先决条件:

  • 您必须拥有实例的管理员权限。
POST /users/:user_id/impersonation_tokens

支持的属性:

属性 类型 必需 描述
user_id integer 用户账户 ID
name string 模拟令牌名称
description string 模拟令牌描述
expires_at date 模拟令牌的过期日期,采用 ISO 格式(YYYY-MM-DD)。如果未定义,日期将设置为 最大允许生命周期限制
scopes array 已批准范围的数组。可能的值列表,请参阅 个人访问令牌范围

示例请求:

curl --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"

示例响应:

{
   "id" : 2,
   "revoked" : false,
   "user_id" : 2,
   "scopes" : [
      "api"
   ],
   "token" : "<impersonation_token>",
   "active" : true,
   "impersonation" : true,
   "name" : "mytoken",
   "description": "测试令牌描述",
   "created_at" : "2017-03-17T17:18:09.283Z",
   "expires_at" : "2017-04-04"
}

撤销模拟令牌

撤销指定用户的模拟令牌。

先决条件:

  • 您必须拥有实例的管理员权限。
DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id

支持的属性:

属性 类型 必需 描述
user_id integer 用户账户 ID
impersonation_token_id integer 模拟令牌 ID

示例请求:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/1"