From 2112ea26461491fd7afb60b8b57011a134f3cbdf Mon Sep 17 00:00:00 2001 From: guicamest Date: Sun, 7 May 2023 17:47:06 +0200 Subject: [PATCH] feat(manager/gradle): Support properties map in gradle kts (#21792) --- lib/modules/manager/gradle/parser.spec.ts | 1 + lib/modules/manager/gradle/parser/common.spec.ts | 9 ++++++++- lib/modules/manager/gradle/parser/common.ts | 8 +++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index 2462903b8fe3d5..4cf790ce64404f 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -363,6 +363,7 @@ describe('modules/manager/gradle/parser', () => { ${'baz = "1.2.3"'} | ${'"foo:bar:${ext.baz}"'} | ${{ depName: 'foo:bar', currentValue: '1.2.3', groupName: 'baz' }} ${'baz = "1.2.3"'} | ${'"foo:bar:${project.ext[\'baz\']}"'} | ${{ depName: 'foo:bar', currentValue: '1.2.3', groupName: 'baz' }} ${'a = "foo"; b = "bar"; c="1.2.3"'} | ${'"${a}:${b}:${property("c")}"'} | ${{ depName: 'foo:bar', currentValue: '1.2.3', groupName: 'c' }} + ${'a = "foo"; b = "bar"; c="1.2.3"'} | ${'"${a}:${b}:${properties["c"]}"'} | ${{ depName: 'foo:bar', currentValue: '1.2.3', groupName: 'c' }} `('$def | $str', ({ def, str, output }) => { const { deps } = parseGradle([def, str].join('\n')); expect(deps).toMatchObject([output].filter(is.truthy)); diff --git a/lib/modules/manager/gradle/parser/common.spec.ts b/lib/modules/manager/gradle/parser/common.spec.ts index 8c377a1345911c..77a7df15e851c5 100644 --- a/lib/modules/manager/gradle/parser/common.spec.ts +++ b/lib/modules/manager/gradle/parser/common.spec.ts @@ -94,7 +94,14 @@ describe('modules/manager/gradle/parser/common', () => { }); it('stripReservedPrefixFromKeyTokens', () => { - const tokenValues = ['rootProject', 'project', 'ext', 'extra', 'foo']; + const tokenValues = [ + 'rootProject', + 'project', + 'ext', + 'extra', + 'properties', + 'foo', + ]; ctx.varTokens.push( ...tokenValues.map((value) => partial({ value })) diff --git a/lib/modules/manager/gradle/parser/common.ts b/lib/modules/manager/gradle/parser/common.ts index e72d582ea0ac8f..6379bb5644893c 100644 --- a/lib/modules/manager/gradle/parser/common.ts +++ b/lib/modules/manager/gradle/parser/common.ts @@ -82,7 +82,13 @@ export function cleanupTempVars(ctx: Ctx): Ctx { } export function stripReservedPrefixFromKeyTokens(ctx: Ctx): Ctx { - const unwantedPrefixes = ['ext', 'extra', 'project', 'rootProject']; + const unwantedPrefixes = [ + 'ext', + 'extra', + 'project', + 'rootProject', + 'properties', + ]; while ( ctx.varTokens.length > 1 && // ensures there will be always at least one token ctx.varTokens[0] &&