diff --git a/lib/util/template/index.ts b/lib/util/template/index.ts index b70864e22fef20..f5d99f4c9cf7f4 100644 --- a/lib/util/template/index.ts +++ b/lib/util/template/index.ts @@ -88,6 +88,8 @@ export const allowedFields = { depNameSanitized: 'The depName field sanitized for use in branches after removing spaces and special characters', depType: 'The dependency type (if extracted - manager-dependent)', + depTypes: + 'A deduplicated array of dependency types (if extracted - manager-dependent) in a branch', displayFrom: 'The current value, formatted for display', displayPending: 'Latest pending update, if internalChecksFilter is in use', displayTo: 'The to value, formatted for display', diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index db94dcbf3c7531..184cb508139164 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -1443,5 +1443,30 @@ describe('workers/repository/updates/generate', () => { const res = generateBranchConfig(upgrades); expect(res.additionalReviewers).toEqual(['foo', 'bar']); }); + + it('merges depTypes', () => { + const upgrades = [ + { + ...requiredDefaultOptions, + branchName: 'some-branch', + manager: 'some-manager', + depType: 'devDependencies', + }, + { + ...requiredDefaultOptions, + branchName: 'some-branch', + manager: 'some-manager', + depType: 'dependencies', + }, + { + ...requiredDefaultOptions, + branchName: 'some-branch', + manager: 'some-manager', + depType: 'devDependencies', + }, + ] satisfies BranchUpgradeConfig[]; + const res = generateBranchConfig(upgrades); + expect(res.depTypes).toEqual(['dependencies', 'devDependencies']); + }); }); }); diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts index d8ba25c27a5305..3712d2adad8c08 100644 --- a/lib/workers/repository/updates/generate.ts +++ b/lib/workers/repository/updates/generate.ts @@ -83,6 +83,7 @@ export function generateBranchConfig( const newValue: string[] = []; const toVersions: string[] = []; const toValues = new Set(); + const depTypes = new Set(); for (const upg of branchUpgrades) { upg.recreateClosed = upg.recreateWhen === 'always'; @@ -119,6 +120,9 @@ export function generateBranchConfig( toVersions.push(upg.newVersion!); } toValues.add(upg.newValue!); + if (upg.depType) { + depTypes.add(upg.depType); + } // prettify newVersion and newMajor for printing if (upg.newVersion) { upg.prettyNewVersion = prettifyVersion(upg.newVersion); @@ -425,5 +429,8 @@ export function generateBranchConfig( if (additionalReviewers.length > 0) { config.additionalReviewers = additionalReviewers; } + if (depTypes.size) { + config.depTypes = Array.from(depTypes).sort(); + } return config; }