拒绝给予 github-actions[bot] 权限

52
我正在使用mkdocs为我的项目生成文档,现在我无法将这些文档部署到Github页面,它告诉我:
远程:拒绝对XXX.git的权限,给github-actions[bot]。 致命错误:无法访问'XXX':请求的URL返回错误:403
这是我的CI配置
还有我的存储库的秘密:(这两个GIT_ACTIONS_PUSH都是我的个人访问令牌。)

如果我手动启动CI流程,CI会像this一样崩溃。
我该如何解决这个问题?
5个回答

70

请在“设置- >操作- >常规- >工作流权限”中检查是否启用了“读写权限”:

工作流权限设置


如果他正在使用自己的个人令牌,为什么这个设置声称影响GITHUB_TOKEN的权限的设置会对他尝试推送产生任何影响? - Abraham Murciano Benzadon
2
默认情况下,仓库分支上的工作流程是被禁用的,您需要手动启用它们。干得好! - InsertCheesyLine
3
Github不允许我给予读写权限。 - fccoelho

11
如果你正在创建新文件,那么你需要给予明确的写入权限。
permissions:
  contents: write

1
这是一个比得票最高的解决方案更好的选择,因为它将权限限制在最低限度。 - psmith

1
你的工作流已经有一个权限块,你已经将权限限制为contents: read。为了发布到与你的仓库关联的页面,你需要将pages: write添加到该列表中。

⚠️ 警告

许多其他答案建议将所有操作工作流的默认权限从限制性更改为宽松性。从安全角度来看,我们强烈不建议这样做。

与其添加等效的permissions: write-all,更好的做法是依赖默认的受限读取权限,并仅添加你需要的确切写入权限。

不要将其设置为"读取和写入"。不要给操作权限创建和批准拉取请求: enter image description here

对于你的情况,对工作流文件进行以下更改应该就足够了:

permissions:
  contents: read
  pages: write          # <-- Add this line

0

我认为问题出在persist-credentials: falsefetch-depth上。这会在检出存储库时删除git的凭据。

您可以尝试删除该行并重试。

    - uses: actions/checkout@v3

不,它没有帮助,而且崩溃情况也一样。 - forestbat
我认为这与获取深度无关。 - forestbat

-1

你需要更新仓库上的操作权限,可以在这里共享


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接