【发布时间】:2019-12-26 17:33:19
【问题描述】:
我正在尝试向我的 gitlab 主机的 api 发出请求以解析标签发布信息,从我在互联网上看到的情况来看,我可以使用 curl 使用 pre-在工作中定义变量,这样我就可以得到我正在寻找的东西。
现在 curl 的执行方式是这样的:
curl -H "PRIVATE-TOKEN: $CI_JOB_TOKEN" $CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/tags/$CI_COMMIT_TAG
这个请求的响应是404: Unauthorized。我也尝试过使用CI_BUILD_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_JOB_TOKEN,您需要在JOB-TOKEN标头而不是PRIVATE-TOKEN中传递它。
标签: gitlab devops gitlab-ci pipeline