跳至主要内容

依赖关系图故障排除

如果依赖关系图报告的依赖项信息与预期不符,则需要考虑多个方面,并可以检查各种内容。

谁可以使用此功能?

依赖关系图适用于以下类型的仓库

  • 公共仓库(默认启用)
  • 私有仓库
  • Fork

GitHub 报告的依赖项检测结果可能与其他工具返回的结果不同。这是有原因的,了解 GitHub 如何确定项目的依赖项非常有帮助。

依赖关系图是否只查找清单和锁文件中的依赖项?

依赖关系图会自动包含在您的环境中明确声明的依赖项信息。也就是说,在清单或锁文件中指定的依赖项。依赖关系图通常还包括传递依赖项,即使它们未在锁文件中指定,也会通过查看清单文件中依赖项的依赖项来查找。

依赖关系图不会自动包含“松散”依赖项。“松散”依赖项是从另一个来源复制并直接或在存档(例如 ZIP 或 JAR 文件)中检入存储库的单个文件,而不是由包管理器的清单或锁文件引用。

但是,您可以使用依赖项提交 API 将依赖项添加到项目的依赖关系图中,即使这些依赖项未在清单或锁文件中声明,例如项目构建时解析的依赖项。使用依赖项提交 API 提交到项目的依赖项将显示使用哪个检测器进行提交以及何时提交。有关依赖项提交 API 的更多信息,请参阅“使用依赖项提交 API”。

检查:缺少的依赖项是否针对存储库的清单或锁文件中未指定的组件?

依赖关系图是否检测使用变量指定的依赖项?

依赖关系图会分析推送到 GitHub 的清单。因此,依赖关系图无法访问项目的构建环境,因此无法解析清单中使用的变量。如果在清单中使用变量来指定依赖项的名称或更常见的版本,则该依赖项不会自动包含在依赖关系图中。

但是,您可以使用依赖项提交 API 将依赖项添加到项目的依赖关系图中,即使这些依赖项仅在项目构建时才解析。有关依赖项提交 API 的更多信息,请参阅“使用依赖项提交 API”。

检查:缺少的依赖项是否在清单中使用变量来声明其名称或版本?

是否有影响依赖关系图数据的限制?

是的,依赖关系图有一类限制

  1. 处理限制

    这些会影响在 GitHub 中显示的依赖关系图,还会阻止创建 Dependabot 警报。

    大小超过 0.5 MB 的清单仅对企业帐户进行处理。对于其他帐户,超过 0.5 MB 的清单将被忽略,并且不会创建 Dependabot 警报。

    默认情况下,GitHub 每个存储库不会处理超过 150 个清单。超过此限制的清单不会创建 Dependabot 警报,如果超过此限制,Dependabot 警报的行为可能会不可预测。

    存储在通常用于供应商依赖项的目录中的清单文件将不会被处理。名称与以下正则表达式匹配的目录被视为供应商依赖项目录

    • (3rd|[Tt]hird)[-_]?[Pp]arty/
    • /(^|/)vendors?/
    • /(^|/)[Ee]xtern(als?)?/
    • /(^|/)[Vv]+endor/

    示例

    • third-party/dependencies/dependency1
    • vendors/dependency1
    • /externals/vendor1/dependency1

进一步阅读