From 397dda5bd0a2730edb3e0c31765c12f0e06ad059 Mon Sep 17 00:00:00 2001 From: Yun Lai <lyonlai1984@gmail.com> Date: Fri, 15 Mar 2024 19:51:23 +1100 Subject: [PATCH] feat: allow packageScope in template compilation and add packageScope in maven datasource (#27925) Co-authored-by: Rhys Arkins <rhys@arkins.net> --- .../datasource/clojure/__snapshots__/index.spec.ts.snap | 4 ++++ .../datasource/maven/__snapshots__/index.spec.ts.snap | 6 ++++++ lib/modules/datasource/maven/index.spec.ts | 4 ++++ lib/modules/datasource/maven/util.ts | 5 +++++ lib/modules/datasource/types.ts | 1 + lib/util/template/index.ts | 1 + lib/workers/repository/process/lookup/index.ts | 1 + 7 files changed, 22 insertions(+) diff --git a/lib/modules/datasource/clojure/__snapshots__/index.spec.ts.snap b/lib/modules/datasource/clojure/__snapshots__/index.spec.ts.snap index 54e15f3e17..483eac0146 100644 --- a/lib/modules/datasource/clojure/__snapshots__/index.spec.ts.snap +++ b/lib/modules/datasource/clojure/__snapshots__/index.spec.ts.snap @@ -6,6 +6,7 @@ exports[`modules/datasource/clojure/index falls back to next registry url 1`] = "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://clojars.org/repo", "releases": [ { @@ -53,6 +54,7 @@ exports[`modules/datasource/clojure/index returns releases from custom repositor "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://custom.registry.renovatebot.com", "releases": [ { @@ -80,6 +82,7 @@ exports[`modules/datasource/clojure/index skips registry with invalid XML 1`] = "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://clojars.org/repo", "releases": [ { @@ -107,6 +110,7 @@ exports[`modules/datasource/clojure/index skips registry with invalid metadata s "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://clojars.org/repo", "releases": [ { diff --git a/lib/modules/datasource/maven/__snapshots__/index.spec.ts.snap b/lib/modules/datasource/maven/__snapshots__/index.spec.ts.snap index bdc86e88e0..d6ca5371d2 100644 --- a/lib/modules/datasource/maven/__snapshots__/index.spec.ts.snap +++ b/lib/modules/datasource/maven/__snapshots__/index.spec.ts.snap @@ -6,6 +6,7 @@ exports[`modules/datasource/maven/index falls back to next registry url 1`] = ` "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://repo.maven.apache.org/maven2", "releases": [ { @@ -53,6 +54,7 @@ exports[`modules/datasource/maven/index removes authentication header after redi "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://frontend_for_private_s3_repository/maven2", "releases": [ { @@ -89,6 +91,7 @@ exports[`modules/datasource/maven/index returns releases 1`] = ` "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://repo.maven.apache.org/maven2", "releases": [ { @@ -116,6 +119,7 @@ exports[`modules/datasource/maven/index returns releases from custom repository "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://custom.registry.renovatebot.com", "releases": [ { @@ -143,6 +147,7 @@ exports[`modules/datasource/maven/index skips registry with invalid XML 1`] = ` "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://repo.maven.apache.org/maven2", "releases": [ { @@ -170,6 +175,7 @@ exports[`modules/datasource/maven/index skips registry with invalid metadata str "group": "org.example", "homepage": "https://package.example.org/about", "name": "package", + "packageScope": "org.example", "registryUrl": "https://repo.maven.apache.org/maven2", "releases": [ { diff --git a/lib/modules/datasource/maven/index.spec.ts b/lib/modules/datasource/maven/index.spec.ts index f0d931a336..d51f6f1f02 100644 --- a/lib/modules/datasource/maven/index.spec.ts +++ b/lib/modules/datasource/maven/index.spec.ts @@ -240,6 +240,7 @@ describe('modules/datasource/maven/index', () => { group: 'org.example', homepage: 'https://package.example.org/about', name: 'package', + packageScope: 'org.example', registryUrl: 'https://repo.maven.apache.org/maven2', releases: [ { @@ -268,6 +269,7 @@ describe('modules/datasource/maven/index', () => { group: 'org.example', homepage: 'https://package.example.org/about', name: 'package', + packageScope: 'org.example', registryUrl: 'https://repo.maven.apache.org/maven2', releases: [ { version: '1.0.0', releaseTimestamp: '2021-02-22T14:43:00.000Z' }, @@ -484,6 +486,7 @@ describe('modules/datasource/maven/index', () => { group: 'org.example', homepage: 'https://package.example.org/about', name: 'package', + packageScope: 'org.example', registryUrl: 'artifactregistry://maven.pkg.dev/some-project/some-repository', releases: [ @@ -535,6 +538,7 @@ describe('modules/datasource/maven/index', () => { group: 'org.example', homepage: 'https://package.example.org/about', name: 'package', + packageScope: 'org.example', registryUrl: 'artifactregistry://maven.pkg.dev/some-project/some-repository', releases: [ diff --git a/lib/modules/datasource/maven/util.ts b/lib/modules/datasource/maven/util.ts index 072699cc2c..f45d48e4bd 100644 --- a/lib/modules/datasource/maven/util.ts +++ b/lib/modules/datasource/maven/util.ts @@ -449,6 +449,11 @@ export async function getDependencyInfo( } } + const groupId = pomContent.valueWithPath('groupId'); + if (groupId) { + result.packageScope = groupId; + } + const parent = pomContent.childNamed('parent'); if (recursionLimit > 0 && parent && (!result.sourceUrl || !result.homepage)) { // if we found a parent and are missing some information diff --git a/lib/modules/datasource/types.ts b/lib/modules/datasource/types.ts index c08a04ae3f..196d933565 100644 --- a/lib/modules/datasource/types.ts +++ b/lib/modules/datasource/types.ts @@ -87,6 +87,7 @@ export interface ReleaseResult { replacementName?: string; replacementVersion?: string; lookupName?: string; + packageScope?: string; } export type RegistryStrategy = 'first' | 'hunt' | 'merge'; diff --git a/lib/util/template/index.ts b/lib/util/template/index.ts index 66ff1847ed..b70864e22f 100644 --- a/lib/util/template/index.ts +++ b/lib/util/template/index.ts @@ -123,6 +123,7 @@ export const allowedFields = { packageFileDir: 'The directory with full path where the packageFile was found', packageName: 'The full name that was used to look up the dependency', + packageScope: 'The scope of the package name. Supports Maven group ID only', parentDir: 'The name of the directory that the dependency was found in, without full path', platform: 'VCS platform in use, e.g. "github", "gitlab", etc.', diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts index 51ac22891d..d6c7cc5c73 100644 --- a/lib/workers/repository/process/lookup/index.ts +++ b/lib/workers/repository/process/lookup/index.ts @@ -165,6 +165,7 @@ export async function lookupUpdates( 'changelogUrl', 'dependencyUrl', 'lookupName', + 'packageScope', ]); const latestVersion = dependency.tags?.latest; -- GitLab