我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

关于 Dependabot 版本更新

您可以使用 Dependabot 来确保您使用的包更新到最新版本。

本文内容

注: Dependabot 版本更新 目前处于测试阶段,可能会有变动。 要使用测试版功能,请在配置文件中登记,告诉 Dependabot 为您保留哪些依赖项。 详情请参阅“启用和禁用版本更新。”

关于 Dependabot 版本更新

Dependabot 负责维护您的依赖项。 您可以使用它来确保仓库自动跟上它所依赖的包和应用程序的最新版本。

You enable Dependabot 版本更新 by checking a configuration file into your repository. The configuration file specifies the location of the manifest, or of other package definition files, stored in your repository. Dependabot 使用此信息来检查过时的软件包和应用程序。 Dependabot 确定依赖项是否有新版本,它通过查看依赖的语义版本 (semver) 来决定是否应更新该版本。 对于某些软件包管理器,Dependabot 版本更新 也支持供应。 Vendored (or cached) dependencies are dependencies that are checked in to a specific directory in a repository rather than referenced in a manifest. 即使包服务器不可用,供应的依赖项在生成时也可用。 Dependabot 版本更新 可以配置为检查为新版本供应的依赖项,并在必要时更新它们。

当 Dependabot 发现过时的依赖项时,它会发起拉取请求以将清单更新到依赖项的最新版本。 For vendored dependencies, Dependabot raises a pull request to replace the outdated dependency with the new version directly. 检查测试是否通过,查看拉取请求摘要中包含的更改日志和发行说明,然后合并它。 更多信息请参阅“启用和禁用版本更新”。

如果启用安全更新,Dependabot 还会发起拉取请求以更新易受攻击依赖项。 更多信息请参阅“关于 Dependabot 安全更新”。

Dependabot 和所有相关功能受 GitHub 服务条款管辖。

Dependabot 拉取请求的频率

在配置文件中指定检查每个生态系统的新版本的频率:每日、每周或每月。

首次启用版本更新时,您可能有很多过时的依赖项,其中一些可能为许多落后于最新版本的版本。 Dependabot 将在其启用后立即检查过时的依赖项。 根据您配置更新的清单文件的数量,您可能会在添加配置文件后几分钟内看到新的版本更新拉取请求。

为使拉取请求保持可管理和易于审查,Dependabot 最多将提出五个拉取请求,以便开始将依赖项更新至最新版本。 如果您在下次预定更新之前合并第一批拉取请求中的一些请求,则接下来的拉取请求最多可以打开五个(您可以更改此限制)。

如果您启用了安全更新,有时会看到额外的安全更新拉取请求。 这些由默认分支上依赖项的 Dependabot 警报所触发。 Dependabot 自动提出拉取请求以更新有漏洞的依赖项。

支持的仓库和生态系统

您可以为包含其中一个受支持包管理器的依赖项清单或锁定文件的仓库配置版本更新。 对于某些软件包管理器,您也可以配置依赖项的供应。 更多信息请参阅“依赖项更新的配置选项。”

在运行安全性或版本更新时,有些生态系统必须能够解决来自其来源的所有依赖项,以验证版本更新是否成功。 如果清单或锁定文件包含任何私有依赖项,Dependabot 必须能够访问这些依赖项所在的位置。 组织所有者可以授予 Dependabot 访问包含同一个组织内项目依赖项的私有仓库. 更多信息请参阅“管理组织的安全和分析设置”。

目前,Dependabot 版本更新不支持包含私人注册表中依赖项的清单或锁定文件,或者私有 GitHub 仓库中属于不同于依赖项目的组织。 此外,Dependabot 不支持所有包管理器的 GitHub 私有依赖项。 详见下表。

下表对每个包管理器显示:

  • 要用于 dependabot.yml 文件中的 YAML 值
  • 支持的包管理器版本
  • 是否支持私有 GitHub 仓库中的依赖项
  • 是否支持供应的依赖项
包管理器YAML 值支持的版本私有仓库供应
Bundlerbundlerv1
Cargocargov1
Composercomposerv1, v2
Dockerdockerv1
Elixir混合v1
Elmelmv0.18, v0.19
git submodulegitsubmoduleN/A(无版本)
GitHub Actionsgithub-actionsN/A(无版本)
Go 模块gomodv1
Gradlegradle参阅 (A) 下文
Mavenmaven参阅 (B) 下文
npmnpmv6, v7
NuGetnuget<= 4.8.
参阅 (C) 下文
pippipv20
pipenvpip<= 2018.11.26
pip-compilepip5.5.0
poetrypipv1
Terraformterraform<= 0.11
yarnnpmv1

(A) Dependabot 不运行 Gradle,但支持更新以下文件:build.gradlebuild.gradle.kts(用于 Kotlin 项目)。

(B) Dependabot 不运行 Maven ,但支持更新 pom.xml 文件。

(C) Dependabot 不运行 NuGet CLI,但支持直到版本 4.8 的大多数功能。

对于包管理器,如 pipenvpoetry,您需要使用 pip YAML 值。 例如,如果您使用 poetry 来管理 Python 依赖项,并且希望 Dependabot 监控新版本的依赖项清单文件,请在 dependabot.yml 文件中使用 package-ecosystem: "pip"

如果您的仓库已使用集成进行依赖项管理,则在启用 Dependabot 前需要禁用此集成。 更多信息请参阅“关于集成”。

关于 Dependabot 版本更新通知

您可以在 GitHub 上过滤通知以显示 Dependabot 版本更新。 更多信息请参阅“从收件箱管理通知”。

此文档对您有帮助吗?

Privacy policy

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。