dependabot-terraform 0.154.3 → 0.156.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dependabot/terraform.rb +3 -0
- data/lib/dependabot/terraform/file_updater.rb +19 -15
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93874f4fa274efc129c5c7ff14ab4dfa46441ffc9049d4a81704606c7437d6e5
|
4
|
+
data.tar.gz: d2c9bb9d72834b18f28e4298e3d20ce77901d9886e1c1f24331f2d97779143c3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9fe963e3ac7cd4aa6a11ac5efef9378da062f3f2c00c717b304f99cfa1076c5ee32eab65a9aa82a2325f3371a3872f9dcd5ed10ced00855a9168c34e9650e35a
|
7
|
+
data.tar.gz: d74d15915a706e8e027a5753fa58bd1d7a8655af192d9619746bb06b0b330dd728302749d2b08efb98cd449116eb045aec47b527fcda02b4fb6f9315a7aa3f95
|
data/lib/dependabot/terraform.rb
CHANGED
@@ -90,19 +90,20 @@ module Dependabot
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
def update_lockfile_declaration
|
93
|
+
def update_lockfile_declaration # rubocop:disable Metrics/AbcSize
|
94
94
|
return if lock_file.nil?
|
95
95
|
|
96
96
|
new_req = dependency.requirements.first
|
97
|
-
|
97
|
+
# NOTE: Only providers are inlcuded in the lockfile, modules are not
|
98
|
+
return unless new_req[:source][:type] == "provider"
|
98
99
|
|
100
|
+
content = lock_file.content.dup
|
99
101
|
provider_source = new_req[:source][:registry_hostname] + "/" + new_req[:source][:module_identifier]
|
100
102
|
declaration_regex = lockfile_declaration_regex(provider_source)
|
101
103
|
lockfile_dependency_removed = content.sub(declaration_regex, "")
|
102
104
|
|
103
|
-
|
104
|
-
|
105
|
-
|
105
|
+
base_dir = dependency_files.first.directory
|
106
|
+
SharedHelpers.in_a_temporary_repo_directory(base_dir, repo_contents_path) do
|
106
107
|
File.write(".terraform.lock.hcl", lockfile_dependency_removed)
|
107
108
|
SharedHelpers.run_shell_command("terraform providers lock #{provider_source}")
|
108
109
|
|
@@ -115,20 +116,19 @@ module Dependabot
|
|
115
116
|
content.scan(declaration_regex).first.scan(/^\s*version\s*=.*/)
|
116
117
|
content.sub!(declaration_regex, updated_dependency)
|
117
118
|
end
|
119
|
+
rescue SharedHelpers::HelperSubprocessFailed => e
|
120
|
+
raise if @retrying_lock || !e.message.include?("terraform init")
|
121
|
+
|
122
|
+
# NOTE: Modules need to be installed before terraform can update the
|
123
|
+
# lockfile
|
124
|
+
@retrying_lock = true
|
125
|
+
SharedHelpers.run_shell_command("terraform init")
|
126
|
+
retry
|
118
127
|
end
|
119
128
|
|
120
129
|
content
|
121
130
|
end
|
122
131
|
|
123
|
-
def write_dependency_files
|
124
|
-
dependency_files.each do |file|
|
125
|
-
# Do not include the .terraform directory or .terraform.lock.hcl
|
126
|
-
next if file.name.include?(".terraform")
|
127
|
-
|
128
|
-
File.write(file.name, file.content)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
132
|
def dependency
|
133
133
|
# Terraform updates will only ever be updating a single dependency
|
134
134
|
dependencies.first
|
@@ -157,7 +157,11 @@ module Dependabot
|
|
157
157
|
%r{
|
158
158
|
(?<=\{)
|
159
159
|
(?:(?!^\}).)*
|
160
|
-
source\s*=\s*["']
|
160
|
+
source\s*=\s*["']
|
161
|
+
(#{Regexp.escape(registry_host_for(dependency))}/)?
|
162
|
+
#{Regexp.escape(dependency.name)}
|
163
|
+
(//modules/\S+)?
|
164
|
+
["']
|
161
165
|
(?:(?!^\}).)*
|
162
166
|
}mx
|
163
167
|
end
|
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.
|
4
|
+
version: 0.156.0
|
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-
|
11
|
+
date: 2021-06-23 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.
|
19
|
+
version: 0.156.0
|
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.
|
26
|
+
version: 0.156.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|