dependabot-go_modules 0.154.2 → 0.155.1

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: 73c298cca4dd5af16d6655240434cc8c568442b9c924cc1f796bb5ba94913fdb
4
- data.tar.gz: cbdbfca7047df18ee416ca85841b31ceb5ef89d86ee280ea21ccdb70e4a45f2c
3
+ metadata.gz: 4129bd88effbb6a08eef94c1bcf038659b3c625f6663a47b21319f9af8875fb3
4
+ data.tar.gz: ee8e0cd235120bb93b598da4f1fc8afa22dac9f4460340c64e32debce37caa62
5
5
  SHA512:
6
- metadata.gz: 9a789ca9b5e70454db4ff51732162f421311376d6d8a263ba2545e028499987e8734838861295d6341aab82874d53613a70de9d6d808b1e9d093760f6e0a8707
7
- data.tar.gz: 307f712dee4f8c3a742d980f57b3242bd91e283581dd88b91a451e9ad19d9c08a5ab0029864437a1f5c646fe7140a50f53c61747e2b9c9107a59776a3b0d1025
6
+ metadata.gz: db522a53f2f73b4bc578290afab334da56a3190956248e1a5d11443d85c142d3d5ce998ebc45bddfc222ddcc2174402d842ae0882a083a7ec3803eeb9ad7293b
7
+ data.tar.gz: 74ba7c3b473a792525abc934d27c8fffb0227e500b5d62c2428d20683304128024dae0010a316e55e1154b5b80751c4547139400a977055adf5f0adeb44576a0
@@ -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.2
4
+ version: 0.155.1
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-17 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.2
19
+ version: 0.155.1
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.2
26
+ version: 0.155.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement