配置GITHUB_TOKEN工作流权限无效,请求协助排查原因
问题解答
这不是Bug,是你没搞懂GitHub Actions权限的优先级规则。
GitHub Actions的权限逻辑是:仓库全局的「Workflow Permissions」是默认基础权限,工作流文件里设置的permissions只能在这个基础上缩小权限范围,绝对不能扩大。也就是说,如果仓库全局默认是只读权限,哪怕你在工作流里写了permissions: write-all,GITHUB_TOKEN还是会继承全局的只读属性,不会变成写入权限——这就是你看到日志里还是只读的原因。
解决办法
- 方案一:直接在仓库全局设置(Settings > Actions > General > Workflow Permissions)里开启「Read and write permissions」,之后工作流里的
permissions设置就会生效,你可以按需配置全写或者特定权限 - 方案二:如果不想修改全局默认权限,可以用**个人访问令牌(PAT)**替代
GITHUB_TOKEN。给PAT授予你需要的写入权限,然后把它存在仓库的Secrets里,在curl请求里用这个令牌做认证就行
验证点
你可以再去看「Set up job」环节的日志,当仓库全局是只读时,日志里会明确显示“Permissions inherited from repository settings: read-all”,工作流里的write-all会被忽略,因为它试图扩大权限,不符合规则。
内容的提问来源于stack exchange,提问作者glades
相关产品推荐
相关产品推荐

