dependabot-common 0.95.29 → 0.95.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51ab8a1d3293589fe1477093a78ed847908cf3a3dfbb6e336c761dcf3cdcdcb4
4
- data.tar.gz: ab73df799221419d36c6e26420c2015e60d69c1b62b43b10d70a7633d436a0c3
3
+ metadata.gz: 83386b9078fd248c7a66d8de4831b6bf49cb4d6af023b53ac5d24a86e7ba4e2e
4
+ data.tar.gz: b888dbda704067bfae6de99e70850bfcb4627e99c28cf2cc54fee80b18c6dcd9
5
5
  SHA512:
6
- metadata.gz: be01459381d8a9990d03921f2952a5b2c2cac0c472b9dbaa3029f45886c083a7002625280936b21109aeff72c9340d7ec1b2a7b1e0218d70b0c4def82bff9819
7
- data.tar.gz: 842019622a8b0c67d2a57af00bbb5df0edebeb40d0a3811200e3ae8586d625c496abafa34d8142965b6e2790983dfe90546e0cbba4399d5f82e119e8f9d8769c
6
+ metadata.gz: 72ec9342c004c6e5ee02f7ea882177bfdf0bec4a56a16347a58ff41d72ae2ef7a659bbd51890dede393a0cf2659366866ba601fe2885d52d1dea7adc32850b4b
7
+ data.tar.gz: 93ba37ea3dbe77939be424902c6e81e3564dc78c70b3130da5deee1720df2066f492d9f3c7cad92cc3865bdd62ed68a58416f48c15466e702ff48ebc4ea07278
@@ -66,13 +66,32 @@ module Dependabot
66
66
 
67
67
  if git_source?(dependency.previous_requirements)
68
68
  previous_version || previous_ref
69
- else
69
+ elsif previous_version
70
70
  tags = dependency_tags.
71
71
  select { |t| t =~ version_regex(previous_version) }
72
72
  tags.find { |t| t.include?(dependency.name) } || tags.first
73
+ else
74
+ lowest_tag_satisfying_previous_requirements
73
75
  end
74
76
  end
75
77
 
78
+ def lowest_tag_satisfying_previous_requirements
79
+ tags = dependency_tags.
80
+ select { |t| version_class.correct?(t.gsub(/^v/, "")) }.
81
+ select do |t|
82
+ version = version_class.new(t.gsub(/^v/, ""))
83
+ dependency.previous_requirements.all? do |req|
84
+ next true unless req.fetch(:requirement)
85
+
86
+ requirement_class.
87
+ requirements_array(req.fetch(:requirement)).
88
+ all? { |r| r.satisfied_by?(version) }
89
+ end
90
+ end
91
+
92
+ tags.min_by { |t| version_class.new(t.gsub(/^v/, "")) }
93
+ end
94
+
76
95
  # TODO: Refactor me so that Composer doesn't need to be special cased
77
96
  def git_source?(requirements)
78
97
  # Special case Composer, which uses git as a source but handles tags
@@ -215,6 +234,16 @@ module Dependabot
215
234
  @bitbucket_client ||= Dependabot::Clients::Bitbucket.
216
235
  for_bitbucket_dot_org(credentials: credentials)
217
236
  end
237
+
238
+ def version_class
239
+ Utils.version_class_for_package_manager(dependency.package_manager)
240
+ end
241
+
242
+ def requirement_class
243
+ Utils.requirement_class_for_package_manager(
244
+ dependency.package_manager
245
+ )
246
+ end
218
247
  end
219
248
  end
220
249
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.95.29"
4
+ VERSION = "0.95.30"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.95.29
4
+ version: 0.95.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot