Class: Dependabot::Terraform::FileUpdater::ProviderCliConfigBuilder

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/terraform/file_updater/provider_cli_config_builder.rb

Overview

Builds a Terraform CLI config that uses dev_overrides for non-target providers, preventing Terraform from resolving private/custom providers during lockfile updates.

Constant Summary collapse

DEFAULT_REGISTRY =
"registry.terraform.io"
DEFAULT_NAMESPACE =
"hashicorp"

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, terraform_files:) ⇒ ProviderCliConfigBuilder

Returns a new instance of ProviderCliConfigBuilder.



30
31
32
33
34
35
# File 'lib/dependabot/terraform/file_updater/provider_cli_config_builder.rb', line 30

def initialize(dependency:, terraform_files:)
  @dependency = dependency
  @terraform_files = terraform_files
  @terraform_cli_config_path = T.let(nil, T.nilable(String))
  @dev_override_dir = T.let(nil, T.nilable(String))
end

Instance Method Details

#cleanupObject



47
48
49
50
51
52
53
54
55
56
# File 'lib/dependabot/terraform/file_updater/provider_cli_config_builder.rb', line 47

def cleanup
  if @terraform_cli_config_path
    FileUtils.rm_f(@terraform_cli_config_path)
    @terraform_cli_config_path = nil
  end
  return unless @dev_override_dir

  FileUtils.rm_rf(@dev_override_dir)
  @dev_override_dir = nil
end

#envObject



38
39
40
41
42
43
44
# File 'lib/dependabot/terraform/file_updater/provider_cli_config_builder.rb', line 38

def env
  sources = non_target_provider_sources
  return {} if sources.empty?

  config_path = generate_provider_dev_overrides_config(sources)
  { "TF_CLI_CONFIG_FILE" => config_path }
end