From c7d4c39ac9a07d09b8838b51800d0d2f697b1b3a Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sat, 28 Jan 2023 07:49:39 +0100
Subject: [PATCH] refactor(sbt): extract variableName (#19540)

---
 .../manager/sbt/__snapshots__/extract.spec.ts.snap  |  7 +++++++
 lib/modules/manager/sbt/extract.spec.ts             |  1 +
 lib/modules/manager/sbt/extract.ts                  | 13 +++++++------
 lib/modules/manager/types.ts                        |  1 +
 4 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/lib/modules/manager/sbt/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/sbt/__snapshots__/extract.spec.ts.snap
index da6fe24303..5a1db7e381 100644
--- a/lib/modules/manager/sbt/__snapshots__/extract.spec.ts.snap
+++ b/lib/modules/manager/sbt/__snapshots__/extract.spec.ts.snap
@@ -31,6 +31,7 @@ exports[`modules/manager/sbt/extract extractPackageFile() extract deps from nati
       "registryUrls": [
         "https://repo.maven.apache.org/maven2",
       ],
+      "variableName": "abcVersion",
     },
   ],
   "packageFileVersion": undefined,
@@ -68,6 +69,7 @@ exports[`modules/manager/sbt/extract extractPackageFile() extract deps from nati
       "registryUrls": [
         "https://repo.maven.apache.org/maven2",
       ],
+      "variableName": "abcVersion",
     },
     {
       "currentValue": "1.2.3",
@@ -78,6 +80,7 @@ exports[`modules/manager/sbt/extract extractPackageFile() extract deps from nati
       "registryUrls": [
         "https://repo.maven.apache.org/maven2",
       ],
+      "variableName": "abcVersion",
     },
     {
       "currentValue": "1.2.3",
@@ -88,6 +91,7 @@ exports[`modules/manager/sbt/extract extractPackageFile() extract deps from nati
       "registryUrls": [
         "https://repo.maven.apache.org/maven2",
       ],
+      "variableName": "abcVersion",
     },
     {
       "currentValue": "1.2.3",
@@ -98,6 +102,7 @@ exports[`modules/manager/sbt/extract extractPackageFile() extract deps from nati
       "registryUrls": [
         "https://repo.maven.apache.org/maven2",
       ],
+      "variableName": "abcVersion",
     },
   ],
   "packageFileVersion": undefined,
@@ -267,6 +272,7 @@ exports[`modules/manager/sbt/extract extractPackageFile() extracts deps for gene
         "https://example.com/repos/4/",
         "https://example.com/repos/5/",
       ],
+      "variableName": "versionExample",
     },
     {
       "currentValue": "0.0.9",
@@ -436,6 +442,7 @@ exports[`modules/manager/sbt/extract extractPackageFile() extracts deps when sca
         "https://example.com/repos/4/",
         "https://example.com/repos/5/",
       ],
+      "variableName": "versionExample",
     },
     {
       "currentValue": "0.0.9",
diff --git a/lib/modules/manager/sbt/extract.spec.ts b/lib/modules/manager/sbt/extract.spec.ts
index b768d6d47a..c40d21fb74 100644
--- a/lib/modules/manager/sbt/extract.spec.ts
+++ b/lib/modules/manager/sbt/extract.spec.ts
@@ -136,6 +136,7 @@ describe('modules/manager/sbt/extract', () => {
               'https://repo.maven.apache.org/maven2',
               'https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases',
             ],
+            variableName: 'sbtReleaseVersion',
           },
         ],
         packageFileVersion: '1.0.1',
diff --git a/lib/modules/manager/sbt/extract.ts b/lib/modules/manager/sbt/extract.ts
index 2a501405e8..3f588424b9 100644
--- a/lib/modules/manager/sbt/extract.ts
+++ b/lib/modules/manager/sbt/extract.ts
@@ -31,7 +31,7 @@ interface Ctx {
   currentVarName?: string;
   depType?: string;
   useScalaVersion?: boolean;
-  groupName?: string;
+  variableName?: string;
 }
 
 const scala = lang.createLang('scala');
@@ -138,7 +138,7 @@ const versionMatch = q.alt<Ctx>(
     const currentValue = ctx.vars[varName];
     if (currentValue) {
       ctx.currentValue = currentValue;
-      ctx.groupName = varName;
+      ctx.variableName = varName;
     }
     return ctx;
   }),
@@ -173,7 +173,7 @@ function depHandler(ctx: Ctx): Ctx {
     currentValue,
     useScalaVersion,
     depType,
-    groupName,
+    variableName,
   } = ctx;
 
   delete ctx.groupId;
@@ -181,7 +181,7 @@ function depHandler(ctx: Ctx): Ctx {
   delete ctx.currentValue;
   delete ctx.useScalaVersion;
   delete ctx.depType;
-  delete ctx.groupName;
+  delete ctx.variableName;
 
   const depName = `${groupId!}:${artifactId!}`;
 
@@ -201,8 +201,9 @@ function depHandler(ctx: Ctx): Ctx {
     dep.datasource = SbtPluginDatasource.id;
   }
 
-  if (groupName) {
-    dep.groupName = groupName;
+  if (variableName) {
+    dep.groupName = variableName;
+    dep.variableName = variableName;
   }
 
   ctx.deps.push(dep);
diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts
index 86b110ad78..c3a93d8f9b 100644
--- a/lib/modules/manager/types.ts
+++ b/lib/modules/manager/types.ts
@@ -164,6 +164,7 @@ export interface PackageDependency<T = Record<string, any>> extends Package<T> {
   separateMinorPatch?: boolean;
   extractVersion?: string;
   isInternal?: boolean;
+  variableName?: string;
 }
 
 export interface Upgrade<T = Record<string, any>>
-- 
GitLab