代码之家  ›  专栏  ›  技术社区  ›  wvxvw

在GitLab CI脚本中克隆另一个GitLab存储库

  •  -1
  • wvxvw  · 技术社区  · 7 年前

    我看到了: `git clone project2` in gitlab-ci.yml? 还有一堆类似的帖子,上面有类似的答案,暗示应该使用Git子模块。

    在我的例子中,没有讨论Git中的子模块是否工作良好,这根本不是一个选项(要签出的其他项目取决于传递给作业触发器的参数,或者至少它应该)。

    另一个要求是,我需要能够跟踪启动触发器链的用户。一、 e.硬编码我的个人令牌,或者任何令牌都不能做到:我需要GitLab使用执行作业的用户的权限来克隆其他存储库。

    除了放弃GitLab,寻找成熟的CI替代品,还有什么方法可以做到这一点吗?

    1 回复  |  直到 7 年前
        1
  •  28
  •   Simon A. Eugster    4 年前

    New CI job permissions model 声明有两个选项:使用 gitlab-ci-token:${CI_JOB_TOKEN} 或者写信给 ~/.netrc (对我不起作用)。

    但我们在中定义了多个依赖存储库 package.json 所以我们的解决方案是覆盖git配置

    git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@your-gitlab.com/".insteadOf "ssh://git@your-gitlab.com/"
    
        2
  •  8
  •   Rekovni    7 年前

    使用 gitlab-ci-token 文件中的变量 here :

    git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/myuser/mydependentrepo

    issue 讨论 gitlab ci令牌 提案中还提到:

    1. 我们将通过从Ci::Build获取有关运行此生成的人员的信息来授权对资源的访问,该信息可能是: git推送、重试生成的人员、合并更改的人员