Skip to main content

关于 GitHub Actions 运行器上的 Dependabot

在 GitHub Actions 上运行 Dependabot 可以提供更好的性能,并提高 Dependabot 作业的可见性和控制。

谁可以使用此功能?

Organization owners and repository administrators can enable Dependabot on GitHub Actions.

Note

必须选择在 GitHub Actions 上运行 Dependabot。 GitHub Enterprise Cloud 的未来版本将删除选择加入并始终在 GitHub Actions 上运行 Dependabot 的功能。 有关详细信息,请参阅“关于 GitHub Actions 运行器上的 Dependabot”。

关于 GitHub Actions 运行器上的 Dependabot

默认情况下,Dependabot updates 使用 GitHub Enterprise Cloud 中内置的 Dependabot 应用程序运行。 可以改为选择在 GitHub Actions 上运行 Dependabot updates,以利用更好的性能以及提高 Dependabot updates 作业的可见性和控制。

使用 GitHub Actions 运行器可以更轻松地识别 Dependabot 作业错误,并手动检测和排查失败的运行。 还可以使用 GitHub Actions API 和 Webhook 将 Dependabot 集成到 CI/CD 管道中,以检测 Dependabot 作业状态(例如运行失败),并执行下游处理。 有关详细信息,请参阅“GitHub Actions 的 REST API 终结点”和“Webhook 事件和有效负载”。

不能在自承载运行器或 大型运行器 上运行 GitHub Actions 上的 Dependabot。 不支持将专用网络与 Azure 虚拟网络 (VNET) 或 Actions 运行器控制器 (ARC) 配合使用。

在 GitHub 托管的运行器上运行 Dependabot 不会计入包含的 GitHub Actions 分钟。 有关详细信息,请参阅“关于 GitHub Actions 的计费”。

在 GitHub Actions 上启用 Dependabot 可能会增加帐户中运行的并发作业数。 如果需要,使用企业计划的客户可请求更高的并发作业数限制。 有关详细信息,请通过 GitHub 支持门户 联系我们,或联系销售代表。

如果要在 GitHub Actions 运行器上使用 Dependabot,并且限制对组织或存储库的专用资源的访问,则可能需要更新允许的 IP 地址列表。 例如,如果当前将对专用资源的访问权限限制为 Dependabot 使用的 IP 地址,则应更新允许列表以使用源自元 API 终结点的 GitHub 托管的运行器 IP 地址。 有关详细信息,请参阅“元数据的 REST API 终结点”。

强制实施策略以仅允许企业中的操作和可重用工作流,并且对 GitHub Actions 启用 Dependabot 时,Dependabot 将不会运行。 若要使 Dependabot 能够与企业操作和可重用工作流一起运行,应选择允许 GitHub 创建的操作,或允许指定的操作和可重用工作流。 有关详细信息,请参阅“在企业中为 GitHub Actions 实施策略”。

在 GitHub Actions 运行器上启用或禁用 Dependabot

如果存在以下任一情况,则在用户帐户或组织中创建的新存储库将自动配置为在 GitHub Actions 上运行 Dependabot:

  • Dependabot 已安装并启用,GitHub Actions 已启用且正在使用中。
  • 为组织启用“GitHub Actions 运行器上的 Dependabot”设置。

对于现有存储库,可以选择在 GitHub Actions 上运行 Dependabot,如下所示。

GitHub Enterprise Cloud 的未来版本将删除在 GitHub Actions 上禁用运行 Dependabot 的功能。

如果限制对组织或存储库的专用资源的访问,则在 GitHub Actions 运行器上启用 Dependabot 之前,可能需要更新允许的 IP 地址列表。 可以更新 IP 允许列表以使用 GitHub 托管的运行器 IP 地址(而不是 Dependabot IP 地址),该地址源自 REST API 终结点。

Warning

不应依赖 GitHub Actions IP 地址对专用注册表进行身份验证。 这些 GitHub Actions 地址不仅由 GitHub 使用,也不应信任进行身份验证。 在将来的版本中,你将能够使用自承载运行器或 大型运行器 来确保更好地控制网络访问。

请注意,禁用并重新启用“GitHub Actions 运行器上的 Dependabot”设置不会触发新的 Dependabot 运行。

为存储库启用或禁用

可以为公共、专用或内部存储库管理 GitHub Actions 上的 Dependabot。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 在“代码安全性和分析”下,在“GitHub Actions 运行器上的 Dependabot”的右侧,单击“启用”以启用该功能,或单击“禁用”以禁用该功能。

为组织启用或禁用

可以使用“代码安全性和分析”的组织设置页面为组织中的所有现有存储库启用 GitHub Actions 上的 Dependabot。 下次触发 Dependabot 作业时,仅更新具有以下配置的存储库,以在 GitHub Actions 上运行 Dependabot。

  • 在存储库中启用 Dependabot。
  • 在存储库中启用 GitHub Actions。

如果组织中的存储库启用了 Dependabot,但 GitHub Actions 已禁用,则 Dependabot 不会在 GitHub Actions 上运行,但将继续使用内置 Dependabot 应用程序运行。

  1. 在 GitHub.com 的右上角,选择个人资料照片,然后单击 “你的组织”****。

    @octocat 的个人资料图片下的下拉菜单的屏幕截图。 “你的组织”以深橙色标出。

  2. 在组织旁边,单击“设置”。

  3. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  4. 在“代码安全性和分析”下,在“GitHub Actions 运行器上的 Dependabot”右侧,单击“全部启用”以启用该功能,或单击“全部禁用”予以禁用。

管理 GitHub Actions 运行器上的 Dependabot

当 GitHub Actions 作业上的 Dependabot 运行时,可以直接从 Dependabot 作业日志查看工作流运行历史记录。 有关详细信息,请参阅“查看 Dependabot 作业日志”。

还可以从存储库中的“操作”选项卡导航到 Dependabot 工作流运行。 有关详细信息,请参阅“查看工作流程运行历史记录”。

若要重新运行 Dependabot version updates 或 Dependabot security updates 作业,请使用下面的相应过程。 不能像对其他 GitHub Actions 工作流和作业那样,使用存储库中的“操作”选项卡,在 GitHub Actions 上重新运行 Dependabot 作业。 无法在组织的 GitHub Actions 使用指标中查看 Dependabot updates 工作流和作业的用法数据。

重新运行 Dependabot version updates 作业

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击 “见解”。

    存储库的主页的屏幕截图。 在水平导航栏中,标有图形图标和“见解”的选项卡以深橙色标出。

  3. 在左侧边栏中,单击“依赖项关系图”。

    “依赖项关系图”选项卡的屏幕截图。选项卡以橙色边框突出显示。

  4. 在“依赖项关系图”下,单击“Dependabot”。

  5. 在你感兴趣的清单文件名称的右侧,单击“最近更新作业****”。

  6. 在受影响的清单文件右侧,单击“检查更新”以重新运行 Dependabot version updates 作业,并检查该生态系统的依赖项的新更新。

重新运行 Dependabot security updates 运行

  1. 在 GitHub.com 上,导航到存储库的主页。
  2. 在存储库名称下,单击“ 安全性”。
  3. 在左边栏的“漏洞警报”下,单击“Dependabot”。
  4. 在“Dependabot”下,单击要查看的警报。
  5. 在显示警报的错误详细信息的部分中,单击“重试”以重新运行 Dependabot security updates 作业。

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 的工作流语法”。