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

令牌信息 API

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

您可以使用此 API 检索任意令牌的详细信息并撤销它们。与其他公开令牌信息的 API 不同,此 API 允许您在不知道令牌具体类型的情况下检索其详细信息或撤销令牌。

令牌前缀

发起请求时,personal(个人)、project(项目)或 group access(群组访问)令牌必须以 glpat 或当前的自定义前缀开头。如果令牌以旧的自定义前缀开头,操作将会失败。关于支持旧自定义前缀的进展,请关注 issue 165663

前提条件:

  • 您必须拥有实例的管理员权限。

获取令牌信息

获取指定令牌的信息。此端点支持以下令牌:

POST /api/v4/admin/token

支持的属性:

属性 类型 必需 描述
token string 用于识别的现有令牌。Personal(个人)、project(项目)或 group access(群组访问)令牌必须以 glpat 或当前的自定义前缀开头。

如果成功,将返回 200 状态码以及令牌信息。

可能返回以下状态码:

  • 200 OK:令牌信息。
  • 401 Unauthorized:用户未授权。
  • 403 Forbidden:用户不是管理员。
  • 404 Not Found:未找到令牌。
  • 422 Unprocessable:不支持的令牌类型。

示例请求:

curl --request POST \
  --url "https://gitlab.example.com/api/v4/admin/token" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header 'Content-Type: application/json' \
  --data '{"token": "glpat-<example-token>"}'

示例响应:

{
 "id": 1,
 "user_id": 70,
 "name": "project-access-token",
 "revoked": false,
 "expires_at": "2024-10-04",
 "created_at": "2024-09-04T07:19:18.652Z",
 "updated_at": "2024-09-04T07:19:18.652Z",
 "scopes": [
  "api",
  "read_api"
 ],
 "impersonation": false,
 "expire_notification_delivered": false,
 "last_used_at": null,
 "after_expiry_notification_delivered": false,
 "previous_personal_access_token_id": null,
 "advanced_scopes": null,
 "organization_id": 1
}

撤销令牌

此功能的可用性由功能标志控制。 更多信息,请参见历史记录。 此功能可用于测试,但尚未准备好用于生产环境。

根据令牌类型,撤销、重置或删除指定的令牌。此端点支持以下令牌类型:

令牌类型 支持的操作
个人访问令牌 撤销
模拟令牌 撤销
项目访问令牌 撤销
群组访问令牌 撤销
部署令牌 撤销
集群代理令牌 撤销
流水线触发令牌 撤销
Feed 令牌 重置
Runner 认证令牌 重置
OAuth 应用密钥 重置
接收邮件令牌 重置
功能标志客户端令牌 重置
GitLab 会话 Cookie 删除
DELETE /api/v4/admin/token

支持的属性:

属性 类型 必需 描述
token string 要撤销的现有令牌。Personal(个人)、project(项目)或 group access(群组访问)令牌必须以 glpat 或当前的自定义前缀开头。

如果成功,将返回 204 状态码,无响应内容。

可能返回以下状态码:

  • 204 No Content:令牌已被撤销。
  • 401 Unauthorized:用户未授权。
  • 403 Forbidden:用户不是管理员。
  • 404 Not Found:未找到令牌。
  • 422 Unprocessable:不支持的令牌类型。

示例请求:

curl --request DELETE \
  --url "https://gitlab.example.com/api/v4/admin/token" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header 'Content-Type: application/json' \
  --data '{"token": "glpat-<example-token>"}'