未修改工作流文件时GitHub Action推送标签提示无workflows权限如何解决
问题成因
- GitHub的权限校验逻辑会追溯推送内容关联的提交记录,即使你本次操作只是推送指向已有提交的标签、没有修改任何文件,只要该标签关联的目标提交历史中存在
.github/workflows/release.yml的变更记录,GitHub就会校验本次推送使用的凭证是否具备workflows权限 - GitHub Action默认使用的内置
GITHUB_TOKEN默认未开启workflows读写权限,因此触发了远程拒绝规则
解决方案
你可以根据实际场景选择以下任意一种方案解决:
- 给工作流的
GITHUB_TOKEN新增workflows权限
在你的工作流yaml文件的顶层(全局生效)或对应执行推送操作的job下(仅当前job生效)添加权限配置:
permissions: contents: write workflows: write
- 使用具备对应权限的个人访问令牌(PAT)替代内置凭证
创建一个勾选了repo和workflows权限范围的PAT,将其存入仓库的 Secrets 中,执行git推送前用该PAT配置仓库的访问凭证即可。
内容的提问来源于stack exchange,提问作者Mark Raymond
相关产品推荐
相关产品推荐

