You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Renovate正式与预发布版本配置差异化packageRules

问题结论

完全可以通过packageRules实现你需要的差异化automerge逻辑,你现有配置不生效的核心原因是prerelease不属于matchUpdateTypes的合法取值,该字段仅支持major/minor/patch/pin/digest/lockFileMaintenance/rollback/replacement等值,你写的第二条规则不会被正常命中。

实现逻辑

你需要的自动合并/不合并规则,本质可以简化为一个判断逻辑:

  • 只要更新的新版本为正式稳定版,且属于patch类型更新,就开启automerge
  • 只要更新的新版本为预发布版本,无论当前版本是正式版还是预发布版,一律关闭automerge

这个逻辑可以100%覆盖你列出的所有场景:

  • 需自动合并的v1.0.0→v1.0.1(正式补丁)、v1.0.2-alpha.1→v1.0.2(预发布升同线正式补丁),两个场景的新版本均为无后缀正式版,且更新类型为patch
  • 无需自动合并的v1.0.0→v1.0.1-alpha.1(正式升预发布补丁)、v1.0.1-alpha.1→v1.0.1-alpha.2(预发布升更高版预发布),两个场景的新版本均带预发布后缀
可用配置

注意Renovate的packageRules按从上到下顺序匹配,后加载的规则会覆盖之前规则的同项配置,你可以把原有配置替换为如下内容:

{
  "packageRules": [
    {
      "matchDatasources": ["git-tags"],
      "matchManagers": ["ansible-galaxy"],
      "matchUpdateTypes": ["patch"],
      "enabled": true,
      "automerge": true,
      "platformAutomerge": true
    },
    {
      "matchDatasources": ["git-tags"],
      "matchManagers": ["ansible-galaxy"],
      "matchNewVersion": "/\\d+\\.\\d+\\.\\d+-/",
      "automerge": false,
      "platformAutomerge": false
    }
  ]
}

配置说明:

  • 第一条规则先给所有git-tags源、ansible-galaxy管理器的patch类型更新默认开启自动合并
  • 第二条规则通过正则匹配所有新版本号符合SemVer预发布特征(三段核心版本号后带-后缀,对应alpha/beta/rc等所有预发布标识)的更新,强制关闭自动合并,优先级高于第一条规则
  • 正则/\d+\.\d+\.\d+-/可以覆盖所有标准格式的预发布版本,如果你用的版本带v前缀也不影响匹配,因为只校验版本号核心段后的横杠标识
场景校验

对应你列出的四个场景,配置命中逻辑如下:

  • v1.0.0→v1.0.1:新版本无预发布后缀,不命中第二条规则,按第一条规则开启自动合并
  • v1.0.2-alpha.1→v1.0.2:新版本无预发布后缀,不命中第二条规则,按第一条规则开启自动合并
  • v1.0.0→v1.0.1-alpha.1:新版本带预发布后缀,命中第二条规则,关闭自动合并
  • v1.0.1-alpha.1→v1.0.1-alpha.2:新版本带预发布后缀,命中第二条规则,关闭自动合并

内容的提问来源于stack exchange,提问作者Jehof

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:39:14