From ed538ac30400b955fdec1b818bba78de9f8f4314 Mon Sep 17 00:00:00 2001 From: Michael Kriese <michael.kriese@visualon.de> Date: Fri, 22 Jul 2022 11:17:16 +0200 Subject: [PATCH] fix(manager/kubernetes): log filename on parse error (#16676) --- lib/modules/manager/kubernetes/extract.spec.ts | 12 ++++++------ lib/modules/manager/kubernetes/extract.ts | 11 +++++++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/modules/manager/kubernetes/extract.spec.ts b/lib/modules/manager/kubernetes/extract.spec.ts index 0f6744daac..678031fd0b 100644 --- a/lib/modules/manager/kubernetes/extract.spec.ts +++ b/lib/modules/manager/kubernetes/extract.spec.ts @@ -9,11 +9,11 @@ const otherYamlFile = Fixtures.get('gitlab-ci.yaml'); describe('modules/manager/kubernetes/extract', () => { describe('extractPackageFile()', () => { it('returns null for empty', () => { - expect(extractPackageFile('')).toBeNull(); + expect(extractPackageFile('', 'file.yaml')).toBeNull(); }); it('returns only API version', () => { - const res = extractPackageFile(kubernetesConfigMapFile); + const res = extractPackageFile(kubernetesConfigMapFile, 'file.yaml'); expect(res?.deps).toStrictEqual([ { currentValue: 'v1', @@ -23,7 +23,7 @@ describe('modules/manager/kubernetes/extract', () => { }); it('extracts multiple Kubernetes configurations', () => { - const res = extractPackageFile(kubernetesImagesFile); + const res = extractPackageFile(kubernetesImagesFile, 'file.yaml'); expect(res?.deps).toStrictEqual([ { autoReplaceStringTemplate: @@ -55,7 +55,7 @@ describe('modules/manager/kubernetes/extract', () => { }); it('extracts image line in a YAML array', () => { - const res = extractPackageFile(kubernetesArraySyntaxFile); + const res = extractPackageFile(kubernetesArraySyntaxFile, 'file.yaml'); expect(res?.deps).toStrictEqual([ { autoReplaceStringTemplate: @@ -75,7 +75,7 @@ describe('modules/manager/kubernetes/extract', () => { }); it('ignores non-Kubernetes YAML files', () => { - expect(extractPackageFile(otherYamlFile)).toBeNull(); + expect(extractPackageFile(otherYamlFile, 'file.yaml')).toBeNull(); }); it('handles invalid YAML files', () => { @@ -83,7 +83,7 @@ describe('modules/manager/kubernetes/extract', () => { kind: ConfigMap < `; - expect(extractPackageFile(invalidYaml)).toBeNull(); + expect(extractPackageFile(invalidYaml, 'file.yaml')).toBeNull(); }); }); }); diff --git a/lib/modules/manager/kubernetes/extract.ts b/lib/modules/manager/kubernetes/extract.ts index 5bae891c57..c16c42141c 100644 --- a/lib/modules/manager/kubernetes/extract.ts +++ b/lib/modules/manager/kubernetes/extract.ts @@ -6,7 +6,10 @@ import { getDep } from '../dockerfile/extract'; import type { PackageDependency, PackageFile } from '../types'; import type { KubernetesConfiguration } from './types'; -export function extractPackageFile(content: string): PackageFile | null { +export function extractPackageFile( + content: string, + fileName: string +): PackageFile | null { logger.trace('kubernetes.extractPackageFile()'); const isKubernetesManifest = @@ -18,7 +21,7 @@ export function extractPackageFile(content: string): PackageFile | null { const deps: PackageDependency[] = [ ...extractImages(content), - ...extractApis(content), + ...extractApis(content, fileName), ]; return deps.length ? { deps } : null; @@ -47,13 +50,13 @@ function extractImages(content: string): PackageDependency[] { return deps.filter((dep) => !dep.currentValue?.includes('${')); } -function extractApis(content: string): PackageDependency[] { +function extractApis(content: string, fileName: string): PackageDependency[] { let doc: KubernetesConfiguration[] | undefined; try { doc = loadAll(content) as KubernetesConfiguration[]; } catch (err) { - logger.debug({ err, content }, 'Failed to parse Kubernetes configuration.'); + logger.debug({ err, fileName }, 'Failed to parse Kubernetes manifest.'); return []; } -- GitLab