From 71679f487fe6f9094d620aa0205eea1ff14b012e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Segovia=20C=C3=B3rdoba?= <7463564+JavierSegoviaCordoba@users.noreply.github.com> Date: Sun, 3 Oct 2021 07:04:37 +0200 Subject: [PATCH] fix(gradle): support gradlePluginPortal() (#11894) --- .../deep/__fixtures__/build.gradle.example1 | 2 ++ .../shallow/__snapshots__/parser.spec.ts.snap | 28 ++++++++++++------- lib/manager/gradle/shallow/common.ts | 1 + lib/manager/gradle/shallow/parser.spec.ts | 10 +++++-- lib/manager/gradle/shallow/parser.ts | 11 ++++++-- 5 files changed, 38 insertions(+), 14 deletions(-) diff --git a/lib/manager/gradle/deep/__fixtures__/build.gradle.example1 b/lib/manager/gradle/deep/__fixtures__/build.gradle.example1 index 5ba8e6206b..90707ae544 100644 --- a/lib/manager/gradle/deep/__fixtures__/build.gradle.example1 +++ b/lib/manager/gradle/deep/__fixtures__/build.gradle.example1 @@ -8,6 +8,7 @@ buildscript { } mavenCentral() jcenter() + gradlePluginPortal() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") @@ -15,6 +16,7 @@ buildscript { classpath 'com.fkorotkov:gradle-libraries-plugin:0.1' classpath "gradle.plugin.se.patrikerdes:gradle-use-latest-versions-plugin:0.2.3" classpath 'org.apache.openjpa:openjpa:3.1.1' + classpath 'com.gradle.publish:plugin-publish-plugin:0.13.0' } } diff --git a/lib/manager/gradle/shallow/__snapshots__/parser.spec.ts.snap b/lib/manager/gradle/shallow/__snapshots__/parser.spec.ts.snap index 246aa7d24c..4eabcf1f14 100644 --- a/lib/manager/gradle/shallow/__snapshots__/parser.spec.ts.snap +++ b/lib/manager/gradle/shallow/__snapshots__/parser.spec.ts.snap @@ -15,7 +15,7 @@ Array [ "currentValue": "1.2.3", "depName": "com.github.jengelman.gradle.plugins:shadow", "managerData": Object { - "fileReplacePosition": 388, + "fileReplacePosition": 417, "packageFile": "build.gradle", }, }, @@ -23,7 +23,7 @@ Array [ "currentValue": "0.1", "depName": "com.fkorotkov:gradle-libraries-plugin", "managerData": Object { - "fileReplacePosition": 452, + "fileReplacePosition": 481, "packageFile": "build.gradle", }, }, @@ -31,7 +31,7 @@ Array [ "currentValue": "0.2.3", "depName": "gradle.plugin.se.patrikerdes:gradle-use-latest-versions-plugin", "managerData": Object { - "fileReplacePosition": 539, + "fileReplacePosition": 568, "packageFile": "build.gradle", }, }, @@ -39,7 +39,15 @@ Array [ "currentValue": "3.1.1", "depName": "org.apache.openjpa:openjpa", "managerData": Object { - "fileReplacePosition": 592, + "fileReplacePosition": 621, + "packageFile": "build.gradle", + }, + }, + Object { + "currentValue": "0.13.0", + "depName": "com.gradle.publish:plugin-publish-plugin", + "managerData": Object { + "fileReplacePosition": 688, "packageFile": "build.gradle", }, }, @@ -47,7 +55,7 @@ Array [ "currentValue": "6.0.9.RELEASE", "depName": "org.grails:gorm-hibernate5-spring-boot", "managerData": Object { - "fileReplacePosition": 1785, + "fileReplacePosition": 1882, "packageFile": "build.gradle", }, }, @@ -55,7 +63,7 @@ Array [ "currentValue": "6.0.5", "depName": "mysql:mysql-connector-java", "managerData": Object { - "fileReplacePosition": 1841, + "fileReplacePosition": 1938, "packageFile": "build.gradle", }, }, @@ -63,7 +71,7 @@ Array [ "currentValue": "1.0-groovy-2.4", "depName": "org.spockframework:spock-spring", "managerData": Object { - "fileReplacePosition": 1899, + "fileReplacePosition": 1996, "packageFile": "build.gradle", }, }, @@ -71,7 +79,7 @@ Array [ "currentValue": "1.3", "depName": "org.hamcrest:hamcrest-core", "managerData": Object { - "fileReplacePosition": 2004, + "fileReplacePosition": 2101, "packageFile": "build.gradle", }, }, @@ -79,7 +87,7 @@ Array [ "currentValue": "3.1", "depName": "cglib:cglib-nodep", "managerData": Object { - "fileReplacePosition": 2092, + "fileReplacePosition": 2189, "packageFile": "build.gradle", }, }, @@ -87,7 +95,7 @@ Array [ "currentValue": "3.1.1", "depName": "org.apache.openjpa:openjpa", "managerData": Object { - "fileReplacePosition": 2198, + "fileReplacePosition": 2295, "packageFile": "build.gradle", }, }, diff --git a/lib/manager/gradle/shallow/common.ts b/lib/manager/gradle/shallow/common.ts index b2d6026fcd..d11fc1954e 100644 --- a/lib/manager/gradle/shallow/common.ts +++ b/lib/manager/gradle/shallow/common.ts @@ -2,6 +2,7 @@ export { MAVEN_REPO } from '../../../datasource/maven/common'; export const JCENTER_REPO = 'https://jcenter.bintray.com/'; export const GOOGLE_REPO = 'https://dl.google.com/android/maven2/'; +export const GRADLE_PLUGIN_PORTAL_REPO = 'https://plugins.gradle.org/m2/'; // TODO: convert to types export enum TokenType { diff --git a/lib/manager/gradle/shallow/parser.spec.ts b/lib/manager/gradle/shallow/parser.spec.ts index 869c092aae..c3c439f0af 100644 --- a/lib/manager/gradle/shallow/parser.spec.ts +++ b/lib/manager/gradle/shallow/parser.spec.ts @@ -1,5 +1,10 @@ import { loadFixture } from '../../../../test/util'; -import { GOOGLE_REPO, JCENTER_REPO, MAVEN_REPO } from './common'; +import { + GOOGLE_REPO, + GRADLE_PLUGIN_PORTAL_REPO, + JCENTER_REPO, + MAVEN_REPO, +} from './common'; import { parseGradle, parseProps } from './parser'; describe('manager/gradle/shallow/parser', () => { @@ -60,13 +65,14 @@ describe('manager/gradle/shallow/parser', () => { expect(urls).toStrictEqual(['https://example.com']); ({ urls } = parseGradle( - 'mavenCentral(); uri("https://example.com"); jcenter(); google();' + 'mavenCentral(); uri("https://example.com"); jcenter(); google(); gradlePluginPortal();' )); expect(urls).toStrictEqual([ MAVEN_REPO, 'https://example.com', JCENTER_REPO, GOOGLE_REPO, + GRADLE_PLUGIN_PORTAL_REPO, ]); ({ urls } = parseGradle( diff --git a/lib/manager/gradle/shallow/parser.ts b/lib/manager/gradle/shallow/parser.ts index b1d16f5b80..f684215c8e 100644 --- a/lib/manager/gradle/shallow/parser.ts +++ b/lib/manager/gradle/shallow/parser.ts @@ -4,7 +4,13 @@ import { logger } from '../../../logger'; import { regEx } from '../../../util/regex'; import type { PackageDependency } from '../../types'; import type { GradleManagerData } from '../types'; -import { GOOGLE_REPO, JCENTER_REPO, MAVEN_REPO, TokenType } from './common'; +import { + GOOGLE_REPO, + GRADLE_PLUGIN_PORTAL_REPO, + JCENTER_REPO, + MAVEN_REPO, + TokenType, +} from './common'; import { tokenize } from './tokenizer'; import type { MatchConfig, @@ -215,6 +221,7 @@ function processPredefinedRegistryUrl({ mavenCentral: MAVEN_REPO, jcenter: JCENTER_REPO, google: GOOGLE_REPO, + gradlePluginPortal: GRADLE_PLUGIN_PORTAL_REPO, }[registryName]; return { urls: [registryUrl] }; } @@ -330,7 +337,7 @@ const matcherConfigs: SyntaxMatchConfig[] = [ matchers: [ { matchType: TokenType.Word, - matchValue: ['mavenCentral', 'jcenter', 'google'], + matchValue: ['mavenCentral', 'jcenter', 'google', 'gradlePluginPortal'], tokenMapKey: 'registryName', }, { matchType: TokenType.LeftParen }, -- GitLab