在 Renovate 中使用“group-all”合并请求时,如何排除特定依赖项的主要升级?

Adr*_*enW 5 gitlab renovate

我想阻止Renovate对某些依赖项进行重大升级,但仍允许对这些依赖项进行次要升级和补丁升级。使用ignoreDeps完全排除它们,这不是最佳的。我还需要在一个 Gitlab 合并请求中获得每次运行的所有建议升级,因此使用单独的matchUpdateTypes组不适合我的用例。

有没有办法实现我正在寻找的东西?

使用 Angular 14 的项目中的具体示例,Renovate 不应尝试升级到 15,但仍为我提供最新的 14.x 升级:

"@angular/router": "14.2.7",   // what I have now
"@angular/router": "14.2.10",  // what should be suggested
"@angular/router": "15.0.0",   // what should be avoided
Run Code Online (Sandbox Code Playgroud)

我在所有存储库中的一般包规则如下所示:

"packageRules": [
  {
    "groupName": "all dependencies",
    "groupSlug": "all",
    "matchPackagePatterns": [
      "*"
    ],
    "matchUpdateTypes": [
      "major",
      "minor",
      "patch"
    ]
  }
],
Run Code Online (Sandbox Code Playgroud)

我在renovate.json每个存储库的文件中指定要忽略的特定依赖项,如下所示:

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json"
  "ignoreDeps": [
    "@angular/router"
  ]
}
Run Code Online (Sandbox Code Playgroud)

但这会阻止所有更新。我尝试过使用该架构,但这完全忽略了配置:

// BROKEN
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json"
  "major": {
    "ignoreDeps": [
      "@angular/router"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

并且覆盖packageRules回购级别也没有成功。

Mat*_*fel 4

你可以尝试这样的事情:

"packageRules": [
...
  {
    "matchPackageNames": ["@angular/router"],
    "allowedVersions": "<15.0.0"
  },
...
]
Run Code Online (Sandbox Code Playgroud)