如何暂停 renovatebot 处理单个 PR 并避免触发持续集成

90次阅读
没有评论

问题描述

在配置了 renovatebot 用于其多个仓库后,遇到一个问题。他们的配置能够在通过依赖仪表板获得批准后生成 PR,并自动合并补丁版本发布。然而,有一个更新会导致持续集成失败,看起来是库本身存在错误。用户在继续处理主分支的同时,renovatebot 会将更新分支重新基于主分支,从而再次触发持续集成。

用户想知道是否可以在修复了这个依赖项之前,暂停 renovatebot 处理单个 PR,以避免不断触发持续集成。

解决方案

以下操作可能涉及到版本差异或配置修改,请在执行前备份相关配置。

使用 stopUpdatingLabel 配置选项

renovatebot 提供了一个配置选项 stopUpdatingLabel,可以使用这个特性在 PR 上添加一个标签,以阻止 renovatebot 对其进行更新。操作步骤如下:

  1. 在你的仓库中,找到 renovatebot 的配置文件,通常是 .renovaterc.json 或类似的文件。
  2. 在配置文件中添加以下内容来定义停止更新的标签:

json
{
"stopUpdatingLabel": "take-a-break-renovate"
}

  1. 默认情况下,该特性已启用,并监听标签 stop-updating

使用 packageRules 配置选项

另一种方法是通过使用 packageRules 配置选项来暂时固定问题库的版本,防止其更新到出现错误的版本。操作步骤如下:

  1. 在你的 renovatebot 配置文件中,找到或添加 packageRules 配置,用于设置允许的版本范围。比如,假设问题库是 @angular/router,可以像下面这样设置:

json
"packageRules": [
{
"matchPackageNames": ["@angular/router"],
"allowedVersions": "<15.0.0"
}
]

这将限制 @angular/router 的版本在小于 15.0.0 的范围内,避免了问题版本的更新。

注意:这种方法需要手动修改配置文件。

其他方法

如果你想更加无状态地控制这个问题,而不是编辑任何配置,有两种主要方法:

  1. 添加评论、修改标题或添加特定标签:你可以在 PR 上添加评论、修改标题或添加特定标签,以通知 renovatebot 暂时不要对该 PR 进行更新。这样 renovatebot 将根据你的指示来处理。

  2. 使用 ignoreDeps 选项:如果你想在配置方面进行修改,可以使用 ignoreDeps 选项来忽略特定依赖项。具体操作可以参考 renovatebot 的官方文档。

无论你选择哪种方法,都可以根据你的实际需求来暂时阻止 renovatebot 处理单个 PR,从而避免不断触发持续集成。记得在操作前备份相关配置,以免出现意外情况。有关更多详细信息,你可以参考 renovatebot 的官方文档:https://docs.renovatebot.com/configuration-options/#stopupdatinglabel

正文完