From b4189c809328ea0877595f9f1621b392762258eb Mon Sep 17 00:00:00 2001
From: Johannes Feichtner <343448+Churro@users.noreply.github.com>
Date: Fri, 19 Apr 2024 06:20:46 +0200
Subject: [PATCH] feat(manager/gradle): add support for dep matching in lists
 that are nested in Groovy maps (#28517)

---
 lib/modules/manager/gradle/parser.spec.ts        | 15 +++++++++++++++
 lib/modules/manager/gradle/parser/assignments.ts |  7 ++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts
index e120db42db..101848c6c8 100644
--- a/lib/modules/manager/gradle/parser.spec.ts
+++ b/lib/modules/manager/gradle/parser.spec.ts
@@ -157,10 +157,15 @@ describe('modules/manager/gradle/parser', () => {
       it('map with interpolated dependency strings', () => {
         const input = codeBlock`
           def slfj4Version = "2.0.0"
+          def lifecycle_version = "2.5.1"
           libraries = [
             jcl: "org.slf4j:jcl-over-slf4j:\${slfj4Version}",
             releaseCoroutines: "org.jetbrains.kotlinx:kotlinx-coroutines-core:0.26.1-eap13"
             api: "org.slf4j:slf4j-api:$slfj4Version",
+            lifecycle: [
+                "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version",
+                "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
+            ]
           ]
           foo = [ group: "org.slf4j", name: "slf4j-ext", version: slfj4Version ]
         `;
@@ -182,6 +187,16 @@ describe('modules/manager/gradle/parser', () => {
             groupName: 'slfj4Version',
             currentValue: '2.0.0',
           },
+          {
+            depName: 'androidx.lifecycle:lifecycle-runtime-ktx',
+            groupName: 'lifecycle_version',
+            currentValue: '2.5.1',
+          },
+          {
+            depName: 'androidx.lifecycle:lifecycle-viewmodel-ktx',
+            groupName: 'lifecycle_version',
+            currentValue: '2.5.1',
+          },
           {
             depName: 'org.slf4j:slf4j-ext',
             groupName: 'slfj4Version',
diff --git a/lib/modules/manager/gradle/parser/assignments.ts b/lib/modules/manager/gradle/parser/assignments.ts
index 2f6e926030..08114ff856 100644
--- a/lib/modules/manager/gradle/parser/assignments.ts
+++ b/lib/modules/manager/gradle/parser/assignments.ts
@@ -13,7 +13,10 @@ import {
   storeInTokenMap,
   storeVarToken,
 } from './common';
-import { qGroovyMapNotationDependencies } from './dependencies';
+import {
+  qDependencyStrings,
+  qGroovyMapNotationDependencies,
+} from './dependencies';
 import { handleAssignment } from './handlers';
 
 // foo = "1.2.3"
@@ -79,6 +82,8 @@ const qGroovySingleMapOfVarAssignment = q.alt(
     .join(qValueMatcher)
     .handler((ctx) => storeInTokenMap(ctx, 'valToken'))
     .handler(handleAssignment),
+  // ["foo:bar:1.2.3", "foo:baz:$qux"]
+  qDependencyStrings,
 );
 
 const qGroovyMapOfExpr = (
-- 
GitLab