在我的 gitlab-ci.yml 中,我有一个命令可以通过 curl 帖子在 gitlab 中创建一个版本
# create release
- >-
curl --request POST -H 'PRIVATE-TOKEN: ${GITLABAPI_TOKEN}' -H 'Content-Type: application/json' --data "{\"description\": \"`git log $(git describe --tags --abbrev=0)..HEAD --oneline`\"}" https://gitlab.unc.nc/api/v4/projects/${APP_GITLAB_NUMBER}/repository/tags/${CI_COMMIT_TAG}/release
Run Code Online (Sandbox Code Playgroud)
这个请求得到一个“401 未授权”,因为我怀疑 -H 'PRIVATE-TOKEN: ${GITLABAPI_TOKEN}' 没有被变量值替换。同: ${GITLABAPI_TOKEN} $GITLABAPI_TOKEN "${GITLABAPI_TOKEN}"
如果我像这样显示值,则该值没问题:
ssh root@devsb01 "echo $GITLABAPI_TOKEN"
Run Code Online (Sandbox Code Playgroud)
如果我直接使用密码值启动帖子,它会起作用:
- >-
curl --request POST -H 'PRIVATE-TOKEN: xkwMyRealPwdùwsx' -H 'Content-Type: application/json' --data "{\"description\": \"`git log $(git describe --tags --abbrev=0)..HEAD --oneline`\"}" https://gitlab.unc.nc/api/v4/projects/${APP_GITLAB_NUMBER}/repository/tags/${CI_COMMIT_TAG}/release
Run Code Online (Sandbox Code Playgroud)
我想我需要在命令中添加一些东西,以便它替换它......但我不知道如何......
PS:注意url变量:${APP_GITLAB_NUMBER}和${CI_COMMIT_TAG}被正确替换
在单引号内,shell 不展开任何内容。请将 PRIVATE-TOKEN 放入双引号中:
curl --request POST -H "PRIVATE-TOKEN: ${GITLABAPI_TOKEN}" -H 'Content-Type: application/json' --data "{\"description\": \"`git log $(git describe --tags --abbrev=0)..HEAD --oneline`\"}" https://gitlab.unc.nc/api/v4/projects/${APP_GITLAB_NUMBER}/repository/tags/${CI_COMMIT_TAG}/release
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |