Gitlab-CI клонирует частное репо из setup.py с токеном вместо ключей s sh? - PullRequest
3 голосов
/ 14 июля 2020

У меня есть проект Python, который я хочу создать и протестировать с помощью gitlab-ci.

В моем файле setup.py у меня есть несколько зависимостей, которые в настоящее время можно загрузить с помощью ключей S SH .

[setup.py]
...
install_requires=[
    "test1 @ git+ssh://git@ssh.git.xxxx.de/path/to/repo/test1.git@1.1.0#egg=test1",
    "test2 @ git+ssh://git@ssh.git.xxxx.de/path/to/repo/test2.git@1.0.2#egg=test2",
],

Несмотря на эту конфигурацию, могу ли я использовать «CI_JOB_TOKEN» в конвейере gitlab-ci для доступа к этим ресурсам?

 echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc

Или мне неизбежно придется хранить дополнительный секрет переменную с закрытым ключом s sh в gitlab-ci и добавить этот ключ для каждого этапа в "before_script"?

[gitlab-ci.yml]
...
before_script:
-  eval $(ssh-agent -s)
-  ssh-add <(echo "$SSH_PRIVATE_KEY")

Есть ли какие-то преимущества в использовании s sh -ключей вместо https?

1 Ответ

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

На основе документации GitLab CI / CD :

Переменная среды Job CI_JOB_TOKEN может использоваться для аутентификации любых клонов зависимых репозиториев.

Как упоминалось выше, использование CI_JOB_TOKEN не дает конвейерам доступа на запись в зависимые репозитории. Его можно просто использовать для клонирования / загрузки зависимых репозиториев.

С другой стороны, использование S SH закрытого ключа дает больше разрешений для вашего конвейера.

Есть и другие способы доступа к зависимым репозиториям. Вы можете получить доступ к нужным репозиториям, указав для них Deploy Tokens или Deploy Keys .

...