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