Gitlab-ci не заменит мою переменную в команде ssh - PullRequest
0 голосов
/ 21 февраля 2019

В моем gitlab-ci.yml у меня есть команда, которая создает выпуск в gitlab через сообщение curl

# 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}' не заменяется значением переменной.то же сзначение пароля напрямую работает:

    - >- 
        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} правильно заменены

1 Ответ

0 голосов
/ 21 февраля 2019

Внутри одинарных кавычек оболочка ничего не расширяет.Пожалуйста, поместите ЧАСТНЫЙ ЖЕЛЕЗ в двойную кавычку:

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