Скрыть значение переменной при запуске файла sh в конвейере Gitlab - PullRequest
0 голосов
/ 10 июля 2020

Когда я запускаю файл bash на этапе (конвейер Gitlab), он отображает значения секретов GitLab в журналах, которые в идеале не должны быть видны. Как этого избежать?

Этап конвейера GitLab

stage: docker_push
script:
    - /home/directory/dockerPush.sh
tags:
    - docker

bash файл (dockerPu sh. sh) содержимое

docker login --username foo --password ${DOCKER_LOGIN_PASSWORD}
docker push ${IMAGE_NAME}

Журналы конвейера

+ docker login --username foo --password Doc49byfe

Ответы [ 3 ]

1 голос
/ 10 июля 2020

Когда вы добавляете переменную, отметьте опцию «Маска переменной»:

введите описание изображения здесь

0 голосов
/ 10 июля 2020

Вам необходимо использовать функцию маски, такую ​​как ответ Глена.

Но функция маски имеет некоторые ограничения, связанные с форматом вашей переменной, как в этой документации https://docs.gitlab.com/ee/ci/variables/#masked -variable-requirements

Если Gitlab отказывается маскировать вашу переменную, вам нужно сделать это в вашем сценарии оболочки.

Простой способ - отправить вывод в файл (если вам действительно нужен журнал) или другой вариант - отправить вывод на /dev/null

0 голосов
/ 10 июля 2020

Вы пытались добавить свою переменную env из панели администратора gitlab и установить для переменной значение protected ? Вот пример: https://secrethub.io/docs/guides/gitlabci/#provide -credential best,

...