gitlab ci访问私有片段

Ohj*_*eah 5 gitlab gitlab-ci

我有一个要在多个项目的gitlab ci中使用的代码段。

before_script:
 - curl --header "PRIVATE-TOKEN: xxx" https://gitlab.example.com/api/v4/snippets/1
 - bash my_script.sh
Run Code Online (Sandbox Code Playgroud)

我尝试$CI_JOB_TOKEN在401中使用结果。是否可以在不创建用户令牌的情况下获得访问权限?

MrR*_*ing 6

最简洁的答案是不。
CI_JOB_TOKEN用于通过GitLab容器注册表进行身份验证并下载相关存储库的变量[1]。
您可以创建具有三个可见性级别[2]的个人和项目摘要,即私有内部公共

专用代码段仅对代码段创建者可见,因此您需要一个个人访问令牌(具有api作用域!!!),不建议在公共/共享项目中的CI作业中使用。

建议:

  • 创建一个内部代码段
  • 为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