Skip to main content

GitHub Actions 上的 Dependabot

有关将 Dependabot 与 GitHub Actions 配合使用的详细信息。

Dependabot 触发事件时的限制

Dependabot 能够在其拉取请求和评论上触发 GitHub Actions 工作流程;但是,某些事件的处理方式不同。

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

  •         `GITHUB_TOKEN` 默认拥有只读权限。
    
  • 机密是从 Dependabot 机密填充的。 GitHub Actions 机密不可用。

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

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

有关详细信息,请参阅确保 GitHub Actions 和工作流安全:阻止 pwn 请求

将 Dependabot 与自托管运行器配合使用的要求

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

系统要求

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

  • Linux 操作系统

  • x64 体系结构

  • 安装有运行器用户访问权限的 Docker:

    • 建议在无根模式下安装 Docker,并将运行器配置为在没有 root 特权的情况下访问 Docker。
    • 或者,安装 Docker 并授予运行器用户提升的权限来运行 Docker。

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

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

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

网络要求

证书配置

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