diff --git a/lib/modules/manager/terraform/__fixtures__/providers.tf b/lib/modules/manager/terraform/__fixtures__/providers.tf index 3d1071f916e8c3b9d139c22abc9b42ca9aacc96c..8575726e9016c85f9b7a8037ddaff4a3953e39d9 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 66212bfc2e4964748e827ffbfe1ad0a3b2e2c958..9b69b849193c8cedaab854579d70275a1a1ba9f0 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 48bbcb6cfbfc34f2b9005617c4e644f1e94fedef..f048345e846791907a034a043af95ab975b1f2ce 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 4c20e6d0e6ead5e246aed617d9d1545f0d04c01b..10501357ff9d21a1b73435fe1937fcf97fef92f2 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(