gitlab ci 访问私人片段

gitlab ci access to private snippets

我有一个片段想在我的 gitlab ci 中跨多个项目使用。

before_script:
 - curl --header "PRIVATE-TOKEN: xxx" https://gitlab.example.com/api/v4/snippets/1
 - bash my_script.sh

我尝试使用 $CI_JOB_TOKEN 导致 401。有没有办法在不创建用户令牌的情况下获得访问权限?

简短的回答是否定的。
CI_JOB_TOKEN 用于使用 GitLab 容器注册表进行身份验证和下载依赖存储库的变量 [1]。
您可以创建个人和项目片段,具有三个可见性级别 [2]、privateinternalpublic .

私有代码段仅对代码段创建者可见,因此您需要一个个人访问令牌(具有 api 范围!!!,不推荐用于 CI 个 public/shared 个项目中的职位。

建议:

  • 创建内部代码段
  • 为 CI 个作业创建一个用户,对项目具有只读访问权限(例如 ci-bot)。
  • 使用 ci-bot 的访问令牌执行 CI 作业。

[1] https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
[2] https://docs.gitlab.com/ee/api/snippets.html