GitLab的CI_JOB_TOKEN是否可用于推送代码到仓库并创建标签?
GitLab CI_JOB_TOKEN 推送权限说明
GitLab 默认不允许使用CI_JOB_TOKEN直接向对应仓库推送代码或标签,该限制和你是否提前创建标签没有直接关系,需要手动调整仓库配置后才可正常执行推送操作,相关配置要求如下:
- 首先需要进入目标仓库的「设置」→「CI/CD」→「令牌访问」页面,开启 允许CI作业令牌向仓库写入 的开关。GitLab 16.0及以上版本该开关默认关闭,更低版本默认开启但建议主动检查配置状态。
- 需要给
CI_JOB_TOKEN关联的机器人用户分配足够的仓库权限,至少要有「开发者」及以上权限才能推送内容;如果要推送受保护分支、受保护标签,还需要额外在受保护分支/标签的配置页,将CI作业令牌对应的身份加入允许推送的列表。 - 若CI作业在当前推送目标仓库下运行,完成上述配置后就可以直接在CI脚本中执行
git push相关命令,不需要额外生成个人访问令牌;如果是跨仓库推送,还需要将运行CI作业的源仓库,加入到目标仓库的CI_JOB_TOKEN允许访问白名单中。
额外说明:如果你的推送内容是标签,不需要提前在仓库创建对应标签,直接在CI脚本中执行打标签+推送的操作即可,只要权限配置到位就可以正常执行。
内容的提问来源于stack exchange,提问作者Evan Carroll
相关产品推荐
相关产品推荐

