我已经看到了这一点:`git clone project2` in gitlab-ci.yml?以及许多类似的帖子,它们的答案相似,暗示着应该使用Git子模块。
在我的案例中,没有涉及Git中子模块是否工作良好的争论,这根本不是一个选择(要检查的其他项目取决于传递给作业触发器的参数,或者至少应该如此。)
另一个要求是,我需要能够跟踪启动触发器链的用户。即对我的个人令牌进行硬编码,或者仅仅是任何令牌都无法做到:我需要GitLab来使用执行作业的用户的权限才能克隆其他存储库。
放弃GitLab并寻找成熟的CI替代品,有什么方法可以做到这一点?
答案 0 :(得分:1)
New CI job permissions model指出有2个选项:使用gitlab-ci-token:${CI_JOB_TOKEN}
或将其写入~/.netrc
(对我不起作用)。
但是我们在package.json
中定义了多个从属存储库,因此我们的解决方案是覆盖git config
git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@your-gitlab.com/".insteadOf "ssh://git@your-gitlab.com/"
答案 1 :(得分:0)