dependabot-bundler 0.111.44 → 0.111.45

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: 044f9da15a311d958b6c4693b85ffb6f7a1d782508ef4fbb1181ff9a0945fad6
4
- data.tar.gz: e5c73dbc0eb90a0b72a6f8b6a938aaad0b19556345d134f2da206afa9c8569c2
3
+ metadata.gz: 434077da7467bab17f22eb59bc69017a8d8c52986cbc2aa85206e577635919aa
4
+ data.tar.gz: e0cc87b65eb47012f85e8b0a458744641ee08d5dba5f08d95490b5e2efafb8f1
5
5
  SHA512:
6
- metadata.gz: 35655299d02e55020f0250e19b96eaee74e87a0e36d6d48eb48128212d4ae4072cde2c64d6d7e9a4642e8bc2d3764d6045f6a2836cb581f51334c9f8dc6bbcc9
7
- data.tar.gz: 5dc3180bbd906d8c40631726e71432a2d9c02f001ffbf28fb76536c7b30cfcc0efbaaf1ba0f6ff2bbbd170574bca910d29ca42f8c239aeb73eada82607a8c161
6
+ metadata.gz: 1d27744edc8bda9880770cd2a630c0e95c74e5f9937ab4d8b6ac7bc959ae1334bb74fae6277e5a2d03c104f0446607e339b95de92094042fc890b1fa3c57dc8a
7
+ data.tar.gz: 53165e4eaab20842e9a884a263953ac41d75291e7952db2049ae75e14762a5230aee1a262beb7c44054680fe8ca5d2b0f81a00208bc07c73dca727614005dbbe
@@ -106,7 +106,13 @@ module Dependabot
106
106
  name: dependency.name,
107
107
  version: dependency_version(dependency.name)&.to_s,
108
108
  requirements: [],
109
- package_manager: "bundler"
109
+ package_manager: "bundler",
110
+ subdependency_metadata:
111
+ if production_dependency_names.include?(dependency.name)
112
+ [{ production: true }]
113
+ else
114
+ [{ production: false }]
115
+ end
110
116
  )
111
117
  end
112
118
 
@@ -279,6 +285,36 @@ module Dependabot
279
285
  ::Bundler::LockfileParser.new(sanitized_lockfile_content)
280
286
  end
281
287
 
288
+ def production_dependency_names
289
+ @production_dependency_names ||=
290
+ (gemfile_dependencies + gemspec_dependencies).dependencies.
291
+ select { |dep| production?(dep) }.
292
+ flat_map { |dep| expanded_dependency_names(dep) }.
293
+ uniq
294
+ end
295
+
296
+ def expanded_dependency_names(dep)
297
+ spec = parsed_lockfile.specs.find { |s| s.name == dep.name }
298
+ return [dep.name] unless spec
299
+
300
+ [
301
+ dep.name,
302
+ *spec.dependencies.flat_map { |d| expanded_dependency_names(d) }
303
+ ]
304
+ end
305
+
306
+ def production?(dependency)
307
+ groups = dependency.requirements.
308
+ flat_map { |r| r.fetch(:groups) }.
309
+ map(&:to_s)
310
+
311
+ return true if groups.empty?
312
+ return true if groups.include?("runtime")
313
+ return true if groups.include?("default")
314
+
315
+ groups.any? { |g| g.include?("prod") }
316
+ end
317
+
282
318
  def sanitized_lockfile_content
283
319
  regex = FileUpdater::LockfileUpdater::LOCKFILE_ENDING
284
320
  lockfile.content.gsub(regex, "")
@@ -300,5 +336,4 @@ module Dependabot
300
336
  end
301
337
  end
302
338
 
303
- Dependabot::FileParsers.
304
- register("bundler", Dependabot::Bundler::FileParser)
339
+ Dependabot::FileParsers.register("bundler", Dependabot::Bundler::FileParser)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.111.44
4
+ version: 0.111.45
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.111.44
19
+ version: 0.111.45
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.111.44
26
+ version: 0.111.45
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement