dependabot-common 0.112.9 → 0.112.10

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: 0010f0be767b7e831bd3b5d800f654e2e6d4e9704e5d6c3bd7992cac538ad602
4
- data.tar.gz: 1ba423e2ed36e2d759e6a1ece7c0da8bf1b7645e790052eb1bc3a60651818b8f
3
+ metadata.gz: bd7eb33e16f8ff1807f09f20ed43ab05a0698ab0f7c120e47048aa3e44525dcc
4
+ data.tar.gz: 8a3c5defc616266504e0b01c4f751d69416155837902bf4dad4458c4c189e751
5
5
  SHA512:
6
- metadata.gz: 398dd8c59f2e8138cb60ae18d2dfbc8f9bac759d941a64bad9f91c214f14e3e4861fadc997474fdde32b81406d171459a35939c893567f1ad95e291e32746ade
7
- data.tar.gz: 8b0a711173b4b46ac602dcecacc3c6f1505d58af92022c78bc9a08667d62df0c5a25d264bb90d98237d12ce02e0604a99e794cf3825a48ee501f000aed3188af
6
+ metadata.gz: efd76369fdf023e2b458855a1ad2ad87fb08069e2c63763c0d1a717d1c8d6d3ec0f75205d3d8dd86d83dd759fd019c6efd35a870186c246427dc9ae5d59d9c6d
7
+ data.tar.gz: 9fa11f2ee914d3f7dc6a87a7086e7339506d34175b03bac01fb683f2c37df5f3938a7bb3066e27a4c41c91cebbc85619d2bdd9fb2a40a3b22583f0c2505c5177
@@ -12,6 +12,7 @@ require "dependabot/source"
12
12
  require "dependabot/dependency"
13
13
  require "dependabot/git_metadata_fetcher"
14
14
 
15
+ # rubocop:disable Metrics/ClassLength
15
16
  module Dependabot
16
17
  class GitCommitChecker
17
18
  VERSION_REGEX = /
@@ -58,6 +59,15 @@ module Dependabot
58
59
  dependency_source_details.fetch(:ref).match?(VERSION_REGEX)
59
60
  end
60
61
 
62
+ def pinned_ref_looks_like_commit_sha?
63
+ return false unless pinned?
64
+
65
+ ref = dependency_source_details.fetch(:ref)
66
+ return false unless ref.match?(/^[0-9a-f]{6,40}$/)
67
+
68
+ local_repo_git_metadata_fetcher.head_commit_for_ref(ref).nil?
69
+ end
70
+
61
71
  def branch_or_ref_in_release?(version)
62
72
  pinned_ref_in_release?(version) || branch_behind_release?(version)
63
73
  end
@@ -352,3 +362,4 @@ module Dependabot
352
362
  end
353
363
  end
354
364
  end
365
+ # rubocop:enable Metrics/ClassLength
@@ -64,12 +64,12 @@ module Dependabot
64
64
  # case, the best we can do is return nil.
65
65
  return [] unless releases.any?
66
66
 
67
- if updated_release && version_class.correct?(dependency.version)
67
+ if updated_release && version_class.correct?(new_version)
68
68
  releases = filter_releases_using_updated_release(releases)
69
69
  filter_releases_using_updated_version(releases, conservative: true)
70
70
  elsif updated_release
71
71
  filter_releases_using_updated_release(releases)
72
- elsif version_class.correct?(dependency.version)
72
+ elsif version_class.correct?(new_version)
73
73
  filter_releases_using_updated_version(releases, conservative: false)
74
74
  else
75
75
  [updated_release].compact
@@ -77,7 +77,6 @@ module Dependabot
77
77
  end
78
78
 
79
79
  def releases_since_previous_version
80
- previous_version = dependency.previous_version
81
80
  return [updated_release].compact unless previous_version
82
81
 
83
82
  if previous_release && version_class.correct?(previous_version)
@@ -108,8 +107,6 @@ module Dependabot
108
107
  end
109
108
 
110
109
  def filter_releases_using_previous_version(releases, conservative:)
111
- previous_version = version_class.new(dependency.previous_version)
112
-
113
110
  releases.reject do |release|
114
111
  cleaned_tag = release.tag_name.gsub(/^[^0-9]*/, "")
115
112
  cleaned_name = release.name&.gsub(/^[^0-9]*/, "")
@@ -125,12 +122,12 @@ module Dependabot
125
122
 
126
123
  # Reject any releases that are less than the previous version
127
124
  # (e.g., if two major versions are being maintained)
128
- tag_version <= previous_version
125
+ tag_version <= version_class.new(previous_version)
129
126
  end
130
127
  end
131
128
 
132
129
  def filter_releases_using_updated_version(releases, conservative:)
133
- updated_version = version_class.new(dependency.version)
130
+ updated_version = version_class.new(new_version)
134
131
 
135
132
  releases.reject do |release|
136
133
  cleaned_tag = release.tag_name.gsub(/^[^0-9]*/, "")
@@ -152,11 +149,11 @@ module Dependabot
152
149
  end
153
150
 
154
151
  def updated_release
155
- release_for_version(dependency.version)
152
+ release_for_version(new_version)
156
153
  end
157
154
 
158
155
  def previous_release
159
- release_for_version(dependency.previous_version)
156
+ release_for_version(previous_version)
160
157
  end
161
158
 
162
159
  def release_for_version(version)
@@ -246,6 +243,48 @@ module Dependabot
246
243
  []
247
244
  end
248
245
 
246
+ def previous_version
247
+ # If we don't have a previous version, we *may* still be able to
248
+ # figure one out if a ref was provided and has been changed (in which
249
+ # case the previous ref was essentially the version).
250
+ if dependency.previous_version.nil?
251
+ return ref_changed? ? previous_ref : nil
252
+ end
253
+
254
+ if dependency.previous_version.match?(/^[0-9a-f]{40}$/) &&
255
+ ref_changed?
256
+ previous_ref
257
+ else
258
+ dependency.previous_version
259
+ end
260
+ end
261
+
262
+ def new_version
263
+ if dependency.version.match?(/^[0-9a-f]{40}$/) && ref_changed?
264
+ return new_ref
265
+ end
266
+
267
+ dependency.version
268
+ end
269
+
270
+ def previous_ref
271
+ dependency.previous_requirements.map do |r|
272
+ r.dig(:source, "ref") || r.dig(:source, :ref)
273
+ end.compact.first
274
+ end
275
+
276
+ def new_ref
277
+ dependency.requirements.map do |r|
278
+ r.dig(:source, "ref") || r.dig(:source, :ref)
279
+ end.compact.first
280
+ end
281
+
282
+ def ref_changed?
283
+ return false unless previous_ref
284
+
285
+ previous_ref != new_ref
286
+ end
287
+
249
288
  def gitlab_client
250
289
  @gitlab_client ||= Dependabot::Clients::GitlabWithRetries.
251
290
  for_gitlab_dot_com(credentials: credentials)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.112.9"
4
+ VERSION = "0.112.10"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.112.9
4
+ version: 0.112.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-21 00:00:00.000000000 Z
11
+ date: 2019-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-ecr