Renovate:minimumReleaseAge+strict模式在非主版本分组PR中失效
问题原因与解决方案
一、Pending分组PR生成的原因
单个PR与分组PR的逻辑差异
internalChecksFilter: "strict"仅会阻止单个依赖PR的创建——当依赖不满足minimumReleaseAge时直接跳过;但分组PR的默认逻辑不同:只要分组内存在至少一个依赖已满足更新条件,或未来会满足条件(比如还未到15天但时间达标后就符合要求),Renovate就会生成Pending状态的分组PR,用来跟踪该分组的更新进度。strict过滤仅会剔除完全不符合条件的依赖,不会终止分组PR的创建流程。规则叠加的潜在影响
你的配置中,第二条全局规则(匹配所有包)和第三条分组规则都设置了minimumReleaseAge与strict,规则虽为叠加生效,但核心问题仍源于分组PR的默认生成逻辑,而非规则冲突。
二、配置是否支持分组PR
是的,你的配置本身完全支持分组PR,第三条规则中的groupName和groupSlug配置符合Renovate的分组要求,问题出在对internalChecksFilter与minimumReleaseAge在分组场景下的行为理解偏差,而非分组功能不支持。
三、解决方法:避免生成Pending分组PR
如果希望仅当分组内所有依赖都满足minimumReleaseAge条件时才创建分组PR,可在分组规则中添加waitForAllUpdates: true选项,该选项会强制Renovate等待分组内所有符合条件的依赖都满足更新要求后,再创建正式PR,而非提前生成Pending状态的PR。
修改后的分组规则示例:
{ "matchPackagePatterns": ["*"], "excludePackagePatterns": ["^org\\.common\\.libs"], "matchUpdateTypes": [ "minor", "patch" ], "groupName": "all non-major dependencies", "groupSlug": "all-minor-patch", "minimumReleaseAge": "15 days", "internalChecksFilter": "strict", "waitForAllUpdates": true }
内容的提问来源于stack exchange,提问作者Mahesh Pardeshi
相关产品推荐
相关产品推荐

