dependabot-go_modules 0.128.2 → 0.129.4
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8f7a2c4bb77e9289dd8673f71692a0ad30600fa56a924057b13c0539c2abbf1
|
4
|
+
data.tar.gz: 0c532fbe591362a72d8a063f91b0a416cbbd788c806a248d4d94ddcb60371edf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fa94982678e5c4a78481f43b90ecbf882da31bacddf3fbe34aa51f0d47e50a09a26d72d626d9fa6d8f832a6e21d7205568a4a9a8e1049f10df4d6a1ade7f25a
|
7
|
+
data.tar.gz: c0e66a28d79c1e82747e8844887332ff3da98c1c3914bf6a4d911c112e61be3df70bd68daa60069e045329b831daf1faa50b4586fa176717acb58dcd4c40a7e5
|
@@ -16,17 +16,8 @@ module Dependabot
|
|
16
16
|
def parse
|
17
17
|
dependency_set = Dependabot::FileParsers::Base::DependencySet.new
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
group_by { |line| line == "{\n" ? i += 1 : i }
|
22
|
-
deps = chunks.values.map { |chunk| JSON.parse(chunk.join) }
|
23
|
-
|
24
|
-
deps.each do |dep|
|
25
|
-
# The project itself appears in this list as "Main"
|
26
|
-
next if dep["Main"]
|
27
|
-
|
28
|
-
dependency = dependency_from_details(dep)
|
29
|
-
dependency_set << dependency if dependency
|
19
|
+
required_packages.each do |dep|
|
20
|
+
dependency_set << dependency_from_details(dep) unless dep["Indirect"]
|
30
21
|
end
|
31
22
|
|
32
23
|
dependency_set.dependencies
|
@@ -65,39 +56,36 @@ module Dependabot
|
|
65
56
|
)
|
66
57
|
end
|
67
58
|
|
68
|
-
def
|
69
|
-
@
|
59
|
+
def required_packages
|
60
|
+
@required_packages ||=
|
70
61
|
SharedHelpers.in_a_temporary_directory do |path|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
FileUtils.touch(File.join(stub_path, "go.mod"))
|
78
|
-
end
|
79
|
-
|
80
|
-
File.write("go.mod", go_mod_content)
|
81
|
-
|
82
|
-
command = "go mod edit -print > /dev/null"
|
83
|
-
command += " && go list -m -json all"
|
84
|
-
|
85
|
-
# Turn off the module proxy for now, as it's causing issues with
|
86
|
-
# private git dependencies
|
87
|
-
env = { "GOPRIVATE" => "*" }
|
88
|
-
|
89
|
-
stdout, stderr, status = Open3.capture3(env, command)
|
90
|
-
handle_parser_error(path, stderr) unless status.success?
|
91
|
-
stdout
|
92
|
-
rescue Dependabot::DependencyFileNotResolvable
|
93
|
-
# We sometimes see this error if a host times out.
|
94
|
-
# In such cases, retrying (a maximum of 3 times) may fix it.
|
95
|
-
retry_count ||= 0
|
96
|
-
raise if retry_count >= 3
|
97
|
-
|
98
|
-
retry_count += 1
|
99
|
-
retry
|
62
|
+
# Create a fake empty module for each local module so that
|
63
|
+
# `go mod edit` works, even if some modules have been `replace`d with
|
64
|
+
# a local module that we don't have access to.
|
65
|
+
local_replacements.each do |_, stub_path|
|
66
|
+
Dir.mkdir(stub_path) unless Dir.exist?(stub_path)
|
67
|
+
FileUtils.touch(File.join(stub_path, "go.mod"))
|
100
68
|
end
|
69
|
+
|
70
|
+
File.write("go.mod", go_mod_content)
|
71
|
+
|
72
|
+
command = "go mod edit -json"
|
73
|
+
|
74
|
+
# Turn off the module proxy for now, as it's causing issues with
|
75
|
+
# private git dependencies
|
76
|
+
env = { "GOPRIVATE" => "*" }
|
77
|
+
|
78
|
+
stdout, stderr, status = Open3.capture3(env, command)
|
79
|
+
handle_parser_error(path, stderr) unless status.success?
|
80
|
+
JSON.parse(stdout)["Require"] || []
|
81
|
+
rescue Dependabot::DependencyFileNotResolvable
|
82
|
+
# We sometimes see this error if a host times out.
|
83
|
+
# In such cases, retrying (a maximum of 3 times) may fix it.
|
84
|
+
retry_count ||= 0
|
85
|
+
raise if retry_count >= 3
|
86
|
+
|
87
|
+
retry_count += 1
|
88
|
+
retry
|
101
89
|
end
|
102
90
|
end
|
103
91
|
|
@@ -135,46 +123,9 @@ module Dependabot
|
|
135
123
|
end
|
136
124
|
end
|
137
125
|
|
138
|
-
GIT_ERROR_REGEX = /go: .*: git fetch .*: exit status 128/m.freeze
|
139
126
|
def handle_parser_error(path, stderr)
|
140
|
-
|
141
|
-
|
142
|
-
line = stderr.lines.grep(/unknown revision/).first.strip
|
143
|
-
handle_github_unknown_revision(line) if line.start_with?("go: github.com/")
|
144
|
-
raise Dependabot::DependencyFileNotResolvable, line
|
145
|
-
when /go: .*: unrecognized import path/m
|
146
|
-
line = stderr.lines.grep(/unrecognized import/).first
|
147
|
-
raise Dependabot::DependencyFileNotResolvable, line.strip
|
148
|
-
when /go: errors parsing go.mod/m
|
149
|
-
msg = stderr.gsub(path.to_s, "").strip
|
150
|
-
raise Dependabot::DependencyFileNotParseable.new(go_mod.path, msg)
|
151
|
-
when GIT_ERROR_REGEX
|
152
|
-
lines = stderr.lines.drop_while { |l| GIT_ERROR_REGEX !~ l }
|
153
|
-
raise Dependabot::DependencyFileNotResolvable.new, lines.join
|
154
|
-
else
|
155
|
-
msg = stderr.gsub(path.to_s, "").strip
|
156
|
-
raise Dependabot::DependencyFileNotParseable.new(go_mod.path, msg)
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
GITHUB_REPO_REGEX = %r{github.com/[^@]*}.freeze
|
161
|
-
def handle_github_unknown_revision(line)
|
162
|
-
repo_path = line.scan(GITHUB_REPO_REGEX).first
|
163
|
-
return unless repo_path
|
164
|
-
|
165
|
-
# Query for _any_ version of this module, to know if it doesn't exist (or is private)
|
166
|
-
# or we were just given a bad revision by this manifest
|
167
|
-
SharedHelpers.in_a_temporary_directory do
|
168
|
-
SharedHelpers.with_git_configured(credentials: credentials) do
|
169
|
-
File.write("go.mod", "module dummy\n")
|
170
|
-
|
171
|
-
env = { "GOPRIVATE" => "*" }
|
172
|
-
_, _, status = Open3.capture3(env, SharedHelpers.escape_command("go get #{repo_path}"))
|
173
|
-
raise Dependabot::DependencyFileNotResolvable, line if status.success?
|
174
|
-
|
175
|
-
raise Dependabot::GitDependenciesNotReachable, [repo_path]
|
176
|
-
end
|
177
|
-
end
|
127
|
+
msg = stderr.gsub(path.to_s, "").strip
|
128
|
+
raise Dependabot::DependencyFileNotParseable.new(go_mod.path, msg)
|
178
129
|
end
|
179
130
|
|
180
131
|
def rev_identifier?(dep)
|
@@ -4,6 +4,7 @@ require "dependabot/shared_helpers"
|
|
4
4
|
require "dependabot/errors"
|
5
5
|
require "dependabot/go_modules/file_updater"
|
6
6
|
require "dependabot/go_modules/native_helpers"
|
7
|
+
require "dependabot/go_modules/resolvability_errors"
|
7
8
|
|
8
9
|
module Dependabot
|
9
10
|
module GoModules
|
@@ -14,19 +15,21 @@ module Dependabot
|
|
14
15
|
ENVIRONMENT = { "GOPRIVATE" => "*" }.freeze
|
15
16
|
|
16
17
|
RESOLVABILITY_ERROR_REGEXES = [
|
17
|
-
# (Private) module could not be fetched
|
18
|
-
/go: .*: git fetch .*: exit status 128/.freeze,
|
19
18
|
# The checksum in go.sum does not match the dowloaded content
|
20
19
|
/verifying .*: checksum mismatch/.freeze,
|
20
|
+
/go: .*: go.mod has post-v\d+ module path/
|
21
|
+
].freeze
|
22
|
+
|
23
|
+
REPO_RESOLVABILITY_ERROR_REGEXES = [
|
24
|
+
# (Private) module could not be fetched
|
25
|
+
/go: .*: git fetch .*: exit status 128/.freeze,
|
21
26
|
# (Private) module could not be found
|
22
27
|
/cannot find module providing package/.freeze,
|
23
28
|
# Package in module was likely renamed or removed
|
24
29
|
/module .* found \(.*\), but does not contain package/m.freeze,
|
25
30
|
# Package does not exist, has been pulled or cannot be reached due to
|
26
31
|
# auth problems with either git or the go proxy
|
27
|
-
/go: .*: unknown revision/m.freeze
|
28
|
-
# Package version doesn't match the module major version
|
29
|
-
/go: .*: go.mod has post-v\d+ module path/m.freeze
|
32
|
+
/go: .*: unknown revision/m.freeze
|
30
33
|
].freeze
|
31
34
|
|
32
35
|
MODULE_PATH_MISMATCH_REGEXES = [
|
@@ -40,6 +43,8 @@ module Dependabot
|
|
40
43
|
/no space left on device/.freeze
|
41
44
|
].freeze
|
42
45
|
|
46
|
+
GO_MOD_VERSION = /^go 1\.[\d]+$/.freeze
|
47
|
+
|
43
48
|
def initialize(dependencies:, credentials:, repo_contents_path:,
|
44
49
|
directory:, options:)
|
45
50
|
@dependencies = dependencies
|
@@ -67,10 +72,9 @@ module Dependabot
|
|
67
72
|
@updated_files ||= update_files
|
68
73
|
end
|
69
74
|
|
70
|
-
def update_files # rubocop:disable Metrics/AbcSize
|
75
|
+
def update_files # rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity
|
71
76
|
in_repo_path do
|
72
77
|
# Map paths in local replace directives to path hashes
|
73
|
-
|
74
78
|
original_go_mod = File.read("go.mod")
|
75
79
|
original_manifest = parse_manifest
|
76
80
|
original_go_sum = File.read("go.sum") if File.exist?("go.sum")
|
@@ -87,35 +91,36 @@ module Dependabot
|
|
87
91
|
# Then run `go get` to pick up other changes to the file caused by
|
88
92
|
# the upgrade
|
89
93
|
run_go_get
|
90
|
-
run_go_vendor
|
91
|
-
run_go_mod_tidy
|
92
|
-
|
93
|
-
# At this point, the go.mod returned from run_go_get contains the
|
94
|
-
# correct set of modules, but running `go get` can change the file
|
95
|
-
# in undesirable ways (such as injecting the current Go version),
|
96
|
-
# so we need to update the original go.mod with the updated set of
|
97
|
-
# requirements rather than using the regenerated file directly
|
98
|
-
original_reqs = original_manifest["Require"] || []
|
99
|
-
updated_reqs = parse_manifest["Require"] || []
|
100
|
-
|
101
|
-
original_paths = original_reqs.map { |r| r["Path"] }
|
102
|
-
updated_paths = updated_reqs.map { |r| r["Path"] }
|
103
|
-
req_paths_to_remove = original_paths - updated_paths
|
104
94
|
|
105
|
-
#
|
106
|
-
# dependencies
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
# put the old replace directives back again
|
114
|
-
substitute_all(substitutions.invert)
|
95
|
+
# If we stubbed modules, don't run `go mod {tidy,vendor}` as
|
96
|
+
# dependencies are incomplete
|
97
|
+
if substitutions.empty?
|
98
|
+
run_go_mod_tidy
|
99
|
+
run_go_vendor
|
100
|
+
else
|
101
|
+
substitute_all(substitutions.invert)
|
102
|
+
end
|
115
103
|
|
116
104
|
updated_go_sum = original_go_sum ? File.read("go.sum") : nil
|
117
105
|
updated_go_mod = File.read("go.mod")
|
118
106
|
|
107
|
+
# running "go get" may inject the current go version, remove it
|
108
|
+
original_go_version = original_go_mod.match(GO_MOD_VERSION)&.to_a&.first
|
109
|
+
updated_go_version = updated_go_mod.match(GO_MOD_VERSION)&.to_a&.first
|
110
|
+
if original_go_version != updated_go_version
|
111
|
+
go_mod_lines = updated_go_mod.lines
|
112
|
+
go_mod_lines.each_with_index do |line, i|
|
113
|
+
next unless line&.match?(GO_MOD_VERSION)
|
114
|
+
|
115
|
+
# replace with the original version
|
116
|
+
go_mod_lines[i] = original_go_version
|
117
|
+
# avoid a stranded newline if there was no version originally
|
118
|
+
go_mod_lines[i + 1] = nil if original_go_version.nil?
|
119
|
+
end
|
120
|
+
|
121
|
+
updated_go_mod = go_mod_lines.compact.join
|
122
|
+
end
|
123
|
+
|
119
124
|
{ go_mod: updated_go_mod, go_sum: updated_go_sum }
|
120
125
|
end
|
121
126
|
end
|
@@ -184,24 +189,6 @@ module Dependabot
|
|
184
189
|
JSON.parse(stdout) || {}
|
185
190
|
end
|
186
191
|
|
187
|
-
def remove_requirements(requirement_paths)
|
188
|
-
requirement_paths.each do |path|
|
189
|
-
escaped_path = Shellwords.escape(path)
|
190
|
-
command = "go mod edit -droprequire #{escaped_path}"
|
191
|
-
_, stderr, status = Open3.capture3(ENVIRONMENT, command)
|
192
|
-
handle_subprocess_error(stderr) unless status.success?
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
def add_requirements(requirements)
|
197
|
-
requirements.each do |r|
|
198
|
-
escaped_req = Shellwords.escape("#{r['Path']}@#{r['Version']}")
|
199
|
-
command = "go mod edit -require #{escaped_req}"
|
200
|
-
_, stderr, status = Open3.capture3(ENVIRONMENT, command)
|
201
|
-
handle_subprocess_error(stderr) unless status.success?
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
192
|
def in_repo_path(&block)
|
206
193
|
SharedHelpers.
|
207
194
|
in_a_temporary_repo_directory(directory, repo_contents_path) do
|
@@ -268,7 +255,7 @@ module Dependabot
|
|
268
255
|
end
|
269
256
|
|
270
257
|
def module_pathname
|
271
|
-
@module_pathname ||= Pathname.new(repo_contents_path).join(directory)
|
258
|
+
@module_pathname ||= Pathname.new(repo_contents_path).join(directory.sub(%r{^/}, ""))
|
272
259
|
end
|
273
260
|
|
274
261
|
def substitute_all(substitutions)
|
@@ -279,13 +266,22 @@ module Dependabot
|
|
279
266
|
write_go_mod(body)
|
280
267
|
end
|
281
268
|
|
269
|
+
# rubocop:disable Metrics/AbcSize
|
270
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
282
271
|
def handle_subprocess_error(stderr)
|
283
272
|
stderr = stderr.gsub(Dir.getwd, "")
|
284
273
|
|
274
|
+
# Package version doesn't match the module major version
|
285
275
|
error_regex = RESOLVABILITY_ERROR_REGEXES.find { |r| stderr =~ r }
|
286
276
|
if error_regex
|
287
277
|
lines = stderr.lines.drop_while { |l| error_regex !~ l }
|
288
|
-
raise Dependabot::DependencyFileNotResolvable
|
278
|
+
raise Dependabot::DependencyFileNotResolvable, lines.join
|
279
|
+
end
|
280
|
+
|
281
|
+
repo_error_regex = REPO_RESOLVABILITY_ERROR_REGEXES.find { |r| stderr =~ r }
|
282
|
+
if repo_error_regex
|
283
|
+
lines = stderr.lines.drop_while { |l| repo_error_regex !~ l }
|
284
|
+
ResolvabilityErrors.handle(lines.join, credentials: credentials)
|
289
285
|
end
|
290
286
|
|
291
287
|
path_regex = MODULE_PATH_MISMATCH_REGEXES.find { |r| stderr =~ r }
|
@@ -305,6 +301,8 @@ module Dependabot
|
|
305
301
|
msg = stderr.lines.last(10).join.strip
|
306
302
|
raise Dependabot::DependabotError, msg
|
307
303
|
end
|
304
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
305
|
+
# rubocop:enable Metrics/AbcSize
|
308
306
|
|
309
307
|
def go_mod_path
|
310
308
|
return "go.mod" if directory == "/"
|
@@ -312,24 +310,6 @@ module Dependabot
|
|
312
310
|
File.join(directory, "go.mod")
|
313
311
|
end
|
314
312
|
|
315
|
-
def requirement_to_dependency_obj(req)
|
316
|
-
# This is an approximation - we're not correctly populating `source`
|
317
|
-
# for instance, but it's only to plug the requirement into the
|
318
|
-
# `update_go_mod` method so this mapping doesn't need to be perfect
|
319
|
-
dep_req = {
|
320
|
-
file: "go.mod",
|
321
|
-
requirement: req["Version"],
|
322
|
-
groups: [],
|
323
|
-
source: nil
|
324
|
-
}
|
325
|
-
Dependency.new(
|
326
|
-
name: req["Path"],
|
327
|
-
version: req["Version"],
|
328
|
-
requirements: req["Indirect"] ? [] : [dep_req],
|
329
|
-
package_manager: "go_modules"
|
330
|
-
)
|
331
|
-
end
|
332
|
-
|
333
313
|
def write_go_mod(body)
|
334
314
|
File.write("go.mod", body)
|
335
315
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dependabot
|
4
|
+
module GoModules
|
5
|
+
module ResolvabilityErrors
|
6
|
+
GITHUB_REPO_REGEX = %r{github.com/[^:@]*}.freeze
|
7
|
+
|
8
|
+
def self.handle(message, credentials:)
|
9
|
+
mod_path = message.scan(GITHUB_REPO_REGEX).first
|
10
|
+
raise Dependabot::DependencyFileNotResolvable, message unless mod_path
|
11
|
+
|
12
|
+
# Module not found on github.com - query for _any_ version to know if it
|
13
|
+
# doesn't exist (or is private) or we were just given a bad revision by this manifest
|
14
|
+
SharedHelpers.in_a_temporary_directory do
|
15
|
+
SharedHelpers.with_git_configured(credentials: credentials) do
|
16
|
+
File.write("go.mod", "module dummy\n")
|
17
|
+
|
18
|
+
env = { "GOPRIVATE" => "*" }
|
19
|
+
_, _, status = Open3.capture3(env, SharedHelpers.escape_command("go get #{mod_path}"))
|
20
|
+
raise Dependabot::DependencyFileNotResolvable, message if status.success?
|
21
|
+
|
22
|
+
mod_split = mod_path.split("/")
|
23
|
+
repo_path = if mod_split.size > 3
|
24
|
+
mod_split[0..2].join("/")
|
25
|
+
else
|
26
|
+
mod_path
|
27
|
+
end
|
28
|
+
raise Dependabot::GitDependenciesNotReachable, [repo_path]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -5,6 +5,7 @@ require "dependabot/update_checkers/base"
|
|
5
5
|
require "dependabot/shared_helpers"
|
6
6
|
require "dependabot/errors"
|
7
7
|
require "dependabot/go_modules/native_helpers"
|
8
|
+
require "dependabot/go_modules/resolvability_errors"
|
8
9
|
require "dependabot/go_modules/version"
|
9
10
|
|
10
11
|
module Dependabot
|
@@ -14,7 +15,8 @@ module Dependabot
|
|
14
15
|
# Package url/proxy doesn't include any redirect meta tags
|
15
16
|
/no go-import meta tags/,
|
16
17
|
# Package url 404s
|
17
|
-
/404 Not Found
|
18
|
+
/404 Not Found/,
|
19
|
+
/Repository not found/
|
18
20
|
].freeze
|
19
21
|
|
20
22
|
def latest_resolvable_version
|
@@ -86,7 +88,7 @@ module Dependabot
|
|
86
88
|
|
87
89
|
def handle_subprocess_error(error)
|
88
90
|
if RESOLVABILITY_ERROR_REGEXES.any? { |rgx| error.message =~ rgx }
|
89
|
-
|
91
|
+
ResolvabilityErrors.handle(error.message, credentials: credentials)
|
90
92
|
end
|
91
93
|
|
92
94
|
raise
|
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.
|
4
|
+
version: 0.129.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-06 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.
|
19
|
+
version: 0.129.4
|
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.
|
26
|
+
version: 0.129.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,28 +100,28 @@ dependencies:
|
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: 1.
|
103
|
+
version: 1.7.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 1.
|
110
|
+
version: 1.7.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: simplecov
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
117
|
+
version: 0.21.0
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
124
|
+
version: 0.21.0
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: simplecov-console
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -191,6 +191,7 @@ files:
|
|
191
191
|
- lib/dependabot/go_modules/native_helpers.rb
|
192
192
|
- lib/dependabot/go_modules/path_converter.rb
|
193
193
|
- lib/dependabot/go_modules/requirement.rb
|
194
|
+
- lib/dependabot/go_modules/resolvability_errors.rb
|
194
195
|
- lib/dependabot/go_modules/update_checker.rb
|
195
196
|
- lib/dependabot/go_modules/version.rb
|
196
197
|
homepage: https://github.com/dependabot/dependabot-core
|