注意
Maven 当前仅支持自动依赖项提交。
依赖项关系图会分析存储库中的清单和锁定文件,帮助用户了解其软件项目依赖的上游包。 但是,在某些生态系统中,可转移依赖项的解析发生在生成时, 无法仅基于存储库的内容自动发现所有依赖项。
在为存储库启用自动依赖项提交时, 会自动确定存储库中的可转移依赖项,并使用 依赖项提交 API 将这些依赖项提交到 。 然后,可使用依赖项关系图浏览这些依赖项。 Dependabot 将通过生成 Dependabot alerts,通知你有关这些依赖项的安全更新。
使用自动依赖项提交将计入 Actions 分钟。 有关详细信息,请参阅“About billing for Actions”。
或者,可以选择为自动依赖项提交配置自托管运行器或 托管的 大型运行器。 有关详细信息,请参阅将自托管运行器用于自动依赖项提交和将 托管的大型运行器用于自动依赖项提交。
必须为存储库启用依赖项关系图才能启用自动依赖项提交。
还必须为存储库启用 Actions 才能使用自动依赖项提交。 有关详细信息,请参阅“管理存储库的 Actions 设置”。
存储库管理员可以按照此过程所述的步骤为存储库启用或禁用自动依赖项提交。
组织所有者可使用安全配置为多个存储库启用自动依赖项提交。 有关详细信息,请参阅“删除自定义安全配置”。
在 上,导航到存储库的主页面。
在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。
在边栏的“Security”部分中,单击“ Advanced Security”****。
在“依赖项关系图”下,单击“自动依赖项提交”旁边的下拉菜单,然后选择“已启用”。
为存储库启用自动依赖项提交后, 将:
- 监视存储库所有分支上存储库根目录中
pom.xml
文件的更改。 - 对每次更改执行自动依赖项提交。
可以通过查看存储库的“操作”选项卡来查看有关自动工作流运行的详细信息。
注意
启用选项后,第一次推送到 pom.xml
文件时将自动提交。
可以将自托管运行器配置为运行自动依赖项提交作业,而不是使用 Actions 基础结构。
- 在存储库或组织级别预配一个或多个自托管运行器。 有关详细信息,请参阅 关于自托管运行程序 和 添加自托管的运行器。 自托管运行器必须在 Linux 或 macOS 上运行,并且必须安装 Docker。
- 为希望自动依赖项提交使用的每个运行器分配
dependency-submission
标签。 有关详细信息,请参阅“将标签与自托管运行程序结合使用”。 - 在边栏的“Security”部分中,单击“ Advanced Security”****。
- 在“依赖项关系图”下,单击“自动依赖项提交”旁边的下拉菜单,然后选择“为标记的运行器启用”。
启用后,自动依赖项提交作业将在自托管运行器上运行,除非:
- 自托管运行器不可用。
- 没有任何使用
dependency-submission
标签标记的运行器组。
注意
使用自托管运行器时,需要添加对 Maven 服务器设置文件的访问权限,以允许依赖项提交工作流连接到专用注册表。 专用注册表中的依赖项将包含在下一个 pom.xml
更新的依赖项树中。 有关 Maven 服务器设置文件的详细信息,请参阅 Maven 文档中的安全性和部署设置。
Team 或 Enterprise Cloud 用户可以使用 大型运行器 来运行自动依赖项提交作业。
- 使用名称
dependency-submission
在组织级别预配大型运行器。 有关详细信息,请参阅将 大型运行器 托管的运行器添加到组织。 - 授予存储库对运行器的访问权限。 有关详细信息,请参阅允许仓库访问 大型运行器。
- 在“依赖项关系图”下,单击“自动依赖项提交”旁边的下拉菜单,然后选择“为标记的运行器启用”。
Maven 当前仅支持自动依赖项提交。 此功能使用 Maven 依赖关系树提交操作。 有关详细信息,请参阅 Marketplace 中 Maven 依赖关系树依赖项提交操作的文档。 如果项目使用非标准 Maven 配置,则它可能无法正确生成依赖项,并将其提交到依赖项关系图。
自动依赖项提交会尽最大努力在使用缓存操作的运行之间缓存包下载,以加快工作流。 对于自承载运行器,你可能需要在自己的基础结构内管理此缓存。 为此,你可以将环境变量 GH_DEPENDENCY_SUBMISSION_SKIP_CACHE
设置为 true
,以禁用内置缓存。 有关详细信息,请参阅“在变量中存储信息”。
如果存储库的依赖项似乎不准确,请检查生成的上一个依赖项关系图的时间戳是否与 pom.xml
文件的最后一次更改匹配。 时间戳在存储库的 Dependabot alerts 选项卡中的警报表中可见。如果推送更新 pom.xml
的提交,会触发依赖项树提交操作的新运行,并强制重新生成该存储库的依赖项关系图。
依赖项关系图可以通过三种不同的方式来了解依赖项:静态分析、自动提交和用户提交。 一个仓库可以配置多种方法,这会导致同一个包清单被扫描多次,而且每次扫描可能会产生不同的结果。 依赖项关系图使用去重逻辑来分析输出,为每个清单文件优先选取最准确的信息。
依赖项关系图会依据以下优先级规则,仅显示每个清单文件的一个实例。
- 用户提交具有最高优先级,因为它们通常是在项目构建期间创建的,包含最完整的信息。****
- 如果存在来自不同检测器的多个手动快照,这些快照将根据关联器按字母顺序进行排序,并且会采用第一个快照。
- 如果有两个使用相同检测器的关联器,已解析的依赖项将合并。 有关关联器和检测器的详细信息,请参阅 适用于依赖项提交的 REST API 终结点。
- 自动提交具有第二高的优先级,因为它们同样是在项目构建期间创建的,但并非由用户提交。****
- 静态分析结果会在没有其他可用数据的情况下被采用。****