GitLab:使用CI_作业_令牌从管道对API进行未经授权的访问
我正试图请求我的gitlab主机的api解析标记发布信息,从我在互联网上看到的是,我可以使用作业中预定义的变量GitLab:使用CI_作业_令牌从管道对API进行未经授权的访问,gitlab,devops,gitlab-ci,pipeline,Gitlab,Devops,Gitlab Ci,Pipeline,我正试图请求我的gitlab主机的api解析标记发布信息,从我在互联网上看到的是,我可以使用作业中预定义的变量curl获取此信息,这样我就可以得到我想要的 现在,curl的执行方式如下: curl -H "PRIVATE-TOKEN: $CI_JOB_TOKEN" $CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/tags/$CI_COMMIT_TAG 此请求的响应是404:Unauthorized。我也尝试过使用CI\u BUILD\u TO
curl
获取此信息,这样我就可以得到我想要的
现在,curl的执行方式如下:
curl -H "PRIVATE-TOKEN: $CI_JOB_TOKEN" $CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/tags/$CI_COMMIT_TAG
此请求的响应是404:Unauthorized
。我也尝试过使用CI\u BUILD\u TOKEN
环境变量,但也得到了相同的结果
我创建这些作业的存储库不是私有的,只是内部的。所以我不知道该怎么做
如果有必要,以下是作业管道的编码方式:
fetch-tag-info:
stage: setup
only:
- tags
image: ubuntu:18.04
before_script:
- apt-get update
- apt-get install curl jq -y
script:
- "curl -H \"PRIVATE-TOKEN: $CI_JOB_TOKEN\" $CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/tags/$CI_COMMIT_TAG -o release-notes.json"
您只能在每个人都有权访问的公共项目中使用
CI\u JOB\u TOKEN
。请参阅GitLab中的开放问题:
同时,您可以使用此处提到的解决方案:,或此处:这是否回答了您的问题?要使用
$CI\u JOB\u TOKEN
,您需要在JOB-TOKEN
标题中传递它,而不是PRIVATE-TOKEN
。我将尝试您发送的第一个链接。我尝试了第一个链接,但仍然不起作用。。对于另一种方法,我已经考虑过了,但我不能要求我的公司仅仅为此创建一个新帐户,所以我最终要做的是代表我创建一个新的访问令牌,并将其存储在一个私有变量中,这不是一个好的解决方案,但它可以使这项工作暂时起作用。