From a19f44b2a8f852602ae01a9abae266d906108096 Mon Sep 17 00:00:00 2001 From: Sebastian Poxhofer <secustor@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:23:53 +0100 Subject: [PATCH] fix(terraform): allow `_` and `-` in hostnames of provider sources (#19203) --- .../manager/terraform/__fixtures__/providers.tf | 4 ++++ .../terraform/__snapshots__/extract.spec.ts.snap | 13 ++++++++++++- lib/modules/manager/terraform/extract.spec.ts | 2 +- lib/modules/manager/terraform/providers.ts | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/modules/manager/terraform/__fixtures__/providers.tf b/lib/modules/manager/terraform/__fixtures__/providers.tf index 3d1071f916..8575726e90 100644 --- a/lib/modules/manager/terraform/__fixtures__/providers.tf +++ b/lib/modules/manager/terraform/__fixtures__/providers.tf @@ -69,6 +69,10 @@ terraform { source = "terraform.example.com/hashicorp/kubernetes" version = ">= 1.0" } + oci = { + source = "terraform-company_special.example.com/oracle/oci" + version = ">= 4.0" + } } required_version = ">= 0.13" } diff --git a/lib/modules/manager/terraform/__snapshots__/extract.spec.ts.snap b/lib/modules/manager/terraform/__snapshots__/extract.spec.ts.snap index 66212bfc2e..9b69b84919 100644 --- a/lib/modules/manager/terraform/__snapshots__/extract.spec.ts.snap +++ b/lib/modules/manager/terraform/__snapshots__/extract.spec.ts.snap @@ -388,7 +388,7 @@ exports[`modules/manager/terraform/extract extractPackageFile() extracts provide "depName": "hashicorp/terraform", "depType": "required_version", "extractVersion": "v(?<version>.*)$", - "lineNumber": 72, + "lineNumber": 76, }, { "currentValue": "2.7.2", @@ -443,6 +443,17 @@ exports[`modules/manager/terraform/extract extractPackageFile() extracts provide "https://terraform.example.com", ], }, + { + "currentValue": ">= 4.0", + "datasource": "terraform-provider", + "depName": "oci", + "depType": "required_provider", + "lockedVersion": undefined, + "packageName": "oracle/oci", + "registryUrls": [ + "https://terraform-company_special.example.com", + ], + }, ], } `; diff --git a/lib/modules/manager/terraform/extract.spec.ts b/lib/modules/manager/terraform/extract.spec.ts index 48bbcb6cfb..f048345e84 100644 --- a/lib/modules/manager/terraform/extract.spec.ts +++ b/lib/modules/manager/terraform/extract.spec.ts @@ -91,7 +91,7 @@ describe('modules/manager/terraform/extract', () => { it('extracts providers', async () => { const res = await extractPackageFile(providers, 'providers.tf', {}); - expect(res?.deps).toHaveLength(14); + expect(res?.deps).toHaveLength(15); expect(res?.deps.filter((dep) => dep.skipReason)).toHaveLength(2); expect(res).toMatchSnapshot(); }); diff --git a/lib/modules/manager/terraform/providers.ts b/lib/modules/manager/terraform/providers.ts index 4c20e6d0e6..10501357ff 100644 --- a/lib/modules/manager/terraform/providers.ts +++ b/lib/modules/manager/terraform/providers.ts @@ -12,7 +12,7 @@ import { } from './util'; export const sourceExtractionRegex = regEx( - /^(?:(?<hostname>(?:[a-zA-Z0-9]+\.+)+[a-zA-Z0-9]+)\/)?(?:(?<namespace>[^/]+)\/)?(?<type>[^/]+)/ + /^(?:(?<hostname>(?:[a-zA-Z0-9-_]+\.+)+[a-zA-Z0-9-_]+)\/)?(?:(?<namespace>[^/]+)\/)?(?<type>[^/]+)/ ); export function extractTerraformProvider( -- GitLab