Skip to content

Commit d0b7ca9

Browse files
authored
fix(terraform): respect provider registry from lockfile (renovatebot#41484)
1 parent 2fb68b9 commit d0b7ca9

File tree

2 files changed

+32
-5
lines changed

2 files changed

+32
-5
lines changed

lib/modules/manager/terraform/lockfile/index.spec.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ describe('modules/manager/terraform/lockfile/index', () => {
636636
]
637637
}
638638
639-
provider "registry.terraform.io/hashicorp/random" {
639+
provider "registry.opentofu.org/hashicorp/random" {
640640
version = "2.2.1"
641641
constraints = "~> 2.2"
642642
hashes = [
@@ -709,7 +709,7 @@ describe('modules/manager/terraform/lockfile/index', () => {
709709
]
710710
}
711711
712-
provider "registry.terraform.io/hashicorp/random" {
712+
provider "registry.opentofu.org/hashicorp/random" {
713713
version = "2.2.2"
714714
constraints = "~> 2.2"
715715
hashes = [
@@ -726,7 +726,31 @@ describe('modules/manager/terraform/lockfile/index', () => {
726726

727727
expect(mockHash.mock.calls).toEqual([
728728
['https://registry.terraform.io', 'hashicorp/azurerm', '2.56.0'],
729-
['https://registry.terraform.io', 'hashicorp/random', '2.2.2'],
729+
['https://registry.opentofu.org', 'hashicorp/random', '2.2.2'],
730+
]);
731+
732+
expect(mockGetPkgReleases.mock.calls).toEqual([
733+
[
734+
{
735+
datasource: 'terraform-provider',
736+
packageName: 'hashicorp/aws',
737+
registryUrls: ['https://registry.terraform.io'],
738+
},
739+
],
740+
[
741+
{
742+
datasource: 'terraform-provider',
743+
packageName: 'hashicorp/azurerm',
744+
registryUrls: ['https://registry.terraform.io'],
745+
},
746+
],
747+
[
748+
{
749+
datasource: 'terraform-provider',
750+
packageName: 'hashicorp/random',
751+
registryUrls: ['https://registry.opentofu.org'],
752+
},
753+
],
730754
]);
731755
});
732756

lib/modules/manager/terraform/lockfile/index.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { isTruthy } from '@sindresorhus/is';
22
import { logger } from '../../../../logger/index.ts';
33
import * as p from '../../../../util/promises.ts';
44
import { escapeRegExp, regEx } from '../../../../util/regex.ts';
5+
import { getDefaultVersioning } from '../../../datasource/common.ts';
56
import type { GetPkgReleasesConfig } from '../../../datasource/index.ts';
67
import { getPkgReleases } from '../../../datasource/index.ts';
78
import { get as getVersioning } from '../../../versioning/index.ts';
@@ -29,15 +30,17 @@ async function updateAllLocks(
2930
locks,
3031
async (lock) => {
3132
const updateConfig: GetPkgReleasesConfig = {
32-
versioning: 'hashicorp',
3333
datasource: 'terraform-provider',
3434
packageName: lock.packageName,
35+
registryUrls: [lock.registryUrl],
3536
};
3637
const { releases } = (await getPkgReleases(updateConfig)) ?? {};
3738
if (!releases) {
3839
return null;
3940
}
40-
const versioning = getVersioning(updateConfig.versioning);
41+
const versioning = getVersioning(
42+
getDefaultVersioning('terraform-provider'),
43+
);
4144
const versionsList = releases.map((release) => release.version);
4245
const newVersion = versioning.getSatisfyingVersion(
4346
versionsList,

0 commit comments

Comments
 (0)