dependabot-go_modules 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: 91f4a2a6a8b3b8379aac02c33906653c2c417d2a60f04458e37a76b45d649864
4
- data.tar.gz: b0326bdf06a8d32321d8883947f4d81537ab183d8a56b8e83f9af08ae15e20c5
3
+ metadata.gz: d3bb56b6afd1bb95fd441662d261a227449a4ed3de7af71c6ff2ec24a9a5ca28
4
+ data.tar.gz: 8f460e17cb519c6c4b402203daede24179e40bf4b8f54783eb7f880f4b1c4ae3
5
5
  SHA512:
6
- metadata.gz: 41697b9f2bbf40a022d5f944e722ccafb2de8f657ea807cc96e2d174f631d6c7ece1ddd47b1f5f82399677948ee3bf9a42cb4a374e6572024e18dfb4d1a75211
7
- data.tar.gz: 3fd772a52ddc630b59e7e92d3f84f3f248cd289908ed5159de576e4f796152396da60720071f00eefdaecb547a9212aa350236d4ab2740d014a98ae71f165d25
6
+ metadata.gz: f7a3735400081c65d3188b02a777c60828e2a291c9297b8210565a0ac7a3f7cb1f83f5523d7c7cf51b8021d9051fd4aa9ddd368b728f0f206ef0646187b4f410
7
+ data.tar.gz: 2c1528d8978402e7b9fbd995e11624408cd2b7ec6c144e7aa344f8cb8e5e0a5181fb2950e671a9bf38b38e12e482792f2ad2028ea51033e77cb608e01e1f08ec
@@ -24,14 +24,7 @@ module Dependabot
24
24
  return version_class.new(dependency.version)
25
25
  end
26
26
 
27
- @latest_resolvable_version ||=
28
- LatestVersionFinder.new(
29
- dependency: dependency,
30
- dependency_files: dependency_files,
31
- credentials: credentials,
32
- ignored_versions: ignored_versions,
33
- raise_on_ignored: raise_on_ignored
34
- ).latest_version
27
+ latest_version_finder.latest_version
35
28
  end
36
29
 
37
30
  # This is currently used to short-circuit latest_resolvable_version,
@@ -41,6 +34,22 @@ module Dependabot
41
34
  latest_resolvable_version
42
35
  end
43
36
 
37
+ def lowest_resolvable_security_fix_version
38
+ raise "Dependency not vulnerable!" unless vulnerable?
39
+
40
+ unless dependency.top_level?
41
+ return unless dependency.version
42
+
43
+ return version_class.new(dependency.version)
44
+ end
45
+
46
+ lowest_security_fix_version
47
+ end
48
+
49
+ def lowest_security_fix_version
50
+ latest_version_finder.lowest_security_fix_version
51
+ end
52
+
44
53
  def latest_resolvable_version_with_no_unlock
45
54
  # Irrelevant, since Go modules uses a single dependency file
46
55
  nil
@@ -54,6 +63,18 @@ module Dependabot
54
63
 
55
64
  private
56
65
 
66
+ def latest_version_finder
67
+ @latest_version_finder ||=
68
+ LatestVersionFinder.new(
69
+ dependency: dependency,
70
+ dependency_files: dependency_files,
71
+ credentials: credentials,
72
+ ignored_versions: ignored_versions,
73
+ security_advisories: security_advisories,
74
+ raise_on_ignored: raise_on_ignored
75
+ )
76
+ end
77
+
57
78
  def latest_version_resolvable_with_full_unlock?
58
79
  # Full unlock checks aren't implemented for Go (yet)
59
80
  false
@@ -3,6 +3,7 @@
3
3
  require "excon"
4
4
 
5
5
  require "dependabot/go_modules/update_checker"
6
+ require "dependabot/update_checkers/version_filters"
6
7
  require "dependabot/shared_helpers"
7
8
  require "dependabot/errors"
8
9
  require "dependabot/go_modules/requirement"
@@ -23,11 +24,12 @@ module Dependabot
23
24
  PSEUDO_VERSION_REGEX = /\b\d{14}-[0-9a-f]{12}$/.freeze
24
25
 
25
26
  def initialize(dependency:, dependency_files:, credentials:,
26
- ignored_versions:, raise_on_ignored: false)
27
+ ignored_versions:, security_advisories:, raise_on_ignored: false)
27
28
  @dependency = dependency
28
29
  @dependency_files = dependency_files
29
30
  @credentials = credentials
30
31
  @ignored_versions = ignored_versions
32
+ @security_advisories = security_advisories
31
33
  @raise_on_ignored = raise_on_ignored
32
34
  end
33
35
 
@@ -35,9 +37,13 @@ module Dependabot
35
37
  @latest_version ||= fetch_latest_version
36
38
  end
37
39
 
40
+ def lowest_security_fix_version
41
+ @lowest_security_fix_version ||= fetch_lowest_security_fix_version
42
+ end
43
+
38
44
  private
39
45
 
40
- attr_reader :dependency, :dependency_files, :credentials, :ignored_versions
46
+ attr_reader :dependency, :dependency_files, :credentials, :ignored_versions, :security_advisories
41
47
 
42
48
  def fetch_latest_version
43
49
  return dependency.version if dependency.version =~ PSEUDO_VERSION_REGEX
@@ -49,6 +55,19 @@ module Dependabot
49
55
  candidate_versions.max
50
56
  end
51
57
 
58
+ def fetch_lowest_security_fix_version
59
+ return dependency.version if dependency.version =~ PSEUDO_VERSION_REGEX
60
+
61
+ relevant_versions = available_versions
62
+ relevant_versions = filter_prerelease_versions(relevant_versions)
63
+ relevant_versions = Dependabot::UpdateCheckers::VersionFilters.filter_vulnerable_versions(relevant_versions,
64
+ security_advisories)
65
+ relevant_versions = filter_ignored_versions(relevant_versions)
66
+ relevant_versions = filter_lower_versions(relevant_versions)
67
+
68
+ relevant_versions.min
69
+ end
70
+
52
71
  def available_versions
53
72
  SharedHelpers.in_a_temporary_directory do
54
73
  SharedHelpers.with_git_configured(credentials: credentials) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-go_modules
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