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

使用Renovate的group-all合并请求时,如何排除特定依赖的大版本升级?

解决方案:阻止特定依赖大版本升级但保留小版本/补丁更新并合并到单个MR

你需要通过**仓库级的packageRules**来实现需求,替代之前的ignoreDeps或错误的配置写法。核心思路是:针对指定依赖单独禁用其大版本更新,同时确保小版本/补丁更新仍被纳入全局统一分组,从而合并到同一个GitLab MR中。

正确的仓库级renovate.json配置

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "packageRules": [
    // 规则1:禁止指定依赖的大版本升级
    {
      "matchPackageNames": ["@angular/router"],
      "matchUpdateTypes": ["major"],
      "enabled": false
    },
    // 规则2:确保指定依赖的小版本/补丁更新加入全局统一分组
    {
      "matchPackageNames": ["@angular/router"],
      "matchUpdateTypes": ["minor", "patch"],
      "groupName": "all dependencies",
      "groupSlug": "all"
    }
  ]
}

配置说明

  • 规则1:精准匹配@angular/router的大版本(major)更新,直接禁用这类升级检测,完全避免15.x版本的升级建议。
  • 规则2:匹配同一依赖的小版本(minor)和补丁(patch)更新,强制将这些更新纳入你全局配置的"all dependencies"分组,保证所有符合条件的升级都合并到同一个MR里。
  • 全局的packageRules会继续对其他所有依赖生效,不受仓库级规则影响。

效果验证

针对你给出的示例场景:

  • 当前版本14.2.7 → Renovate会检测并建议升级到14.2.10(小版本/补丁),并将该更新加入统一的"all dependencies" MR。
  • 大版本15.0.0会被规则1拦截,不会出现在升级建议中。

为什么之前的配置无效

  • 使用ignoreDeps会完全排除该依赖的所有更新,不符合保留小版本/补丁的需求。
  • 你尝试的"major": {"ignoreDeps": [...]}不是Renovate的合法配置格式,Renovate仅通过packageRules定义这类条件规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:45:27