diff --git a/lib/util/package-rules.js b/lib/util/package-rules.js index c373647e1b6dfb50991d1fd4ab4f3f97879203d2..981a2dfc54a6f295f1cf9c09465af1962dc7a47d 100644 --- a/lib/util/package-rules.js +++ b/lib/util/package-rules.js @@ -13,6 +13,7 @@ function applyPackageRules(inputConfig) { versionScheme, packageFile, depType, + depTypes, depName, currentValue, fromVersion, @@ -71,7 +72,9 @@ function applyPackageRules(inputConfig) { negativeMatch = negativeMatch || !isMatch; } if (depTypeList.length) { - const isMatch = depTypeList.includes(depType); + const isMatch = + depTypeList.includes(depType) || + (depTypes && depTypes.some(dt => depTypeList.includes(dt))); positiveMatch = positiveMatch || isMatch; negativeMatch = negativeMatch || !isMatch; } diff --git a/test/util/package-rules.spec.js b/test/util/package-rules.spec.js index 0f195024c9c391ebc48e993cbc72edc2a516ee04..b060d924b50707a20c8e5a80e24e17559e256232 100644 --- a/test/util/package-rules.spec.js +++ b/test/util/package-rules.spec.js @@ -120,6 +120,23 @@ describe('applyPackageRules()', () => { const res = applyPackageRules({ ...config, ...dep }); expect(res.x).toBe(1); }); + it('filters depTypes', () => { + const config = { + packageRules: [ + { + depTypeList: ['test'], + packageNames: ['a'], + x: 1, + }, + ], + }; + const dep = { + depTypes: ['build', 'test'], + depName: 'a', + }; + const res = applyPackageRules({ ...config, ...dep }); + expect(res.x).toBe(1); + }); it('filters managers with matching manager', () => { const config = { packageRules: [