Skip to main content
Skip to content

为存储库配置自动依赖项提交

可使用自动依赖项提交来提交存储库中的可转移依赖项数据。 这使您能够使用依赖项关系图分析这些可转移依赖项。

谁可以使用此功能?

具有管理员角色的存储库所有者、组织所有者、安全管理员和用户

先决条件

必须为存储库启用依赖项关系图才能启用自动依赖项提交。

还必须为存储库启用 GitHub Actions 才能使用自动依赖项提交。 有关详细信息,请参阅“管理存储库的GitHub Actions设置”。

注意

对于支持 Dependabot 图形作业的生态系统,无需启用自动依赖项提交。 Dependabot 为存储库启用依赖项关系图时,图形作业会自动运行,它们优先于自动依赖项提交。 请参阅“依赖项图如何识别依赖项”。

启用自动依赖项提交

存储库管理员可以按照此过程所述的步骤为存储库启用或禁用自动依赖项提交。

组织所有者可使用安全配置为多个存储库启用自动依赖项提交。 有关详细信息,请参阅“删除自定义安全配置”。

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在仓库名称下,单击 “Settings”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

  3. 在边栏的“安全和质量”部分中,单击 Advanced Security

  4. 在“依赖项关系图”下,单击“自动依赖项提交”旁边的下拉菜单,然后选择已启用

为存储库启用自动依赖项提交后, GitHub 将:

  • 监视向仓库的推送。
  • 针对仓库中的所有清单文件,执行与对应包生态系统关联的依赖项关系图生成操作。
  • 根据结构执行自动依赖项提交操作。

可以通过查看存储库的操作选项卡来查看有关自动工作流运行的详细信息。

注意

在您启用自动依赖项提交后,系统将自动运行相关操作。 启用后,每当默认分支上的提交更新清单文件时,它都会自动运行。

访问专用注册表

使用 Dependabot 机密

对于支持 Dependabot 图形作业的生态系统,可以在组织或存储库级别使用Dependabot秘密配置对专用注册表的访问。

当图形作业遇到无法通过配置的机密访问的专用包时 Dependabot ,这些包会从依赖项关系图中正常省略,而不会导致失败。

有关配置专用注册表访问的详细信息,请参阅 为 Dependabot 配置对专用注册表的访问权限

使用自托管的运行器

可以将 自承载运行程序 配置为运行自动依赖项提交作业,而不是使用 GitHub Actions 基础结构。 这对于访问不支持 Dependabot 图作业的生态系统的私有注册表,或者当你的注册表只能从你的网络内部访问时是必需的。 自托管运行器必须在 Linux 或 macOS 上运行。 对于 .NET 和 Python 自动提交,它们必须有权访问公共互联网,以便下载最新的组件检测版本。

  1. 在存储库或组织级别预配一个或多个自托管运行器。 有关详细信息,请参阅 自托管运行程序添加自托管的运行器
  2. 为希望自动依赖项提交使用的每个运行器分配 dependency-submission 标签。 有关详细信息,请参阅“将标签与自托管运行程序结合使用”。
  3. 在边栏的“安全和质量”部分中,单击 Advanced Security
  4. 在“依赖项关系图”下,点击“自动依赖项提交”旁边的下拉菜单,然后选择“对带标签的运行器启用”****。

启用后,自动依赖项提交作业将在自托管运行器上运行,除非:

  • 自托管运行器不可用。
  • 没有任何使用 dependency-submission 标签标记的运行器组。

注意

对于使用自托管运行器和 Maven 专用注册表的 Maven 或 Gradle 项目,需要修改 Maven 服务器的设置文件,以便依赖项提交工作流可以连接到这些注册表。 有关 Maven 服务器设置文件的详细信息,请参阅 Maven 文档中的安全性和部署设置

在受限的网络上,自动依赖项提交具有多个出站需求。 根据生态系统,作业可能会下载其运行的语言工具链、用于检测和提交依赖项的工具(例如 Gradle 依赖项提交插件),以及项目自己的注册表依赖项。

配置对依赖项注册表的访问仅涵盖其中最后一项。 确保其他路径也可访问,或镜像在生态系统支持它的内部。

对于网络允许列表 URL,可以从内部存储库解析 Gradle 提交插件、更大的运行程序配置、故障排除详细信息和包生态系统特定信息的选项,请参阅 自动依赖项提交

延伸阅读