From 1b36708c640da6e4648cc6142f8f6f3fefdc834b Mon Sep 17 00:00:00 2001
From: Johannes Feichtner <Churro@users.noreply.github.com>
Date: Sun, 24 Jul 2022 08:14:29 +0200
Subject: [PATCH] feat(gradle): always add depType to extracted dependencies
 (#16725)

---
 .../gradle/__snapshots__/extract.spec.ts.snap |  1 +
 lib/modules/manager/gradle/extract.spec.ts    | 29 +++++++++++++++++++
 lib/modules/manager/gradle/extract.ts         |  6 ++++
 3 files changed, 36 insertions(+)

diff --git a/lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/gradle/__snapshots__/extract.spec.ts.snap
index 374573315d..eb3d4fa435 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 c855e148d0..f07d0a6478 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 bb31acf21f..bdd055a051 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 &&
-- 
GitLab