跳至主要内容

GitHub Actions 上的 Dependabot

关于在 GitHub Actions 中使用 Dependabot 的详细信息。

Dependabot 触发事件时的限制

Dependabot 能够在其拉取请求和评论上触发 GitHub Actions 工作流;但某些事件会被不同对待。

对于由 Dependabot 发起的工作流(github.actor == 'dependabot[bot]'),使用 pull_requestpull_request_reviewpull_request_review_commentpushcreatedeploymentdeployment_status 事件时,适用以下限制

  • GITHUB_TOKEN 默认具有只读权限。
  • 密钥(Secrets)来自 Dependabot 的密钥。GitHub Actions 的密钥不可用。

对于由 Dependabot 发起的工作流(github.actor == 'dependabot[bot]'),使用 pull_request_target 事件时,如果拉取请求的基础引用是由 Dependabot 创建的(github.event.pull_request.user.login == 'dependabot[bot]'),则 GITHUB_TOKEN 将是只读的,且密钥不可用。

即使工作流由其他参与者重新运行,这些限制仍然适用。

了解更多信息,请参阅 保持 GitHub Actions 和工作流安全:防止恶意请求

在自托管运行器上使用 Dependabot 的要求

要使用自托管运行器生成 Dependabot 更新,需要正确配置系统、网络和证书。

系统要求

用于 Dependabot 运行器的任何虚拟机(VM)必须满足自托管运行器的要求。此外,它们还必须满足以下要求。

  • Linux 操作系统

  • x64 架构

  • 已安装 Docker,且运行者用户可访问

    • 我们建议以 rootless 模式安装 Docker,并将运行器配置为在不使用 root 权限的情况下访问 Docker。
    • 或者,安装 Docker 并赋予运行者用户提升的权限以运行 Docker。

CPU 和内存需求取决于在给定 VM 上部署的并发运行器数量。作为参考,我们已成功在一台 2 核 8GB 的机器上设置了 20 个运行器,但最终,CPU 和内存需求将高度取决于被更新的仓库。某些生态系统比其他生态系统需要更多资源。

如果在 VM 上指定超过 14 个并发运行器,还必须更新 Docker 的 /etc/docker/daemon.json 配置,以增加 Docker 默认可创建的网络数量。

{
  "default-address-pools": [
    {"base":"10.10.0.0/16","size":24}
  ]
}

网络要求

Dependabot 运行器需要访问公共互联网、GitHub.com 以及在 Dependabot 更新中将使用的任何内部注册表。为尽量降低对内部网络的风险,您应限制虚拟机(VM)对内部网络的访问。这可减少若运行器下载到被劫持的依赖项时对内部系统造成损害的可能性。

您还必须允许向 dependabot-actions.githubapp.com 的出站流量,以防止 Dependabot 安全更新的作业失败。有关更多信息,请参阅 自托管运行器参考

证书配置

如果 Dependabot 需要与使用自签名证书的注册表交互,则必须在运行 Dependabot 作业的自托管运行器上也安装这些证书。这能够强化连接的安全性。您还必须配置 Node.js 使用该证书,因为大多数操作都是用 JavaScript 编写并在 Node.js 上运行,而 Node.js 并不使用操作系统的证书存储。

© . This site is unofficial and not affiliated with GitHub, Inc.