From e35c067aad35fabb4c379419732ec9c441461411 Mon Sep 17 00:00:00 2001
From: Maksim <m.v.sharipov@gmail.com>
Date: Tue, 13 Sep 2022 17:28:13 +0200
Subject: [PATCH] fix: generate pretty package version name properly (#17310)

Co-authored-by: Rhys Arkins <rhys@arkins.net>
---
 .../repository/updates/generate.spec.ts       | 23 +++++++++++++++++++
 lib/workers/repository/updates/generate.ts    | 12 +++++++---
 2 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts
index a2eabaeecd..782ec1dc7c 100644
--- a/lib/workers/repository/updates/generate.spec.ts
+++ b/lib/workers/repository/updates/generate.spec.ts
@@ -1078,6 +1078,29 @@ describe('workers/repository/updates/generate', () => {
       );
     });
 
+    it('generates pretty version name properly', () => {
+      const branch: BranchUpgradeConfig[] = [
+        {
+          ...defaultConfig,
+          depName: 'some-dep',
+          isSingleVersion: true,
+          manager: 'some-manager',
+          newValue: 'foo-pkg-v3.2.1',
+          newVersion: 'foo-pkg-v3.2.1',
+          semanticCommits: 'enabled',
+          semanticCommitScope: 'package',
+          semanticCommitType: 'chore',
+        } as BranchUpgradeConfig,
+      ];
+      const res = generateBranchConfig(branch);
+      expect(res.prTitle).toBe(
+        'chore(package): update dependency some-dep to foo-pkg-v3.2.1'
+      );
+      expect(res.commitMessage).toBe(
+        'chore(package): update dependency some-dep to foo-pkg-v3.2.1'
+      );
+    });
+
     it('prevents issue with duplicating "v" character', () => {
       const branch: BranchUpgradeConfig[] = [
         {
diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts
index 20ebc0de9d..02278169c7 100644
--- a/lib/workers/repository/updates/generate.ts
+++ b/lib/workers/repository/updates/generate.ts
@@ -12,6 +12,14 @@ import * as template from '../../../util/template';
 import type { BranchConfig, BranchUpgradeConfig } from '../../types';
 import { CommitMessage } from '../model/commit-message';
 
+function prettifyVersion(version: string): string {
+  if (regEx(/^\d/).test(version)) {
+    return `v${version}`;
+  }
+
+  return version;
+}
+
 function isTypesGroup(branchUpgrades: BranchUpgradeConfig[]): boolean {
   return (
     branchUpgrades.some(({ depName }) => depName?.startsWith('@types/')) &&
@@ -84,9 +92,7 @@ export function generateBranchConfig(
     toValues.add(upg.newValue!);
     // prettify newVersion and newMajor for printing
     if (upg.newVersion) {
-      upg.prettyNewVersion = upg.newVersion.startsWith('v')
-        ? upg.newVersion
-        : `v${upg.newVersion}`;
+      upg.prettyNewVersion = prettifyVersion(upg.newVersion);
     }
     if (upg.newMajor) {
       upg.prettyNewMajor = `v${upg.newMajor}`;
-- 
GitLab