首页 > 解决方案 > 尝试在 gitlab ci 中列出里程碑时未授权

问题描述

我正在尝试在 gitlab ci 脚本中列出里程碑。

我想创建摘要并将其与其他工件一起部署。

但我收到我未授权的消息:

$ curl --header "PRIVATE-TOKEN: $CI_JOB_JWT" "$CI_SERVER_URL/api/v4/projects/$CI_PROJECT_ID/milestones" % Total
% Received % Xferd Average Speed Time Time Time Current Dload Upload Total 花左速度 100 30 100 30 0 0 346 0 --:--:-- --:--:-- --:--:-- 348 {"message":"401 Unauthorized"}

我应该如何使用工作令牌(或使用什么代替)来访问里程碑?

标签: gitlabgitlab-cigitlab-api

解决方案


尝试使用预定义变量CI_JOB_TOKEN而不是CI_JOB_JWT. 根据预定义变量的文档CI_JOB_JWT,令牌用于向支持 JWT 身份验证的第三方系统进行身份验证,例如带有 RS256 JSON Web 令牌的 HashiCorp 的 Vault。

相反,CI_JOB_TOKEN它是一种用于向某些 API 端点进行身份验证的令牌。只要作业正在运行,令牌就有效。

否则,您可以为 Gitlab 用户生成个人访问令牌,将其作为项目变量存储在项目的 CI/CD 设置中,然后以这种方式使用它。


推荐阅读