From 5dfc850b3bf6b978657395f99d83cd3a16c58bb4 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Wed, 19 Oct 2022 10:17:16 +0200 Subject: [PATCH] fix: immortal digest groups (#18402) --- .../repository/updates/generate.spec.ts | 30 +++++++++++++ lib/workers/repository/updates/generate.ts | 44 +++++++++---------- 2 files changed, 52 insertions(+), 22 deletions(-) diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index 782ec1dc7c..f5b5873df1 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -238,6 +238,36 @@ describe('workers/repository/updates/generate', () => { expect(res.recreateClosed).toBeFalsy(); }); + it('groups multiple digest updates immortally', () => { + const branch: BranchUpgradeConfig[] = [ + { + manager: 'some-manager', + depName: 'some-dep', + groupName: 'some-group', + branchName: 'some-branch', + prTitle: 'some-title', + commitMessageExtra: 'to {{{newDigestShort}}}', + newValue: '5.1.2', + newDigest: 'sha256:abcdef123', + isDigest: true, + }, + { + manager: 'some-manager', + depName: 'some-other-dep', + groupName: 'some-group', + branchName: 'some-branch', + prTitle: 'some-title', + commitMessageExtra: 'to {{{newDigestShort}}}', + newValue: '5.2.0', + newDigest: 'sha256:abcdef987654321', + isDigest: true, + }, + ]; + const res = generateBranchConfig(branch); + expect(res.groupName).toBeDefined(); + expect(res.recreateClosed).toBeTrue(); + }); + it('groups multiple upgrades different version', () => { const branch: BranchUpgradeConfig[] = [ { diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts index 02278169c7..b569f3f507 100644 --- a/lib/workers/repository/updates/generate.ts +++ b/lib/workers/repository/updates/generate.ts @@ -83,6 +83,28 @@ export function generateBranchConfig( const toVersions: string[] = []; const toValues = new Set<string>(); for (const upg of branchUpgrades) { + if (upg.currentDigest) { + upg.currentDigestShort = + upg.currentDigestShort ?? + upg.currentDigest.replace('sha256:', '').substring(0, 7); + } + if (upg.newDigest) { + upg.newDigestShort = + upg.newDigestShort || + upg.newDigest.replace('sha256:', '').substring(0, 7); + } + if (upg.isDigest || upg.isPinDigest) { + upg.displayFrom = upg.currentDigestShort; + upg.displayTo = upg.newDigestShort; + } else if (upg.isLockfileUpdate) { + upg.displayFrom = upg.currentVersion; + upg.displayTo = upg.newVersion; + } else if (!upg.isLockFileMaintenance) { + upg.displayFrom = upg.currentValue; + upg.displayTo = upg.newValue; + } + upg.displayFrom ??= ''; + upg.displayTo ??= ''; if (!depNames.includes(upg.depName!)) { depNames.push(upg.depName!); } @@ -123,28 +145,6 @@ export function generateBranchConfig( upgrade.commitMessageExtra = `to v${toVersions[0]}`; } - if (upgrade.currentDigest) { - upgrade.currentDigestShort = - upgrade.currentDigestShort ?? - upgrade.currentDigest.replace('sha256:', '').substring(0, 7); - } - if (upgrade.newDigest) { - upgrade.newDigestShort = - upgrade.newDigestShort || - upgrade.newDigest.replace('sha256:', '').substring(0, 7); - } - if (upgrade.isDigest || upgrade.isPinDigest) { - upgrade.displayFrom = upgrade.currentDigestShort; - upgrade.displayTo = upgrade.newDigestShort; - } else if (upgrade.isLockfileUpdate) { - upgrade.displayFrom = upgrade.currentVersion; - upgrade.displayTo = upgrade.newVersion; - } else if (!upgrade.isLockFileMaintenance) { - upgrade.displayFrom = upgrade.currentValue; - upgrade.displayTo = upgrade.newValue; - } - upgrade.displayFrom ??= ''; - upgrade.displayTo ??= ''; const pendingVersionsLength = upgrade.pendingVersions?.length; if (pendingVersionsLength) { upgrade.displayPending = `\`${upgrade -- GitLab