From e0cbabe452f2389738d65cc586858a5a9f1ec30f Mon Sep 17 00:00:00 2001 From: Sergei Zharinov <zharinov@users.noreply.github.com> Date: Thu, 24 Mar 2022 13:02:10 +0300 Subject: [PATCH] fix(gradle): Fix registry url parsing (#14783) --- lib/modules/manager/gradle/extract.ts | 3 ++- lib/modules/manager/gradle/parser.spec.ts | 27 ++++++++++++----------- lib/modules/manager/gradle/parser.ts | 24 ++++++++++++++++---- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/lib/modules/manager/gradle/extract.ts b/lib/modules/manager/gradle/extract.ts index 7fd945f5ad..8e7bf0d24e 100644 --- a/lib/modules/manager/gradle/extract.ts +++ b/lib/modules/manager/gradle/extract.ts @@ -118,5 +118,6 @@ export async function extractAllPackageFiles( } }); - return Object.values(packageFilesByName); + const result = Object.values(packageFilesByName); + return result; } diff --git a/lib/modules/manager/gradle/parser.spec.ts b/lib/modules/manager/gradle/parser.spec.ts index e0f70eee1a..ebea44eb7c 100644 --- a/lib/modules/manager/gradle/parser.spec.ts +++ b/lib/modules/manager/gradle/parser.spec.ts @@ -85,19 +85,20 @@ describe('modules/manager/gradle/parser', () => { describe('registryUrls', () => { test.each` - input | url - ${'url ""'} | ${null} - ${'url "#!@"'} | ${null} - ${'url "https://example.com"'} | ${'https://example.com'} - ${'url("https://example.com")'} | ${'https://example.com'} - ${'mavenCentral()'} | ${MAVEN_REPO} - ${'jcenter()'} | ${JCENTER_REPO} - ${'google()'} | ${GOOGLE_REPO} - ${'google { content { includeGroup "foo" } }'} | ${GOOGLE_REPO} - ${'gradlePluginPortal()'} | ${GRADLE_PLUGIN_PORTAL_REPO} - ${'maven("https://foo.bar/baz/qux")'} | ${'https://foo.bar/baz/qux'} - ${'maven { url = uri("https://foo.bar/baz") }'} | ${'https://foo.bar/baz'} - ${"maven { url 'https://foo.bar/baz' }"} | ${'https://foo.bar/baz'} + input | url + ${'url ""'} | ${null} + ${'url "#!@"'} | ${null} + ${'url "https://example.com"'} | ${'https://example.com'} + ${'url("https://example.com")'} | ${'https://example.com'} + ${'mavenCentral()'} | ${MAVEN_REPO} + ${'jcenter()'} | ${JCENTER_REPO} + ${'google()'} | ${GOOGLE_REPO} + ${'google { content { includeGroup "foo" } }'} | ${GOOGLE_REPO} + ${'gradlePluginPortal()'} | ${GRADLE_PLUGIN_PORTAL_REPO} + ${'maven("https://foo.bar/baz/qux")'} | ${'https://foo.bar/baz/qux'} + ${'maven { url = uri("https://foo.bar/baz")'} | ${'https://foo.bar/baz'} + ${"maven { url 'https://foo.bar/baz'"} | ${'https://foo.bar/baz'} + ${"maven { url = 'https://foo.bar/baz'"} | ${'https://foo.bar/baz'} `('$input', ({ input, url }) => { const expected = [url].filter(Boolean); const { urls } = parseGradle(input); diff --git a/lib/modules/manager/gradle/parser.ts b/lib/modules/manager/gradle/parser.ts index 08b7139c53..83cc596034 100644 --- a/lib/modules/manager/gradle/parser.ts +++ b/lib/modules/manager/gradle/parser.ts @@ -494,7 +494,25 @@ const matcherConfigs: SyntaxMatchConfig[] = [ handler: processCustomRegistryUrl, }, { - // maven { url = uri("https://maven.springframework.org/release") } + // maven { url = "https://maven.springframework.org/release" + matchers: [ + { + matchType: TokenType.Word, + matchValue: 'maven', + }, + { matchType: TokenType.LeftBrace }, + { + matchType: TokenType.Word, + matchValue: 'url', + }, + { matchType: TokenType.Assignment }, + { matchType: TokenType.String, tokenMapKey: 'registryUrl' }, + endOfInstruction, + ], + handler: processCustomRegistryUrl, + }, + { + // maven { url = uri("https://maven.springframework.org/release") matchers: [ { matchType: TokenType.Word, @@ -513,13 +531,12 @@ const matcherConfigs: SyntaxMatchConfig[] = [ { matchType: TokenType.LeftParen }, { matchType: TokenType.String, tokenMapKey: 'registryUrl' }, { matchType: TokenType.RightParen }, - { matchType: TokenType.RightBrace }, endOfInstruction, ], handler: processCustomRegistryUrl, }, { - // maven { url "https://maven.springframework.org/release" } + // maven { url "https://maven.springframework.org/release" matchers: [ { matchType: TokenType.Word, @@ -531,7 +548,6 @@ const matcherConfigs: SyntaxMatchConfig[] = [ matchValue: 'url', }, { matchType: TokenType.String, tokenMapKey: 'registryUrl' }, - { matchType: TokenType.RightBrace }, endOfInstruction, ], handler: processCustomRegistryUrl, -- GitLab