From 914ac1da6140235510ca342bb391190e9a3fc256 Mon Sep 17 00:00:00 2001 From: "sebastian.poxhofer" Date: Sun, 28 Jun 2020 22:29:31 +0200 Subject: [PATCH] fix(terraform-provider): make git:: prefix optional --- .../terraform/__snapshots__/extract.spec.ts.snap | 9 ++++++++- lib/manager/terraform/extract.ts | 10 ++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/manager/terraform/__snapshots__/extract.spec.ts.snap b/lib/manager/terraform/__snapshots__/extract.spec.ts.snap index 195e5888bf9b42..e61646a6faa8bd 100644 --- a/lib/manager/terraform/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/terraform/__snapshots__/extract.spec.ts.snap @@ -150,7 +150,14 @@ Object { "depType": "terraform", "skipReason": "unsupported-version", }, - Object {}, + Object { + "currentValue": "v1.0.0", + "datasource": "git-tags", + "depName": "bitbucket.com/hashicorp/example", + "depNameShort": "hashicorp/example", + "depType": "gitTags", + "lookupName": "https://bitbucket.com/hashicorp/example", + }, Object { "currentValue": "v1.0.0", "datasource": "git-tags", diff --git a/lib/manager/terraform/extract.ts b/lib/manager/terraform/extract.ts index 78c81e8be764b3..3518ebc2f95bc3 100644 --- a/lib/manager/terraform/extract.ts +++ b/lib/manager/terraform/extract.ts @@ -45,6 +45,8 @@ function checkFileContainsDependency( const dependencyBlockExtractionRegex = /^\s*(?module|provider|required_providers)\s+("(?[^"]+)"\s+)?{\s*$/; const contentCheckList = ['module "', 'provider "', 'required_providers ']; const keyValueExtractionRegex = /^\s*(?[^\s]+)\s+=\s+"(?[^"]+)"\s*$/; // extracts `exampleKey = exampleValue` +const githubRefMatchRegex = /github.com(\/|:)([^/]+\/[a-z0-9-.]+).*\?ref=(.*)$/; +const gitTagsRefMatchRegex = /(?:git::)?((?:http|https|ssh):\/\/(?:.*@)?(.*.*\/(.*\/.*)))\?ref=(.*)$/; export function extractPackageFile(content: string): PackageFile | null { logger.trace({ content }, 'terraform.extractPackageFile()'); @@ -120,12 +122,8 @@ export function extractPackageFile(content: string): PackageFile | null { dep.managerData.terraformDependencyType === TerraformDependencyTypes.module ) { - const githubRefMatch = /github.com(\/|:)([^/]+\/[a-z0-9-.]+).*\?ref=(.*)$/.exec( - dep.managerData.source - ); - const gitTagsRefMatch = /git::((?:http|https|ssh):\/\/(?:.*@)?(.*.*\/(.*\/.*)))\?ref=(.*)$/.exec( - dep.managerData.source - ); + const githubRefMatch = githubRefMatchRegex.exec(dep.managerData.source); + const gitTagsRefMatch = gitTagsRefMatchRegex.exec(dep.managerData.source); /* eslint-disable no-param-reassign */ if (githubRefMatch) { const depNameShort = githubRefMatch[2].replace(/\.git$/, '');