dependabot-terraform 0.154.5 → 0.156.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c2f99ef0a28f946419c0c91ff73277f5fc38c7fa138cca3798a7417d895cc9f
4
- data.tar.gz: fab6fff6a747012e09d87ef387577fbba7279ca46923797e2edbca3bd1ed227f
3
+ metadata.gz: 69ebba35c11cda0464908885855ed6cf732624e233843b23c3611b5926871153
4
+ data.tar.gz: 1d46629e2f0627a081af19f513f30760d9b7f11f557ba24fb6f38830bb6166c1
5
5
  SHA512:
6
- metadata.gz: 8aaccbbe38e0ccffaba559b7b095d25472d5cbce71381885abdf0a3a5268483ae22f60678b1489590e9009cd2654b2d17844cdb4c6b8bb1cd040d7789e74c82a
7
- data.tar.gz: e27dbba4b1d5d78d26afe0c023ddeb73114c86312ec0efe90f177f820525ea787e22b3bbd3966af0113c270108c098677367d2d38de245b0de1dee881f2c796e
6
+ metadata.gz: 7780476e6910b3ea4352c973e81be96f22bfc3ddf6eb46d98dab8769e72199aecb28948058cd97b9a605ead2a54e95285d80549fe968082472d823900c9c4c09
7
+ data.tar.gz: 76302461f7a9d596cb9f4ab7e9c72942bafbe62a6bb4fedbf6804f33358d8deefb3d0563a438cacae8acbcc001f8bacc0dc58de9484ff8e2a1a69e3091361694
@@ -17,3 +17,6 @@ Dependabot::PullRequestCreator::Labeler.
17
17
  require "dependabot/dependency"
18
18
  Dependabot::Dependency.
19
19
  register_production_check("terraform", ->(_) { true })
20
+
21
+ require "dependabot/utils"
22
+ Dependabot::Utils.register_always_clone("terraform")
@@ -11,6 +11,8 @@ module Dependabot
11
11
  class FileUpdater < Dependabot::FileUpdaters::Base
12
12
  include FileSelector
13
13
 
14
+ PRIVATE_MODULE_ERROR = /Could not download module.*code from\n.*\"(?<repo>\S+)\":/.freeze
15
+
14
16
  def self.updated_files_regex
15
17
  [/\.tf$/, /\.hcl$/]
16
18
  end
@@ -94,15 +96,16 @@ module Dependabot
94
96
  return if lock_file.nil?
95
97
 
96
98
  new_req = dependency.requirements.first
97
- content = lock_file.content.dup
99
+ # NOTE: Only providers are inlcuded in the lockfile, modules are not
100
+ return unless new_req[:source][:type] == "provider"
98
101
 
102
+ content = lock_file.content.dup
99
103
  provider_source = new_req[:source][:registry_hostname] + "/" + new_req[:source][:module_identifier]
100
104
  declaration_regex = lockfile_declaration_regex(provider_source)
101
105
  lockfile_dependency_removed = content.sub(declaration_regex, "")
102
106
 
103
- SharedHelpers.in_a_temporary_directory do
104
- write_dependency_files
105
-
107
+ base_dir = dependency_files.first.directory
108
+ SharedHelpers.in_a_temporary_repo_directory(base_dir, repo_contents_path) do
106
109
  File.write(".terraform.lock.hcl", lockfile_dependency_removed)
107
110
  SharedHelpers.run_shell_command("terraform providers lock #{provider_source}")
108
111
 
@@ -121,19 +124,25 @@ module Dependabot
121
124
  # NOTE: Modules need to be installed before terraform can update the
122
125
  # lockfile
123
126
  @retrying_lock = true
124
- SharedHelpers.run_shell_command("terraform init")
127
+ run_terraform_init
125
128
  retry
126
129
  end
127
130
 
128
131
  content
129
132
  end
130
133
 
131
- def write_dependency_files
132
- dependency_files.each do |file|
133
- # Do not include the .terraform directory or .terraform.lock.hcl
134
- next if file.name.include?(".terraform")
134
+ def run_terraform_init
135
+ SharedHelpers.with_git_configured(credentials: credentials) do
136
+ # -backend=false option used to ignore any backend configuration, as these won't be accessible
137
+ # -input=false option used to immediately fail if it needs user input
138
+ # -no-color option used to prevent any color characters being printed in the output
139
+ SharedHelpers.run_shell_command("terraform init -backend=false -input=false -no-color")
140
+ rescue SharedHelpers::HelperSubprocessFailed => e
141
+ output = e.message
135
142
 
136
- File.write(file.name, file.content)
143
+ if output.match?(PRIVATE_MODULE_ERROR)
144
+ raise PrivateSourceAuthenticationFailure, output.match(PRIVATE_MODULE_ERROR).named_captures.fetch("repo")
145
+ end
137
146
  end
138
147
  end
139
148
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-terraform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.154.5
4
+ version: 0.156.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-22 00:00:00.000000000 Z
11
+ date: 2021-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dependabot-common
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.154.5
19
+ version: 0.156.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.154.5
26
+ version: 0.156.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.16.0
103
+ version: 1.17.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.16.0
110
+ version: 1.17.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement