关于 Dependabot updates 的自托管运行器
可以通过设置你的 GitHub Enterprise Server 实例安全更新和版本更新,帮助Dependabot的用户创建并维护安全的代码。 借助 Dependabot updates,开发人员可以配置存储库,以便更新其依赖项并自动保持安全。 有关详细信息,请参阅“为企业启用 Dependabot”。
若要在 Dependabot updates 上使用 你的 GitHub Enterprise Server 实例,必须配置自托管运行器,用于创建更新依赖项的拉取请求。
先决条件
配置自托管运行器只是启用 Dependabot updates 过程中的其中一步。 在执行这些步骤之前,您必须先完成几个步骤,包括将 你的 GitHub Enterprise Server 实例 配置为与自托管运行器一起使用 GitHub Actions。 有关详细信息,请参阅“为企业启用 Dependabot”。
为 Dependabot updates 配置自托管运行器
Dependabot 运行器的系统要求
用于 Dependabot 运行器的任何虚拟机 (VM) 都必须满足自托管运行器的要求。 此外,它们还必须满足以下要求。
-
Linux 操作系统
-
x64 体系结构
-
安装有运行器用户访问权限的 Docker:
- 建议在无根模式下安装 Docker,并将运行器配置为在没有
root特权的情况下访问 Docker。 - 或者,安装 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}
]
}
注意
Azure 虚拟网络(VNET)或 Actions Runner Controller(ARC)支持 Dependabot 在 GitHub Actions 上的专用网络。 请参阅“设置 Dependabot 以使用 Actions Runner Controller 在自托管操作运行器上运行”和“使用Azure专用网络设置 Dependabot 以在 github 托管的操作运行程序上运行”。
Dependabot运行器的网络要求
Dependabot 运行器需要访问公共互联网、GitHub.com以及将在 Dependabot updates 中使用的任何内部镜像仓库。 为了最大程度地降低内部网络的风险,应该限制虚拟机 (VM) 对内部网络的访问。 如果运行器下载了一个被劫持的依赖项,这将减少内部系统损坏的可能性。
Dependabot 运行器的证书配置
GitHub Enterprise Server如果实例使用自签名证书,或者Dependabot如果需要与使用自签名证书的注册表交互,则还必须在运行Dependabot作业的自承载运行程序上安装这些证书。 这一安全措施强化了连接。 还必须配置 Node.js 以使用证书,因为大多数操作都是用 JavaScript 编写并使用 Node.js 运行,而 Node.js 不使用操作系统证书存储。
为 Dependabot 更新添加自托管运行器
-
按照上述要求设置自托管运行器。 例如,在运行 Ubuntu 20.04 的 VM 上,你可以:
- 安装 Docker 并确保运行器用户有权访问 Docker。 有关详细信息,请参阅 Docker 文档。
- 验证运行器能够访问公共互联网,并且只能访问 Dependabot 所需的内部网络。
- 为 GitHub Enterprise Server 实例或需要与之交互的 Dependabot 注册表安装任何自签名证书。
- 将 Node.js 配置为使用相同的证书。 有关详细信息,请参阅“企业 GitHub Actions 故障排除”。
-
为每个你希望
dependabot使用的运行器分配一个Dependabot标签。 有关详细信息,请参阅“将标签与自托管运行程序结合使用”。 -
可选择启用由 Dependabot 触发的工作流,使其能够使用超过只读的权限,并访问通常可用的任何机密信息。 有关详细信息,请参阅“企业 GitHub Actions 故障排除”。