Skip to main content

管理依赖项更新的所有拉取请求

您可以按和其他拉取请求大致相同的方式管理 Dependabot 提出的拉取请求,但也有一些额外的选项。

关于 Dependabot 拉取请求

Dependabot 提出拉取请求,以更新依赖项。 Dependabot 可能会针对版本更新和/或安全更新提出拉取请求,具体取决于存储库的配置方式。 您可以按与任何其他拉取请求相同的方式管理这些拉取请求,但也有一些额外的可用命令。 有关启用 Dependabot 的信息,请参阅“配置 Dependabot 安全更新”和“配置 Dependabot 版本更新”。

当 Dependabot 提出拉取请求时,将以您为仓库选择的方式通知您。 每个拉取请求都包含关于来自包管理器的拟议变更的详细信息。 这些拉取请求将遵循仓库中定义的正常检查和测试。 此外,如果有足够的信息,您将看到兼容性分数。 这也有助于您决定是否合并变更。 有关此分数的信息,请参阅“关于 Dependabot 安全更新”。

如果您有多个依赖项要管理,可能会希望为每个包管理器自定义配置,以便拉取请求拥有特定的审查者、受理人和标签。 你可能还需要将依赖项集组合在一起,以便在单个拉取请求中更新多个依赖项。有关详细信息,请参阅“自定义依赖项更新”和“配置 Dependabot 安全更新。”

注意:如果你在 90 天内未与存储库的 Dependabot 拉取请求进行交互,Dependabot 会将存储库视为非活动状态,并会自动暂停 Dependabot updates。 有关非活动条件的详细信息,请参阅“关于 Dependabot 版本更新”和“关于 Dependabot 安全更新”。

查看 Dependabot 拉取请求

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

  2. 在存储库名称下,单击 “拉取请求”。

    存储库的主页的屏幕截图。 在水平导航栏中,标记为“拉取请求”的选项卡以深橙色标出。

  3. 安全或版本更新的任何拉取请求都很容易识别。

    • 作者为 dependabot,即 Dependabot 使用的机器人帐号。
    • 默认情况下,它们具有 dependencies 标签。

更改 Dependabot 拉取请求的变基策略

默认情况下,Dependabot 会自动为拉取请求变基,以解决各种冲突。 如果拉取请求 30 天未合并,Dependabot 将停止对拉取请求进行变基。 你仍然可以手动对拉取请求进行变基与合并。如果希望手动处理合并冲突,可以使用 rebase-strategy 选项禁用此功能。 有关详细信息,请参阅“dependabot.yml 文件的配置选项”。

允许 Dependabot 变基并强制推送额外的提交

默认情况下,一旦向其推送了额外的提交,Dependabot 将停止变基拉取请求。 若要允许 Dependabot 强制推送添加到其分支的提交,将以下任一字符串:[dependabot skip][skip dependabot][dependabot-skip][skip-dependabot] 以小写或大写形式包含到提交消息。

管理带注释命令的 Dependabot 拉取请求

Dependabot 会响应注释中的简单命令。 每个拉取请求都在“Dependabot 命令和选项”部分下包含您可以用来处理拉取请求的命令(例如:合并、压缩、重新打开、关闭或变基拉取请求)的详细信息。 其目的是让您尽可能轻松地将这些自动生成的拉取请求分类。

您可以在 Dependabot 拉取请求中使用以下任何命令。

  • @dependabot cancel merge 取消以前请求的合并。
  • @dependabot close 将关闭拉取请求,并阻止 Dependabot 重新创建该拉取请求。 您可以通过手动关闭拉取请求来实现相同的结果。
  • @dependabot ignore this dependency 将关闭拉取请求并阻止 Dependabot 为这个依赖项创建更多拉取请求(除非你重新打开拉取请求或自行升级到推荐的该依赖项版本)。
  • @dependabot ignore this major version 将关闭拉取请求并阻止 Dependabot 为这个主版本创建更多拉取请求(除非你重新打开拉取请求或自行升级到此主版本)。
  • @dependabot ignore this minor version 将关闭拉取请求并阻止 Dependabot 为这个次要版本创建更多拉取请求(除非你重新打开拉取请求或自行升级到此次要版本)。
  • @dependabot merge 在 CI 测试通过后合并拉取请求。
  • @dependabot rebase 变基拉取请求。
  • @dependabot recreate 重新创建拉取请求,覆盖对拉取请求所作的任何编辑。
  • 如果拉取请求已关闭,@dependabot reopen 将重新打开拉取请求。
  • @dependabot show DEPENDENCY_NAME ignore conditions 检索有关指定依赖项忽略条件的信息,并通过显示依赖项所有忽略条件的表对拉取请求进行注释。 例如,@dependabot show express ignore conditions 将查找为 Express 依赖项存储的所有 ignore 条件,并使用该信息注释拉取请求。
  • @dependabot squash and merge 在 CI 测试通过后将压缩并合并拉取请求。

Dependabot 将用“竖起大拇指”表情符号来确认命令,并可能对拉取请求发表评论。 Dependabot 通常快速响应,但如果 Dependabot 正在忙于处理其他更新或命令,一些命令可能需要几分钟才能完成。

如果您通过运行任何命令来忽略依赖项或版本,Dependabot 将集中存储仓库的首选项。 虽然这是一种快速解决方案,但对于拥有多个参与者的仓库而言,最好是显式定义要在配置文件中忽略的依赖项和版本。 这样可以让所有参与者都能轻松了解某个特定依赖项为什么无法自动更新。

有关详细信息,请参阅“dependabot.yml 文件的配置选项”。

使用注释命令管理已分组更新的 Dependabot 拉取请求

在已分组版本更新和安全更新的 Dependabot 拉取请求中,可以使用注释命令来忽略和取消忽略对特定依赖项和版本的更新。 可以使用以下任一命令来管理已分组更新的忽略条件。

  • @dependabot ignore DEPENDENCY_NAME 将关闭拉取请求,并阻止 Dependabot 更新此依赖项。
  • @dependabot ignore DEPENDENCY_NAME major version 将关闭拉取请求,并阻止 Dependabot 更新此依赖项的主版本。
  • @dependabot ignore DEPENDENCY_NAME minor version 将关闭拉取请求,并阻止 Dependabot 更新此依赖项的次要版本。
  • @dependabot unignore * 将关闭当前拉取请求,清除为组中所有依赖项存储的所有 ignore 条件,然后打开一个新的拉取请求。
  • @dependabot unignore DEPENDENCY_NAME 将关闭当前拉取请求,清除为依赖项存储的所有 ignore 条件,然后打开一个新的拉取请求,其中包含指定依赖项的可用更新。 例如,@dependabot unignore lodash 将打开一个新的拉取请求,其中包含 Lodash 依赖项的更新。
  • @dependabot unignore DEPENDENCY_NAME IGNORE_CONDITION 将关闭当前拉取请求,清除存储的 ignore 条件,然后打开一个新的拉取请求,其中包含指定忽略条件的可用更新。 例如,@dependabot unignore express [< 1.9, > 1.8.0] 将打开一个新的拉取请求,其中包含版本 1.8.0 和 1.9.0 之间的 Express 更新。

**** 提示:如果要取消忽略特定忽略条件,请使用 @dependabot show DEPENDENCY_NAME ignore conditions 命令快速检查依赖项当前具有的忽略条件。