我已经看到了这个:`git clone project2` in gitlab-ci.yml?以及一些类似的帖子,类似的答案暗示一个人应该使用Git子模块。
关于Git中的子模块是否运行良好的问题,在我的情况下,根本不是一个选项(要检查的其他项目取决于传递给作业触发器的参数,或者至少是它,应该)。
另一个要求是我需要能够跟踪启动触发链的用户。即硬编码我的个人令牌,或者只是任何令牌都不会这样做:我需要GitLab来使用执行该作业的用户的权限来克隆其他存储库。
没有放弃GitLab并寻找成熟的CI替代方案,有没有办法完成这项工作?
正如New CI job permissions model所述,有两种选择:使用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://[email protected]/"