我已经看到了这个:`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]/"
• 从 eclipse 2022-12 (4.26.0) 内部运行 git,它总是要求输入 git 密码
• 强制 Gitlab 在 Go 失败时重试 webhooks
• 无法从具有自定义端口 6022 的自托管 GitLab 实例进行 git 克隆
• 需要帮助请 docker push 命令在我的 gitlab-ci 管道中显示此错误
• 如何在 Jenkins DSL 作业中克隆存储库以在 DSL 创建子作业之前获取和使用配置文件?
• 我的提交日志显示'[ci skip]'并且我的github页面在更改后没有更新?
• GitLab:如何在 yaml-checkers 存在的情况下使用 !reference 标签
• 通过 gitlab runner ( windows) 发布运行 shell 脚本
• 如何使用 YAML 文件在 GitLab 管道中编写多行 Python 脚本块