From c6b1cda57579a6814859c4cc595b1948c2e2e55b Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sun, 13 Feb 2022 09:26:49 +0100 Subject: [PATCH] fix(pr): intelligently merge prBodyColumns (#14198) --- .../updates/__snapshots__/generate.spec.ts.snap | 4 ++++ lib/workers/repository/updates/generate.spec.ts | 14 ++++++++++++++ lib/workers/repository/updates/generate.ts | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap index 8c7322bce7..51ebb4b080 100644 --- a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap +++ b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap @@ -21,6 +21,7 @@ Object { "b", ], "newValue": "0.6.0", + "prBodyColumns": Array [], "prTitle": "some-title", "prettyDepType": "dependency", "releaseTimestamp": undefined, @@ -95,6 +96,7 @@ Object { "isRange": false, "labels": Array [], "newValue": "0.6.0", + "prBodyColumns": Array [], "prTitle": "some-title", "prettyDepType": "dependency", "recreateClosed": false, @@ -165,6 +167,7 @@ Object { "displayTo": "", "isLockFileMaintenance": true, "labels": Array [], + "prBodyColumns": Array [], "prTitle": "some-title", "prettyDepType": "dependency", "releaseTimestamp": undefined, @@ -204,6 +207,7 @@ Object { "lockedVersion": "1.0.0", "newValue": "^1.0.0", "newVersion": "1.0.1", + "prBodyColumns": Array [], "prTitle": "some-title", "prettyDepType": "dependency", "releaseTimestamp": undefined, diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index 6a238e7efb..c621fdf709 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -660,6 +660,20 @@ describe('workers/repository/updates/generate', () => { const res = generateBranchConfig(branch); expect(res.prTitle).toMatchSnapshot('some-title (patch)'); }); + it('combines prBodyColumns', () => { + const branch: BranchUpgradeConfig[] = [ + { + branchName: 'some-branch', + prBodyColumns: ['column-a', 'column-b'], + }, + { + branchName: 'some-branch', + prBodyColumns: ['column-c', 'column-b', 'column-a'], + }, + ]; + const res = generateBranchConfig(branch); + expect(res.prBodyColumns).toEqual(['column-a', 'column-b', 'column-c']); + }); it('sorts upgrades, without position first', () => { const branch: BranchUpgradeConfig[] = [ { diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts index 655e7e067e..d9cae64c97 100644 --- a/lib/workers/repository/updates/generate.ts +++ b/lib/workers/repository/updates/generate.ts @@ -1,3 +1,4 @@ +import is from '@sindresorhus/is'; import { DateTime } from 'luxon'; import mdTable from 'markdown-table'; import semver from 'semver'; @@ -305,6 +306,14 @@ export function generateBranchConfig( config.dependencyDashboardPrApproval = config.upgrades.some( (upgrade) => upgrade.prCreation === 'approval' ); + config.prBodyColumns = [ + ...new Set( + config.upgrades.reduce( + (existing, upgrade) => existing.concat(upgrade.prBodyColumns), + [] + ) + ), + ].filter(is.nonEmptyString); config.automerge = config.upgrades.every((upgrade) => upgrade.automerge); // combine all labels config.labels = [ -- GitLab