From e91191c667bcf47abe1baf458a9f3501693b75ad Mon Sep 17 00:00:00 2001
From: Michael Kriese <michael.kriese@visualon.de>
Date: Fri, 18 Dec 2020 17:24:15 +0100
Subject: [PATCH] fix(regex-manager): copy templates for auto-replace (#8072)

---
 .../regex/__snapshots__/index.spec.ts.snap    |  5 +++++
 lib/manager/regex/index.ts                    | 20 +++++++++----------
 lib/workers/branch/auto-replace.ts            |  2 +-
 3 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/lib/manager/regex/__snapshots__/index.spec.ts.snap b/lib/manager/regex/__snapshots__/index.spec.ts.snap
index ff7398a14e..45d0d301e8 100644
--- a/lib/manager/regex/__snapshots__/index.spec.ts.snap
+++ b/lib/manager/regex/__snapshots__/index.spec.ts.snap
@@ -90,6 +90,7 @@ Object {
   "matchStrings": Array [
     "ENV .*?_VERSION=(?<currentValue>.*) # (?<datasource>.*?)/(?<depName>[^&]*?)(\\\\&versioning=(?<versioning>[^&]*?))?\\\\s",
   ],
+  "versioningTemplate": "{{#if versioning}}{{versioning}}{{else}}semver{{/if}}",
 }
 `;
 
@@ -117,11 +118,13 @@ Object {
     "ENV GRADLE_VERSION=(?<currentValue>.*) # (?<datasource>.*?)/(?<depName>.*?)(\\\\&versioning=(?<versioning>.*?))?\\\\s",
     "ENV NODE_VERSION=(?<currentValue>.*) # (?<datasource>.*?)/(?<depName>.*?)(\\\\&versioning=(?<versioning>.*?))?\\\\s",
   ],
+  "versioningTemplate": "{{#if versioning}}{{versioning}}{{else}}semver{{/if}}",
 }
 `;
 
 exports[`manager/regex/index extracts registryUrl 1`] = `
 Object {
+  "datasourceTemplate": "helm",
   "deps": Array [
     Object {
       "currentValue": "8.12.13",
@@ -149,6 +152,7 @@ Object {
 
 exports[`manager/regex/index extracts with combination strategy 1`] = `
 Object {
+  "datasourceTemplate": "docker",
   "deps": Array [
     Object {
       "currentValue": "v2.21.0",
@@ -167,6 +171,7 @@ Object {
 
 exports[`manager/regex/index extracts with combination strategy and multiple matches 1`] = `
 Object {
+  "datasourceTemplate": "docker",
   "deps": Array [
     Object {
       "currentValue": "0.12.0",
diff --git a/lib/manager/regex/index.ts b/lib/manager/regex/index.ts
index 43f2ad273f..daf180ff29 100644
--- a/lib/manager/regex/index.ts
+++ b/lib/manager/regex/index.ts
@@ -139,7 +139,7 @@ export function extractPackageFile(
   packageFile: string,
   config: CustomExtractConfig
 ): Result<PackageFile | null> {
-  let deps;
+  let deps: PackageDependency[];
   switch (config.matchStringsStrategy) {
     default:
     case 'any':
@@ -156,17 +156,17 @@ export function extractPackageFile(
   // filter all null values
   deps = deps.filter(Boolean);
   if (deps.length) {
+    const res: PackageFile = { deps, matchStrings: config.matchStrings };
     if (config.matchStringsStrategy) {
-      return {
-        deps,
-        matchStrings: config.matchStrings,
-        matchStringsStrategy: config.matchStringsStrategy,
-      };
+      res.matchStringsStrategy = config.matchStringsStrategy;
     }
-    return {
-      deps,
-      matchStrings: config.matchStrings,
-    };
+    // copy over templates for autoreplace
+    for (const field of validMatchFields.map((f) => `${f}Template`)) {
+      if (config[field]) {
+        res[field] = config[field];
+      }
+    }
+    return res;
   }
 
   return null;
diff --git a/lib/workers/branch/auto-replace.ts b/lib/workers/branch/auto-replace.ts
index 6abd5acf0c..8aa6e17362 100644
--- a/lib/workers/branch/auto-replace.ts
+++ b/lib/workers/branch/auto-replace.ts
@@ -38,7 +38,7 @@ export async function confirmIfDepUpdated(
     return false;
   }
 
-  if (newUpgrade.depName && upgrade.depName !== newUpgrade.depName) {
+  if (upgrade.depName !== newUpgrade.depName) {
     logger.debug(
       {
         manager,
-- 
GitLab