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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1940c94cf36d511b5f215cde7e6ef9e5d9944253b02425678d3ccba855d211d3
4
- data.tar.gz: 8febc5b9b592e91b15ceba2019f517211a8ee09cecd08e53c80af823fe92925c
3
+ metadata.gz: 93874f4fa274efc129c5c7ff14ab4dfa46441ffc9049d4a81704606c7437d6e5
4
+ data.tar.gz: d2c9bb9d72834b18f28e4298e3d20ce77901d9886e1c1f24331f2d97779143c3
5
5
  SHA512:
6
- metadata.gz: ae2243b9bbf0c9e61b2bf0cb92849f00a557cd4e45ba137ea4831454faec879d77fd666636aa6a820b27daa505af77d42acea5a9ed57f5e74917ea59ce131203
7
- data.tar.gz: dc40d3d659ffe40a08fd7d2912e9a2eeb09ae009f2bd4c8e73c5b2e096e511ec8def4e37f662a1057cf0b9c9a4b357b1d3559be0764ad46713aaf0aaec68e8e7
6
+ metadata.gz: 9fe963e3ac7cd4aa6a11ac5efef9378da062f3f2c00c717b304f99cfa1076c5ee32eab65a9aa82a2325f3371a3872f9dcd5ed10ced00855a9168c34e9650e35a
7
+ data.tar.gz: d74d15915a706e8e027a5753fa58bd1d7a8655af192d9619746bb06b0b330dd728302749d2b08efb98cd449116eb045aec47b527fcda02b4fb6f9315a7aa3f95
@@ -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")
@@ -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
- content = lock_file.content.dup
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
- SharedHelpers.in_a_temporary_directory do
104
- write_dependency_files
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*["'](#{Regexp.escape(registry_host_for(dependency))}/)?#{Regexp.escape(dependency.name)}["']
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.154.3
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-21 00:00:00.000000000 Z
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.154.3
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.154.3
26
+ version: 0.156.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement