From 9fd3b96e1405367106dbbe1d3c18f6d0a6c2ba82 Mon Sep 17 00:00:00 2001
From: Michael Kriese <michael.kriese@visualon.de>
Date: Thu, 5 Aug 2021 09:38:12 +0200
Subject: [PATCH] fix(manager:helmfile): add chart check (#11103)

---
 lib/manager/helmfile/__fixtures__/multidoc.yaml       |  2 ++
 .../helmfile/__snapshots__/extract.spec.ts.snap       |  4 ++++
 lib/manager/helmfile/extract.spec.ts                  |  2 +-
 lib/manager/helmfile/extract.ts                       | 11 +++++++++--
 lib/manager/helmfile/types.ts                         |  1 +
 5 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/lib/manager/helmfile/__fixtures__/multidoc.yaml b/lib/manager/helmfile/__fixtures__/multidoc.yaml
index 38eec976c5..bbf5eec4cb 100644
--- a/lib/manager/helmfile/__fixtures__/multidoc.yaml
+++ b/lib/manager/helmfile/__fixtures__/multidoc.yaml
@@ -60,3 +60,5 @@ releases:
   needs:
     - manifests
   version: 13.7.2
+
+- name: invalid
diff --git a/lib/manager/helmfile/__snapshots__/extract.spec.ts.snap b/lib/manager/helmfile/__snapshots__/extract.spec.ts.snap
index b1072bc584..ee74ff3c3a 100644
--- a/lib/manager/helmfile/__snapshots__/extract.spec.ts.snap
+++ b/lib/manager/helmfile/__snapshots__/extract.spec.ts.snap
@@ -22,6 +22,10 @@ Object {
         "https://prometheus-community.github.io/helm-charts",
       ],
     },
+    Object {
+      "depName": "invalid",
+      "skipReason": "invalid-name",
+    },
   ],
 }
 `;
diff --git a/lib/manager/helmfile/extract.spec.ts b/lib/manager/helmfile/extract.spec.ts
index 09b2a2290b..5f74c036bc 100644
--- a/lib/manager/helmfile/extract.spec.ts
+++ b/lib/manager/helmfile/extract.spec.ts
@@ -1,5 +1,5 @@
 import { getName, loadFixture } from '../../../test/util';
-import { extractPackageFile } from './extract';
+import { extractPackageFile } from '.';
 
 const multidocYaml = loadFixture('multidoc.yaml');
 
diff --git a/lib/manager/helmfile/extract.ts b/lib/manager/helmfile/extract.ts
index f15090b181..c2cc664568 100644
--- a/lib/manager/helmfile/extract.ts
+++ b/lib/manager/helmfile/extract.ts
@@ -39,12 +39,19 @@ export function extractPackageFile(
       let depName = dep.chart;
       let repoName = null;
 
+      if (!is.string(dep.chart)) {
+        return {
+          depName: dep.name,
+          skipReason: SkipReason.InvalidName,
+        };
+      }
+
       // If starts with ./ is for sure a local path
       if (dep.chart.startsWith('./')) {
         return {
           depName,
-          skipReason: 'local-chart',
-        } as PackageDependency;
+          skipReason: SkipReason.LocalChart,
+        };
       }
 
       if (dep.chart.includes('/')) {
diff --git a/lib/manager/helmfile/types.ts b/lib/manager/helmfile/types.ts
index 8c6b6a19bb..c84d8377f9 100644
--- a/lib/manager/helmfile/types.ts
+++ b/lib/manager/helmfile/types.ts
@@ -1,5 +1,6 @@
 export interface Doc {
   releases?: {
+    name: string;
     chart: string;
     version: string;
   }[];
-- 
GitLab