Dependabot 触发事件时的限制
Dependabot 能够在其拉取请求和评论上触发 GitHub Actions 工作流程;但是,某些事件的处理方式不同。
对于 Dependabot (github.actor == 'dependabot[bot]') 使用 pull_request、pull_request_review、pull_request_review_comment、push、create、deployment 和 deployment_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。
- 建议在无根模式下安装 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 不使用操作系统证书存储。