From 8d0c72af063d17c8f3979b98a662503875677f4e Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Tue, 26 Jul 2022 07:25:37 +0200 Subject: [PATCH] fix(config): filter out invalid massaged packageRules (#16778) Closes #16777 --- lib/config/massage.spec.ts | 15 +++++++++++++++ lib/config/massage.ts | 13 ++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/config/massage.spec.ts b/lib/config/massage.spec.ts index 0d5ac6b4fd..117b3e5a76 100644 --- a/lib/config/massage.spec.ts +++ b/lib/config/massage.spec.ts @@ -46,6 +46,21 @@ describe('config/massage', () => { expect(res.packageRules).toHaveLength(3); }); + it('filters packageRules with only match/exclude', () => { + const config: RenovateConfig = { + packageRules: [ + { + matchBaseBranches: ['main'], + major: { + enabled: true, + }, + }, + ], + }; + const res = massage.massageConfig(config); + expect(res.packageRules).toHaveLength(1); + }); + it('does not massage lockFileMaintenance', () => { const config: RenovateConfig = { packageRules: [ diff --git a/lib/config/massage.ts b/lib/config/massage.ts index ef3fff325a..094237c11b 100644 --- a/lib/config/massage.ts +++ b/lib/config/massage.ts @@ -40,7 +40,7 @@ export function massageConfig(config: RenovateConfig): RenovateConfig { } } if (is.nonEmptyArray(massagedConfig.packageRules)) { - const newRules: PackageRule[] = []; + let newRules: PackageRule[] = []; const updateTypes: UpdateType[] = [ 'major', 'minor', @@ -74,6 +74,17 @@ export function massageConfig(config: RenovateConfig): RenovateConfig { delete rule[updateType]; }); } + newRules = newRules.filter((rule) => { + if ( + Object.keys(rule).every( + (key) => key.startsWith('match') || key.startsWith('exclude') + ) + ) { + // Exclude rules which contain only match or exclude options + return false; + } + return true; + }); massagedConfig.packageRules = newRules; } return massagedConfig; -- GitLab