diff --git a/lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap index 374573315d9c8a87467ca625905c751564fe2678..eb3d4fa4358f84be34cab9c5bcffcfbcdff542a9 100644 --- a/lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap +++ b/lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap @@ -8,6 +8,7 @@ Array [ Object { "currentValue": "1.2.3", "depName": "foo:bar", + "depType": "dependencies", "fileReplacePosition": 4, "groupName": "baz", "managerData": Object { diff --git a/lib/modules/manager/gradle/extract.spec.ts b/lib/modules/manager/gradle/extract.spec.ts index c855e148d048644963261af6fc3fe66868ea591b..f07d0a6478039e052878639e19656e4021164e8a 100644 --- a/lib/modules/manager/gradle/extract.spec.ts +++ b/lib/modules/manager/gradle/extract.spec.ts @@ -802,4 +802,33 @@ describe('modules/manager/gradle/extract', () => { { packageFile: 'build.gradle' }, ]); }); + + it('ensures depType is assigned', async () => { + const fsMock = { + 'build.gradle': + "id 'org.sonarqube' version '3.1.1'\n\"io.jsonwebtoken:jjwt-api:0.11.2\"", + 'buildSrc/build.gradle': '"com.google.protobuf:protobuf-java:3.18.2"', + }; + + mockFs(fsMock); + + const res = await extractAllPackageFiles( + {} as ExtractConfig, + Object.keys(fsMock) + ); + + expect(res).toMatchObject([ + { + packageFile: 'build.gradle', + deps: [ + { depName: 'org.sonarqube', depType: 'plugin' }, + { depName: 'io.jsonwebtoken:jjwt-api', depType: 'dependencies' }, + ], + }, + { + packageFile: 'buildSrc/build.gradle', + deps: [{ depType: 'devDependencies' }], + }, + ]); + }); }); diff --git a/lib/modules/manager/gradle/extract.ts b/lib/modules/manager/gradle/extract.ts index bb31acf21fb52271186d321381113a98c2ee432f..bdd055a051f501c97a18cb2dada1cceeb13c1a9e 100644 --- a/lib/modules/manager/gradle/extract.ts +++ b/lib/modules/manager/gradle/extract.ts @@ -113,6 +113,12 @@ export async function extractAllPackageFiles( ...new Set([...registryUrls, ...(dep.registryUrls ?? [])]), ]; + if (!dep.depType) { + dep.depType = key.startsWith('buildSrc') + ? 'devDependencies' + : 'dependencies'; + } + const depAlreadyInPkgFile = pkgFile.deps.some( (item) => item.depName === dep.depName &&