理解表格
依赖项图支持为直接和间接(可传递)依赖项提交数据的不同方法。 请参阅“依赖项图如何识别依赖项”。
下表中:
- 静态可传递依赖项、Dependabot图形作业(当前不可用于GitHub Enterprise Server)和自动依赖项提交的列显示了支持的数据提交方法。
- 静态可传递依赖项列还指示在该生态系统中,静态分析是否会为依赖包添加
direct``transitive标签。 - Dependabot 图作业列指示 Dependabot 是否能够使用其自身的作业基础结构生成依赖关系图。 如果受支持,此方法优先于自动依赖项提交。 请参阅“依赖项图如何识别依赖项”。
- 推荐文件列建议使用能够显式定义所有直接和间接依赖项版本的格式。 这些文件将包版本锁定到生成中包含的版本,并使 Dependabot 能够在直接依赖项和间接依赖项中找到易受攻击的版本。
支持的包生态系统
| 程序包管理器 | 语言 | 静态可传递依赖项 | Dependabot 图作业 | 自动依赖项提交 | 建议的文件 | 其他文件 |
|---|---|---|---|---|---|---|
| Cargo | Rust | Cargo.lock | Cargo.toml | |||
| Composer | PHP | composer.lock | composer.json | |||
| NuGet | .NET语言(C#、F#、VB)、C++ | |||||
.csproj、.vbproj、.nuspec、.vcxproj、.fsproj | packages.config | |||||
| GitHub Actions 流程 | YAML | |||||
.yml、.yaml | ||||||
| Go 模块 | Go | go.mod | ||||
| Gradle | Java | |||||
| Maven | Java,Scala | pom.xml | ||||
| npm | JavaScript | package-lock.json | package.json | |||
| pip | Python | |||||
requirements.txt、pipfile.lock | ||||||
pipfile、setup.py | ||||||
| pnpm | JavaScript | pnpm-lock.yaml | package.json | |||
| 酒馆 | Dart | pubspec.lock | pubspec.yaml | |||
| 诗歌 | Python | poetry.lock | pyproject.toml | |||
| RubyGems | Ruby | Gemfile.lock | ||||
Gemfile、*.gemspec | ||||||
| Swift包管理器 (Swift 程序包管理器) | Swift | Package.resolved | ||||
| Yarn | JavaScript | yarn.lock | package.json |
注意
- 如果在
setup.py文件中列出Python依赖项,则可能无法分析和列出项目中的每个依赖项。
GitHub Actions 工作流必须位于 .github/workflows/ 存储库的目录中才能识别为清单。 使用 jobs[*].steps[*].uses 或 jobs.<job_id>.uses 语法引用的任何操作或工作流都将被分析为依赖项。 有关详细信息,请参阅“GitHub Actions 的工作流语法”。
* 对于 GitHub Actions,系统仅针对使用语义版本控制(而不是 SHA 版本控制)的操作生成警报。 有关详细信息,请参阅 Dependabot 警报 和 Dependabot 版本更新。