From af7bd08c8b5e159e8a1b6eb97e04b0236c8ce431 Mon Sep 17 00:00:00 2001 From: Christoph Obexer <cobexer@gmail.com> Date: Mon, 29 Mar 2021 20:41:44 +0200 Subject: [PATCH] fix: helm: add support for "alias:" repositories (#9316) --- .../__snapshots__/extract.spec.ts.snap | 7 +++++++ lib/manager/helm-requirements/extract.spec.ts | 4 ++++ lib/manager/helm-requirements/extract.ts | 8 +++++--- lib/manager/helmv3/__snapshots__/extract.spec.ts.snap | 7 +++++++ lib/manager/helmv3/extract.spec.ts | 4 ++++ lib/manager/helmv3/extract.ts | 11 ++++++++--- 6 files changed, 35 insertions(+), 6 deletions(-) diff --git a/lib/manager/helm-requirements/__snapshots__/extract.spec.ts.snap b/lib/manager/helm-requirements/__snapshots__/extract.spec.ts.snap index 50e5657e88..1e6908d617 100644 --- a/lib/manager/helm-requirements/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/helm-requirements/__snapshots__/extract.spec.ts.snap @@ -33,6 +33,13 @@ Object { "https://my-registry.gcr.io/", ], }, + Object { + "currentValue": "1.0.0", + "depName": "example", + "registryUrls": Array [ + "https://registry.example.com/", + ], + }, ], } `; diff --git a/lib/manager/helm-requirements/extract.spec.ts b/lib/manager/helm-requirements/extract.spec.ts index b2bf6c8775..36cd773fd9 100644 --- a/lib/manager/helm-requirements/extract.spec.ts +++ b/lib/manager/helm-requirements/extract.spec.ts @@ -93,11 +93,15 @@ describe('lib/manager/helm-requirements/extract', () => { - name: redis version: 0.9.0 repository: '@placeholder' + - name: example + version: 1.0.0 + repository: alias:longalias `; const fileName = 'requirements.yaml'; const result = extractPackageFile(content, fileName, { aliases: { placeholder: 'https://my-registry.gcr.io/', + longalias: 'https://registry.example.com/', }, }); expect(result).not.toBeNull(); diff --git a/lib/manager/helm-requirements/extract.ts b/lib/manager/helm-requirements/extract.ts index 11363a61a7..4ea6d08a76 100644 --- a/lib/manager/helm-requirements/extract.ts +++ b/lib/manager/helm-requirements/extract.ts @@ -44,9 +44,11 @@ export function extractPackageFile( } res.registryUrls = [dep.repository]; - if (dep.repository.startsWith('@')) { - const repoWithAtRemoved = dep.repository.slice(1); - const alias = config.aliases[repoWithAtRemoved]; + if (dep.repository.startsWith('@') || dep.repository.startsWith('alias:')) { + const repoWithPrefixRemoved = dep.repository.slice( + dep.repository[0] === '@' ? 1 : 6 + ); + const alias = config.aliases[repoWithPrefixRemoved]; if (alias) { res.registryUrls = [alias]; return res; diff --git a/lib/manager/helmv3/__snapshots__/extract.spec.ts.snap b/lib/manager/helmv3/__snapshots__/extract.spec.ts.snap index 424bf34f10..a1f566e5e2 100644 --- a/lib/manager/helmv3/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/helmv3/__snapshots__/extract.spec.ts.snap @@ -34,6 +34,13 @@ Object { "https://my-registry.gcr.io/", ], }, + Object { + "currentValue": "1.0.0", + "depName": "example", + "registryUrls": Array [ + "https://registry.example.com/", + ], + }, ], "packageFileVersion": "0.1.0", } diff --git a/lib/manager/helmv3/extract.spec.ts b/lib/manager/helmv3/extract.spec.ts index c4e402ead3..48bad50e84 100644 --- a/lib/manager/helmv3/extract.spec.ts +++ b/lib/manager/helmv3/extract.spec.ts @@ -73,11 +73,15 @@ describe('lib/manager/helm-requirements/extract', () => { - name: redis version: 0.9.0 repository: '@placeholder' + - name: example + version: 1.0.0 + repository: alias:longalias `; const fileName = 'Chart.yaml'; const result = await extractPackageFile(content, fileName, { aliases: { placeholder: 'https://my-registry.gcr.io/', + longalias: 'https://registry.example.com/', }, }); expect(result).not.toBeNull(); diff --git a/lib/manager/helmv3/extract.ts b/lib/manager/helmv3/extract.ts index b15c4018e0..3150934684 100644 --- a/lib/manager/helmv3/extract.ts +++ b/lib/manager/helmv3/extract.ts @@ -58,9 +58,14 @@ export async function extractPackageFile( }; if (dep.repository) { res.registryUrls = [dep.repository]; - if (dep.repository.startsWith('@')) { - const repoWithAtRemoved = dep.repository.slice(1); - const alias = config.aliases[repoWithAtRemoved]; + if ( + dep.repository.startsWith('@') || + dep.repository.startsWith('alias:') + ) { + const repoWithPrefixRemoved = dep.repository.slice( + dep.repository[0] === '@' ? 1 : 6 + ); + const alias = config.aliases[repoWithPrefixRemoved]; if (alias) { res.registryUrls = [alias]; return res; -- GitLab