Dependabot 触发现有工作流程时的故障疑难解答
为 GitHub.com 设置 Dependabot 更新后,当现有工作流由 Dependabot 事件触发时,你可能会看到失败。
默认情况下,由 Dependabot 从 push
、pull_request
、pull_request_review
或 pull_request_review_comment
事件中触发的 GitHub Actions 工作流运行被视为从存储库分支中打开。 与其他参与者触发的工作流不同,这意味着它们会接收一个只读 GITHUB_TOKEN
,并且无权访问任何通常可用的机密。 这将导致尝试写入仓库的任何工作流程在由 Dependabot 触发时失败。
有三种方法可以解决此问题:
- 可以更新工作流,使其不再由 Dependabot 使用如下表达式触发:
if: github.actor != 'dependabot[bot]'
。 有关详细信息,请参阅“对工作流和操作中的表达式求值”。 - 可以修改工作流以使用包含
pull_request_target
的两步过程,该过程没有这些限制。 有关详细信息,请参阅“通过 GitHub Actions 自动化 Dependabot”。 - 可为由 Dependabot 触发的工作流提供对机密的访问权限,并允许
permissions
术语增加GITHUB_TOKEN
的默认范围。 有关详细信息,请参阅“通过 GitHub Actions 自动化 Dependabot”和“GitHub Actions 的工作流语法”。