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]、private、internal 和 public .
私有代码段仅对代码段创建者可见,因此您需要一个个人访问令牌(具有 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
我有一个片段想在我的 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]、private、internal 和 public .
私有代码段仅对代码段创建者可见,因此您需要一个个人访问令牌(具有 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