Skip to main content

对 GitHub Actions 上的 Dependabot 进行故障排除

本文提供将 Dependabot 与 GitHub Actions 搭配使用时可能会遇到的问题的故障排除信息。

Dependabot 触发现有工作流程时的故障疑难解答

为 GitHub.com 设置 Dependabot 更新后,当现有工作流由 Dependabot 事件触发时,你可能会看到失败。

默认情况下,由 Dependabot 从 pushpull_requestpull_request_reviewpull_request_review_comment 事件中触发的 GitHub Actions 工作流运行被视为从存储库分支中打开。 与其他参与者触发的工作流不同,这意味着它们会接收一个只读 GITHUB_TOKEN,并且无权访问任何通常可用的机密。 这将导致尝试写入仓库的任何工作流程在由 Dependabot 触发时失败。

有三种方法可以解决此问题:

  1. 可以更新工作流,使其不再由 Dependabot 使用如下表达式触发:if: github.actor != 'dependabot[bot]'。 有关详细信息,请参阅“对工作流和操作中的表达式求值”。
  2. 可以修改工作流以使用包含 pull_request_target 的两步过程,该过程没有这些限制。 有关详细信息,请参阅“通过 GitHub Actions 自动化 Dependabot”。
  3. 可为由 Dependabot 触发的工作流提供对机密的访问权限,并允许 permissions 术语增加 GITHUB_TOKEN 的默认范围。 有关详细信息,请参阅“通过 GitHub Actions 自动化 Dependabot”和“GitHub Actions 的工作流语法”。