GitLab流水线用CI_JOB_TOKEN拉取仓库文件遇404问题求助
GitLab CI_JOB_TOKEN 跨项目访问返回404的排查方案
以下是可能遗漏的配置点,逐一排查:
核对项目ID正确性
确认仓库B的项目ID确实是111,可在仓库B主页的「设置」-「通用」页面查看。避免混淆项目路径的URL编码(如namespace%2Fproject)与纯数字ID,确保API请求中使用的ID完全匹配。修正请求Header键名
GitLab API接受的CI作业令牌Header键是Job-Token,而非CI_JOB_TOKEN。将curl命令中的Header改为:curl -H "Job-Token:$CI_JOB_TOKEN" "https://gitlab.myinstance.com/api/v4/projects/111/repository/files/credentials%2Fcredentials%2Etpl/raw?ref=main"这是最常见的配置错误。
确认授权权限包含仓库读取权限
在仓库B的「设置」-「访问控制」-「跨项目访问」中,给仓库A授权时,必须勾选read_repository权限。仅添加授权但未分配正确权限,会导致令牌无权访问仓库内容。检查项目可见性与成员权限
若仓库B为私有项目,需确认仓库A所在的群组/服务账户已被添加为仓库B的成员,且至少拥有「开发者」权限(该权限包含仓库读取权限)。可在仓库B的「成员」页面查看并调整权限。验证全局跨项目CI_JOB_TOKEN开关
自建GitLab实例需检查管理员后台设置:进入「管理员」-「设置」-「CI/CD」-「流水线」,确保「允许跨项目访问CI_JOB_TOKEN」选项已启用。全局禁用该开关时,单个项目的授权设置无法生效。
内容的提问来源于stack exchange,提问作者fraserc182
相关产品推荐
相关产品推荐

