Renovate无法按规则将关联依赖合并到同一合并请求该如何解决?
Renovate 按前缀分组合并依赖更新正确配置
核心配置思路
- 所有前端依赖分组均限定
matchDatasources: ["npm"],避免匹配到项目内的Gradle/Java等非前端依赖 - 使用
matchPackagePatterns做精准正则匹配,配合excludePackagePatterns排除例外包,匹配精度远高于前缀匹配 - 每个分组单独设置
groupName和groupSlug,确保不同分组的更新不会被合并到同一个MR - 其余同前缀关联依赖可直接复用相同规则模板新增即可
完整renovate.json配置
{ "packageRules": [ { "matchDatasources": ["npm"], "matchPackagePatterns": ["^@angular/"], "excludePackagePatterns": ["^@angular/cli$"], "groupName": "Angular 核心依赖更新", "groupSlug": "angular-core-deps-updates" }, { "matchDatasources": ["npm"], "matchPackagePatterns": ["^@ngrx/"], "groupName": "NgRx 依赖更新", "groupSlug": "ngrx-deps-updates" }, { "matchDatasources": ["npm"], "matchPackagePatterns": ["^ag-grid-"], "groupName": "ag-grid 依赖更新", "groupSlug": "ag-grid-deps-updates" }, { "matchDatasources": ["npm"], "matchPackagePatterns": ["^@angular-eslint/"], "groupName": "Angular ESLint 依赖更新", "groupSlug": "angular-eslint-deps-updates" } ] }
如需单独处理
@angular/cli的更新,新增一条单独匹配^@angular/cli$的规则即可。
过往配置失败原因说明
- 第一次使用
matchPackagePatterns未限定数据源,且未设置明确的分组标识,高优先级的默认规则会拆分符合匹配条件的依赖,最终只生成单个依赖的MR - 第二次使用
matchPackagePrefixes未限定数据源,前缀匹配逻辑会把所有前缀相似的包(包括@angular-devkit、符合前缀规则的Java依赖)都归入同一分组,导致混入大量不相关内容
内容的提问来源于stack exchange,提问作者Iker Aguayo
相关产品推荐
相关产品推荐

