工作流程中的GITHUB_TOKEN权限在设置为写入后更改为读取

问题描述 投票:0回答:1

我正在尝试编写一个工作流程,自动将拉取请求合并到 github 上的公共存储库。 工作流程如下:

name: X
on:
  pull_request:
    paths:
      - '<path>'

jobs:
  Y:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    env:
      Approve: true
      ADDED_FILES_COUNT: ""
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - id: automerge
        name: automerge
        uses: "pascalgn/[email protected]"
        env:
            GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
            MERGE_LABELS: ""

注意我更改了写入内容的权限。 尽管如此,查看 github 上的运行操作,presmission 设置为:

enter image description here

因此,当调用自动合并时,会显示错误消息并且合并失败:

enter image description here

重要的是,我已经将项目设置更改为:

enter image description here

为什么会发生这种情况?在这种情况下 PAT 是必须的吗? 谢谢你。

github continuous-integration github-actions
1个回答
0
投票

如果您在存储库设置中设置工作流权限,则类似于设置

permissions: write-all
,但 Dependabot PR 除外,默认为只读。它也比设置显式权限安全性低。

但是,如果您确实设置了显式权限,则您未提及的所有范围都将设置为

read
权限。

您设置了

contents: write
,因此其他所有内容都是只读的。要合并 PR,您的代币需要
pull-requests: write
权限。

我会设置它,然后我建议在存储库设置中切换回只读默认值。

© www.soinside.com 2019 - 2024. All rights reserved.