【问题标题】:refusing to allow a GitHub App to create or update workflow拒绝允许 GitHub 应用程序创建或更新工作流
【发布时间】:2021-06-13 01:39:45
【问题描述】:

我有一个 GitHub 操作,它使用:

github_token: ${{ secrets.GITHUB_TOKEN }}

当我运行它时,我得到:

  ! [remote rejected]     tmp_upstream/master -> master (refusing to allow a GitHub App to create or update workflow `.github/workflows/build-images-workflow-run.yml` without `workflows` permission)
error: failed to push some refs to '***github.com/myname/repo'

https://docs.github.com/en/actions/reference/authentication-in-a-workflow 解释说

GitHub 会自动创建一个 GITHUB_TOKEN 密码以在您的 工作流程。您可以使用 GITHUB_TOKEN 在工作流中进行身份验证 运行。

但我使用了工作流程,但它似乎没有创建令牌。我去创建一个个人令牌,然后尝试使用名称 GITHUB_TOKEN 保存它,但它说该名称无效。 我该如何解决这个问题?

github image

【问题讨论】:

标签: git github


【解决方案1】:

为了修改工作流程,GitHub 应用程序(例如用于为 GitHub 操作颁发令牌的应用程序)需要 workflow 范围。这样一来,您添加到存储库的 GitHub 应用程序在未经您许可的情况下无法访问存储库中的机密。为 GitHub Actions 颁发的令牌默认没有此权限。

如果您不需要修改工作流文件,那么您可以避免修改它们,这将消失。如果您确实需要修改它们,您可以创建一个适当范围的 PAT 并将其存储在不以 GITHUB 开头的名称下,例如 WORKFLOW_TOKEN。然后,您可以调整您的操作,这样说:

github_token: ${{ secrets.WORKFLOW_TOKEN }}

【讨论】:

  • 老实说,根据方法 2 dev.to/dtinth/… 我并没有完全理解这一点,我什至不需要这样做,并且在激活工作流时会在后面创建令牌
  • 是的,GitHub Actions 会创建一个令牌,但您不能使用该令牌来修改工作流文件。如果您使用 workflow 范围创建不同名称的 PAT 或其他令牌,则可以修改这些文件。
  • 我不想修改工作流程。工作流程在那里,因为我分叉了这个项目。我只想执行工作流程。这个工作流程只是将上游同步到我的 fork 中。就是这样。
  • 如果您要推送包含工作流文件的数据,您的令牌上必须有 workflow 范围,即使该数据通常只是在主项目中。
【解决方案2】:

生成令牌时,需要为令牌赋予正确的权限。您必须勾选workflow 旁边的以下复选框才能拥有update 权限。

【讨论】:

  • 老实说,根据方法 2 dev.to/dtinth/…,我并不完全理解这一点,我什至不需要这样做,并且在激活工作流时会在后面创建令牌
猜你喜欢
  • 2021-01-11
  • 2021-10-19
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多