gpt4 book ai didi

curl - Gitlab-ci 不会在 ssh 命令中替换我的变量

转载 作者:行者123 更新时间:2023-12-04 12:43:39 25 4
gpt4 key购买 nike

在我的 gitlab-ci.yml 中,我有一个通过 curl post 在 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

此请求得到“401 未授权”,因为我怀疑 -H 'PRIVATE-TOKEN: ${GITLABAPI_TOKEN}' 未替换为变量值。与相同: ${GITLABAPI_TOKEN} $GITLABAPI_TOKEN "${GITLABAPI_TOKEN}"

如果我这样显示值,值就可以了:

 ssh root@devsb01 "echo $GITLABAPI_TOKEN"

如果我直接使用密码值启动帖子,它会起作用:

    - >- 
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

我想我需要在命令中添加一些东西,以便它替换它......但我不能......

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

关于curl - Gitlab-ci 不会在 ssh 命令中替换我的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54798916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com