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