GitLab:使用CI_作业_令牌从管道对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

我正试图请求我的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 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
。我将尝试您发送的第一个链接。我尝试了第一个链接,但仍然不起作用。。对于另一种方法,我已经考虑过了,但我不能要求我的公司仅仅为此创建一个新帐户,所以我最终要做的是代表我创建一个新的访问令牌,并将其存储在一个私有变量中,这不是一个好的解决方案,但它可以使这项工作暂时起作用。