簡體   English   中英

Gitlab-CI 使用令牌而不是 ssh 密鑰從 setup.py 克隆私有倉庫?

[英]Gitlab-CI clone private repo from setup.py with token instead of ssh keys?

我有一個 Python 項目,我想用 gitlab-ci 構建和測試。

在我的 setup.py 文件中,我有一些當前可以使用 SSH 密鑰下載的依賴項。

[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",
],

盡管有這樣的配置,我可以使用 gitlab-ci 管道中的“CI_JOB_TOKEN”來訪問這些資源嗎?

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

或者我是否不可避免地必須在 gitlab-ci 中使用 ssh 私鑰存儲一個額外的秘密變量,並在“before_script”中為每個階段添加這個密鑰?

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

使用 ssh-keys 代替 https 有什么好處嗎?

基於GitLab CI/CD 文檔

Job 環境變量CI_JOB_TOKEN可用於驗證依賴存儲庫的任何克隆。

如上所述,使用CI_JOB_TOKEN不會賦予管道對依賴存儲庫的寫入權限。 它只能用於克隆/下載依賴的存儲庫。

另一方面,使用SSH 私鑰可以為您的管道提供更多權限。

還有其他方法可以訪問依賴存儲庫。 您可以通過為它們定義部署令牌部署密鑰來訪問所需的存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM