From 1cd4f9638a8f8bc9dfc4e68d8616e074294c26e7 Mon Sep 17 00:00:00 2001 From: itchyny <itchyny@cybozu.co.jp> Date: Tue, 7 Feb 2023 22:27:44 +0900 Subject: [PATCH] feat(manager/gradle): add support for property setters of gradle plugins (#20264) Co-authored-by: Michael Kriese <michael.kriese@visualon.de> --- lib/modules/manager/gradle/parser.spec.ts | 4 ++++ .../manager/gradle/parser/dependencies.ts | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index 0c7cb2e075..5b1a99bcf7 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -898,7 +898,11 @@ describe('modules/manager/gradle/parser', () => { ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = baz }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'], currentValue: '1.2.3', groupName: 'baz' }} ${'baz = "1.2.3"'} | ${'jacoco { toolVersion = property("baz") }'} | ${{ depName: 'jacoco', packageName: GRADLE_PLUGINS['jacoco'], currentValue: '1.2.3' }} ${''} | ${'lombok { version = "1.2.3" }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'], currentValue: '1.2.3' }} + ${''} | ${'lombok { version.set("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'], currentValue: '1.2.3' }} + ${''} | ${'lombok { version.value("1.2.3") }'} | ${{ depName: 'lombok', packageName: GRADLE_PLUGINS['lombok'], currentValue: '1.2.3' }} ${''} | ${'pmd { toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion.set("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'], currentValue: '1.2.3' }} + ${''} | ${'pmd { toolVersion.value("1.2.3") }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'], currentValue: '1.2.3' }} ${''} | ${'pmd { foo = "bar"; toolVersion = "1.2.3" }'} | ${{ depName: 'pmd', packageName: GRADLE_PLUGINS['pmd'], currentValue: '1.2.3' }} ${''} | ${'spotbugs { toolVersion = "1.2.3" }'} | ${{ depName: 'spotbugs', packageName: GRADLE_PLUGINS['spotbugs'], currentValue: '1.2.3' }} ${''} | ${'pmd { toolVersion = "@@@" }'} | ${null} diff --git a/lib/modules/manager/gradle/parser/dependencies.ts b/lib/modules/manager/gradle/parser/dependencies.ts index 6f233035bf..098a2367e0 100644 --- a/lib/modules/manager/gradle/parser/dependencies.ts +++ b/lib/modules/manager/gradle/parser/dependencies.ts @@ -170,10 +170,20 @@ const qImplicitGradlePlugin = q maxMatches: 1, startsWith: '{', endsWith: '}', - search: q - .sym<Ctx>(regEx(/^(?:toolVersion|version)$/)) - .op('=') - .join(qVersion), + search: q.sym<Ctx>(regEx(/^(?:toolVersion|version)$/)).alt( + // toolVersion = "1.2.3" + q.op<Ctx>('=').join(qVersion), + // toolVersion.set("1.2.3"), toolVersion.value("1.2.3") + q + .op<Ctx>('.') + .sym(regEx(/^(?:set|value)$/)) + .tree({ + maxDepth: 1, + startsWith: '(', + endsWith: ')', + search: q.begin<Ctx>().join(qVersion).end(), + }) + ), }) .handler(handleImplicitGradlePlugin) .handler(cleanupTempVars); -- GitLab