diff --git a/lib/modules/manager/terragrunt/__fixtures__/2.hcl b/lib/modules/manager/terragrunt/__fixtures__/2.hcl index 3c41a5dfc360a0..8aab1449c049f9 100644 --- a/lib/modules/manager/terragrunt/__fixtures__/2.hcl +++ b/lib/modules/manager/terragrunt/__fixtures__/2.hcl @@ -155,6 +155,11 @@ terraform { source = "git::ssh://git@mygit.com/hashicorp/example?ref=v1.0.3" } +# gittags_ssh_subdir +terraform { + source = "git::ssh://git@mygit.com/hashicorp/example//subdir/test?ref=v1.0.4" +} + # invalid, ignored by test since it does not have source on the next line terraform { } diff --git a/lib/modules/manager/terragrunt/__fixtures__/3.hcl b/lib/modules/manager/terragrunt/__fixtures__/3.hcl index 24e81c345cfc7b..22079aae6c9fe9 100644 --- a/lib/modules/manager/terragrunt/__fixtures__/3.hcl +++ b/lib/modules/manager/terragrunt/__fixtures__/3.hcl @@ -155,6 +155,11 @@ terraform { source = "git::ssh://git@mygit.com/hashicorp/example?ref=v1.0.3&depth=1" } +# gittags_ssh_subdir +terraform { + source = "git::ssh://git@mygit.com/hashicorp/example//subdir/test?ref=v1.0.4&depth=1" +} + # invalid, ignored by test since it does not have source on the next line terraform { } diff --git a/lib/modules/manager/terragrunt/__fixtures__/4.hcl b/lib/modules/manager/terragrunt/__fixtures__/4.hcl index 8ac54753fe0d21..ae2e971f0a4522 100644 --- a/lib/modules/manager/terragrunt/__fixtures__/4.hcl +++ b/lib/modules/manager/terragrunt/__fixtures__/4.hcl @@ -155,6 +155,11 @@ terraform { source = "git::ssh://git@mygit.com/hashicorp/example?depth=1&ref=v1.0.3" } +# gittags_ssh_subdir +terraform { + source = "git::ssh://git@mygit.com/hashicorp/example//subdir/test?depth=1&ref=v1.0.4" +} + # invalid, ignored by test since it does not have source on the next line terraform { } diff --git a/lib/modules/manager/terragrunt/extract.spec.ts b/lib/modules/manager/terragrunt/extract.spec.ts index a87f17f6002fe8..8515b80be1a9f3 100644 --- a/lib/modules/manager/terragrunt/extract.spec.ts +++ b/lib/modules/manager/terragrunt/extract.spec.ts @@ -200,6 +200,13 @@ describe('modules/manager/terragrunt/extract', () => { depType: 'gitTags', packageName: 'ssh://git@mygit.com/hashicorp/example', }, + { + currentValue: 'v1.0.4', + datasource: 'git-tags', + depName: 'mygit.com/hashicorp/example', + depType: 'gitTags', + packageName: 'ssh://git@mygit.com/hashicorp/example', + }, { skipReason: 'no-source', }, @@ -255,7 +262,7 @@ describe('modules/manager/terragrunt/extract', () => { }, ], }); - expect(res?.deps).toHaveLength(36); + expect(res?.deps).toHaveLength(37); expect(res?.deps.filter((dep) => dep.skipReason)).toHaveLength(4); }); @@ -418,6 +425,13 @@ describe('modules/manager/terragrunt/extract', () => { depType: 'gitTags', packageName: 'ssh://git@mygit.com/hashicorp/example', }, + { + currentValue: 'v1.0.4', + datasource: 'git-tags', + depName: 'mygit.com/hashicorp/example', + depType: 'gitTags', + packageName: 'ssh://git@mygit.com/hashicorp/example', + }, { skipReason: 'no-source', }, @@ -466,7 +480,7 @@ describe('modules/manager/terragrunt/extract', () => { }, ], }); - expect(res?.deps).toHaveLength(35); + expect(res?.deps).toHaveLength(36); expect(res?.deps.filter((dep) => dep.skipReason)).toHaveLength(4); }); @@ -629,6 +643,13 @@ describe('modules/manager/terragrunt/extract', () => { depType: 'gitTags', packageName: 'ssh://git@mygit.com/hashicorp/example', }, + { + currentValue: 'v1.0.4', + datasource: 'git-tags', + depName: 'mygit.com/hashicorp/example', + depType: 'gitTags', + packageName: 'ssh://git@mygit.com/hashicorp/example', + }, { skipReason: 'no-source', }, @@ -677,7 +698,7 @@ describe('modules/manager/terragrunt/extract', () => { }, ], }); - expect(res?.deps).toHaveLength(35); + expect(res?.deps).toHaveLength(36); expect(res?.deps.filter((dep) => dep.skipReason)).toHaveLength(4); }); diff --git a/lib/modules/manager/terragrunt/modules.ts b/lib/modules/manager/terragrunt/modules.ts index 0079b18581303b..8ffb23897bb078 100644 --- a/lib/modules/manager/terragrunt/modules.ts +++ b/lib/modules/manager/terragrunt/modules.ts @@ -87,7 +87,7 @@ export function analyseTerragruntModule( dep.datasource = detectGitTagDatasource(url); if (dep.datasource === GitTagsDatasource.id) { if (containsSubDirectory) { - dep.packageName = `${origin}${pathname.split('//')[0]}`; + dep.packageName = `${protocol}//${host}${pathname.split('//')[0]}`; } else { dep.packageName = url; }