From af35a32152bde38152bc8e4ac7b406281d80cde2 Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Sat, 16 Jan 2021 20:42:53 +0400
Subject: [PATCH] feat(gradle-lite): Recognize platform dependencies (#8322)

---
 lib/manager/gradle-lite/parser.spec.ts | 10 ++++++++++
 lib/manager/gradle-lite/parser.ts      | 20 ++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/lib/manager/gradle-lite/parser.spec.ts b/lib/manager/gradle-lite/parser.spec.ts
index 072126bdc0..1be7ddbf29 100644
--- a/lib/manager/gradle-lite/parser.spec.ts
+++ b/lib/manager/gradle-lite/parser.spec.ts
@@ -84,6 +84,16 @@ describe('manager/gradle-lite/parser', () => {
       },
     ]);
 
+    ({ deps } = parseGradle(
+      "implementation platform(group: 'foo', name: 'bar', version: '1.2.3')"
+    ));
+    expect(deps).toMatchObject([
+      {
+        depName: 'foo:bar',
+        currentValue: '1.2.3',
+      },
+    ]);
+
     ({ deps } = parseGradle(
       'group: "com.example", name: "my.dependency", version: depVersion'
     ));
diff --git a/lib/manager/gradle-lite/parser.ts b/lib/manager/gradle-lite/parser.ts
index 4e3ab1f64b..6c6659279b 100644
--- a/lib/manager/gradle-lite/parser.ts
+++ b/lib/manager/gradle-lite/parser.ts
@@ -376,6 +376,26 @@ const matcherConfigs: SyntaxMatchConfig[] = [
     ],
     handler: processLongFormDep,
   },
+  {
+    // (group: "com.example", name: "my.dependency", version: "1.2.3")
+    matchers: [
+      { matchType: TokenType.LeftParen },
+      { matchType: TokenType.Word, matchValue: 'group' },
+      { matchType: TokenType.Colon },
+      { matchType: potentialStringTypes, tokenMapKey: 'groupId' },
+      { matchType: TokenType.Comma },
+      { matchType: TokenType.Word, matchValue: 'name' },
+      { matchType: TokenType.Colon },
+      { matchType: potentialStringTypes, tokenMapKey: 'artifactId' },
+      { matchType: TokenType.Comma },
+      { matchType: TokenType.Word, matchValue: 'version' },
+      { matchType: TokenType.Colon },
+      { matchType: potentialStringTypes, tokenMapKey: 'version' },
+      { matchType: TokenType.RightParen },
+      endOfInstruction,
+    ],
+    handler: processLongFormDep,
+  },
   {
     // ("com.example", "my.dependency", "1.2.3")
     matchers: [
-- 
GitLab