From 1f4bda7877d1369c6a793f127acb353c70ddcc28 Mon Sep 17 00:00:00 2001
From: Sergio Zharinov <zharinov@users.noreply.github.com>
Date: Fri, 11 Sep 2020 19:54:12 +0400
Subject: [PATCH] feat(gradle): Add more variable patterns for Kotlin files
 (#7250)

---
 lib/manager/gradle/build-gradle.ts | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/lib/manager/gradle/build-gradle.ts b/lib/manager/gradle/build-gradle.ts
index 8ab31dd107..81dd5e8408 100644
--- a/lib/manager/gradle/build-gradle.ts
+++ b/lib/manager/gradle/build-gradle.ts
@@ -145,6 +145,24 @@ function kotlinPluginVariableVersionFormatMatch(
   );
 }
 
+function kotlinImplementationVariableVersionFormatMatch(
+  dependency: GradleDependency
+): RegExp {
+  // implementation("com.graphql-java", "graphql-java", graphqlVersion)
+  return regEx(
+    `(?:implementation|testImplementation)\\s*\\(\\s*['"]${dependency.group}['"]\\s*,\\s*['"]${dependency.name}['"]\\s*,\\s*([a-zA-Z_][a-zA-Z_0-9]*)\\s*\\)\\s*(?:\\s|;|})`
+  );
+}
+
+function kotlinPluginVariableDotVersionFormatMatch(
+  dependency: GradleDependency
+): RegExp {
+  // id("org.jetbrains.kotlin.jvm").version(kotlinVersion)
+  return regEx(
+    `id\\s*\\(\\s*"${dependency.group}"\\s*\\)\\s*\\.\\s*version\\s*\\(\\s*([a-zA-Z_][a-zA-Z_0-9]*)\\s*\\)\\s*(?:\\s|;|})`
+  );
+}
+
 function dependencyStringVariableExpressionFormatMatch(
   dependency: GradleDependency
 ): RegExp {
@@ -181,6 +199,8 @@ export function collectVersionVariables(
       dependencyStringVariableExpressionFormatMatch(dependency),
       ...moduleMapVariableVersionFormatMatch(dependency),
       ...moduleKotlinNamedArgumentVariableVersionFormatMatch(dependency),
+      kotlinImplementationVariableVersionFormatMatch(dependency),
+      kotlinPluginVariableDotVersionFormatMatch(dependency),
     ];
 
     const depName = `${dependency.group}:${dependency.name}`;
@@ -235,6 +255,7 @@ function updateLocalVariables(
     moduleStringVariableExpressionVersionFormatMatch(dependency),
     groovyPluginVariableVersionFormatMatch(dependency),
     kotlinPluginVariableVersionFormatMatch(dependency),
+    kotlinImplementationVariableVersionFormatMatch(dependency),
     ...moduleKotlinNamedArgumentVariableVersionFormatMatch(dependency),
   ];
   for (const regex of regexes) {
-- 
GitLab