触发事件时 Dependabot 的限制
Dependabot 能够在其拉取请求和评论上触发 GitHub Actions 工作流程;但是,某些事件的处理方式不同。
对于使用Dependabotgithub.actor == 'dependabot[bot]'、pull_request、pull_request_review、pull_request_review_comment``push、create、deployment和deployment_status事件启动的工作流,这些限制适用:
-
`GITHUB_TOKEN` 默认拥有只读权限。 - 机密信息从Dependabot的秘密中提取。 GitHub Actions 机密不可用。
对于使用Dependabotgithub.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 运行器需要访问公共互联网、GitHub.com 以及将在 Dependabot updates 更新中使用的任何内部注册表。 为了最大程度地降低内部网络的风险,应该限制虚拟机 (VM) 对内部网络的访问。 如果运行器下载了一个被劫持的依赖项,这将减少内部系统损坏的可能性。
还需要允许出站流量流往 dependabot-actions.githubapp.com 以阻止Dependabot security updates 的作业失败。 有关详细信息,请参阅“自托管运行程序参考”。
证书配置
如果需要 Dependabot 与使用自签名证书的注册表进行交互,还必须在运行 Dependabot 作业的自承载运行程序上安装这些证书。 这一安全措施强化了连接。 还必须配置 Node.js 以使用证书,因为大多数操作都是用 JavaScript 编写并使用 Node.js 运行,而 Node.js 不使用操作系统证书存储。