Sha*_*n93 6 git gitlab gitlab-ci gitlab-ci-runner
我有一个 gitlab ci 工作,它为我做了一些工作,但它取决于另一个仓库,所以我需要在这个工作中克隆另一个仓库。我无法使用 https 克隆,因为 gitlab 会询问我的用户名和密码,而 gitlab ci 是非交互式的。
那么如何在 gitlab ci 作业中使用 https 克隆 gitlab repo。
提前致谢。
我找到了一种方法来验证我的克隆。首先,我导航到我的 gitlab 帐户设置,然后导航到访问令牌选项卡。
然后使用任何名称创建新的访问令牌,您可以将到期日期留空(但为了安全起见,我设置了到期日期),然后选择您想要的正确范围。就我而言,我已经阅读了回购范围。
然后我使用生成的访问令牌使用 https 克隆我的存储库,如下所示
https://oauth2:YOUR_ACCESS_TOKEN@gitlab.com/PATH/TO/YOUR/REPO.git
Run Code Online (Sandbox Code Playgroud)
为了防止 CLI 暴露您的访问令牌,您必须将您的访问令牌添加到 gitlab 的 CI 变量列表中作为屏蔽。因此,当执行克隆时,您的访问令牌将不会显示。
然后将按如下方式访问它
https://oauth2:$ACCESS_TOKEN@gitlab.com/PATH/TO/YOUR/REPO.git
Run Code Online (Sandbox Code Playgroud)
如果您运行的是 gitlab 版本 8.12 或更高版本,则权限模型已重新设计。与这个新的权限模型一起出现的是 CI 环境变量 CI_JOB_TOKEN。GitLab 的高级版本使用此环境变量作为触发器,但您可以使用它来克隆存储库。
dummy_stage:
script:
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.instance/group/project.git
Run Code Online (Sandbox Code Playgroud)