dependabot-go_modules 0.334.0 → 0.335.0
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 +4 -4
- data/lib/dependabot/go_modules/dependency_grapher.rb +57 -0
- data/lib/dependabot/go_modules/file_parser.rb +85 -54
- data/lib/dependabot/go_modules/file_updater/go_mod_updater.rb +82 -58
- data/lib/dependabot/go_modules/package/package_details_fetcher.rb +2 -1
- data/lib/dependabot/go_modules/replace_stubber.rb +4 -2
- data/lib/dependabot/go_modules/update_checker/latest_version_finder.rb +26 -14
- data/lib/dependabot/go_modules.rb +1 -0
- metadata +13 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ba2ffbc3f930196b6230efea8a5d574e83b4be246dcdf3a7c9dcd6014aec870
|
4
|
+
data.tar.gz: fb9667f95fef7bf2f302f39032ddc57a74588d6b7f398c65112d27a839c50d9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c89d1331a852edcfe8ce57885022a5971d088b964e400e87ccb5bf4273e0978881ba76a9a52706b806dc5ae298cb168c090c937ee4b77c07acb3883932ae8fc
|
7
|
+
data.tar.gz: 61fe3e6273a93c9f529f2475ed6eaf5e8480a477a1a20ddf45b5788b88537a559ce5857e0bf1ee7b07db07ff6925cf1c34b49f33dc8d58d18a90fa1c4c22261e
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "sorbet-runtime"
|
5
|
+
|
6
|
+
require "dependabot/dependency_graphers"
|
7
|
+
require "dependabot/dependency_graphers/base"
|
8
|
+
|
9
|
+
module Dependabot
|
10
|
+
module GoModules
|
11
|
+
class DependencyGrapher < Dependabot::DependencyGraphers::Base
|
12
|
+
sig { override.returns(Dependabot::DependencyFile) }
|
13
|
+
def relevant_dependency_file
|
14
|
+
raise DependabotError, "No go.mod present in dependency files." unless go_mod
|
15
|
+
|
16
|
+
T.must(go_mod)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
# TODO: Build subdependency in this class and assign here -or- assign metadata in the parser
|
22
|
+
#
|
23
|
+
# We can do whichever makes most sense on a case-by-case basis, for Go the trade off on
|
24
|
+
# doing this in the parser shouldn't add a huge overhead.
|
25
|
+
sig { override.params(dependency: Dependabot::Dependency).returns(T::Array[String]) }
|
26
|
+
def fetch_subdependencies(dependency)
|
27
|
+
dependency.metadata.fetch(:depends_on, [])
|
28
|
+
end
|
29
|
+
|
30
|
+
sig { returns(T.nilable(Dependabot::DependencyFile)) }
|
31
|
+
def go_mod
|
32
|
+
return @go_mod if defined?(@go_mod)
|
33
|
+
|
34
|
+
@go_mod = T.let(
|
35
|
+
@dependency_files.find { |f| f.name = "go.mod" },
|
36
|
+
T.nilable(Dependabot::DependencyFile)
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
# In Go, the `v` is considered a canonical part of the version and omitting it can make
|
41
|
+
# comparisons tricky
|
42
|
+
sig { params(dependency: Dependabot::Dependency).returns(String) }
|
43
|
+
def purl_version_for(dependency)
|
44
|
+
return "" unless dependency.version
|
45
|
+
|
46
|
+
"@v#{dependency.version}"
|
47
|
+
end
|
48
|
+
|
49
|
+
sig { override.params(_dependency: Dependabot::Dependency).returns(String) }
|
50
|
+
def purl_pkg_for(_dependency)
|
51
|
+
"golang"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
Dependabot::DependencyGraphers.register("go_modules", Dependabot::GoModules::DependencyGrapher)
|
@@ -21,12 +21,23 @@ module Dependabot
|
|
21
21
|
extend T::Sig
|
22
22
|
|
23
23
|
sig do
|
24
|
-
params(
|
25
|
-
|
26
|
-
|
24
|
+
params(
|
25
|
+
dependency_files: T::Array[Dependabot::DependencyFile],
|
26
|
+
source: T.nilable(Dependabot::Source),
|
27
|
+
repo_contents_path: T.nilable(String),
|
28
|
+
credentials: T::Array[Dependabot::Credential],
|
29
|
+
reject_external_code: T::Boolean,
|
30
|
+
options: T::Hash[Symbol, T.untyped]
|
31
|
+
).void
|
27
32
|
end
|
28
|
-
def initialize(
|
29
|
-
|
33
|
+
def initialize(
|
34
|
+
dependency_files:,
|
35
|
+
source: nil,
|
36
|
+
repo_contents_path: nil,
|
37
|
+
credentials: [],
|
38
|
+
reject_external_code: false,
|
39
|
+
options: {}
|
40
|
+
)
|
30
41
|
super
|
31
42
|
|
32
43
|
set_go_environment_variables
|
@@ -49,13 +60,16 @@ module Dependabot
|
|
49
60
|
|
50
61
|
sig { returns(Ecosystem) }
|
51
62
|
def ecosystem
|
52
|
-
@ecosystem ||= T.let(
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
63
|
+
@ecosystem ||= T.let(
|
64
|
+
begin
|
65
|
+
Ecosystem.new(
|
66
|
+
name: ECOSYSTEM,
|
67
|
+
package_manager: package_manager,
|
68
|
+
language: language
|
69
|
+
)
|
70
|
+
end,
|
71
|
+
T.nilable(Dependabot::Ecosystem)
|
72
|
+
)
|
59
73
|
end
|
60
74
|
|
61
75
|
private
|
@@ -97,9 +111,12 @@ module Dependabot
|
|
97
111
|
|
98
112
|
sig { returns(T::Array[Dependabot::Credential]) }
|
99
113
|
def goproxy_credentials
|
100
|
-
@goproxy_credentials ||= T.let(
|
101
|
-
|
102
|
-
|
114
|
+
@goproxy_credentials ||= T.let(
|
115
|
+
credentials.select do |cred|
|
116
|
+
cred["type"] == "goproxy_server"
|
117
|
+
end,
|
118
|
+
T.nilable(T::Array[Dependabot::Credential])
|
119
|
+
)
|
103
120
|
end
|
104
121
|
|
105
122
|
sig { returns(Ecosystem::VersionManager) }
|
@@ -112,24 +129,30 @@ module Dependabot
|
|
112
129
|
|
113
130
|
sig { returns(T.nilable(Ecosystem::VersionManager)) }
|
114
131
|
def language
|
115
|
-
@language ||= T.let(
|
116
|
-
Language.new(go_version)
|
117
|
-
|
132
|
+
@language ||= T.let(
|
133
|
+
go_version ? Language.new(T.must(go_version)) : nil,
|
134
|
+
T.nilable(Dependabot::GoModules::Language)
|
135
|
+
)
|
118
136
|
end
|
119
137
|
|
120
|
-
sig { returns(String) }
|
138
|
+
sig { returns(T.nilable(String)) }
|
121
139
|
def go_version
|
122
|
-
@go_version ||= T.let(
|
123
|
-
|
140
|
+
@go_version ||= T.let(
|
141
|
+
go_mod&.content&.match(/^go\s(\d+\.\d+(.\d+)*)/)&.captures&.first,
|
142
|
+
T.nilable(String)
|
143
|
+
)
|
124
144
|
end
|
125
145
|
|
126
146
|
sig { returns(T.nilable(String)) }
|
127
147
|
def go_toolchain_version
|
128
|
-
@go_toolchain_version ||= T.let(
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
148
|
+
@go_toolchain_version ||= T.let(
|
149
|
+
begin
|
150
|
+
# Checks version based on the GOTOOLCHAIN in ENV
|
151
|
+
version = SharedHelpers.run_shell_command("go version")
|
152
|
+
version.match(/go\s*(\d+\.\d+(.\d+)*)/)&.captures&.first
|
153
|
+
end,
|
154
|
+
T.nilable(String)
|
155
|
+
)
|
133
156
|
end
|
134
157
|
|
135
158
|
sig { returns(T.nilable(Dependabot::DependencyFile)) }
|
@@ -170,23 +193,26 @@ module Dependabot
|
|
170
193
|
sig { returns(T::Array[T::Hash[String, T.untyped]]) }
|
171
194
|
def required_packages
|
172
195
|
@required_packages ||=
|
173
|
-
T.let(
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
196
|
+
T.let(
|
197
|
+
SharedHelpers.in_a_temporary_directory do |path|
|
198
|
+
# Create a fake empty module for each local module so that
|
199
|
+
# `go mod edit` works, even if some modules have been `replace`d with
|
200
|
+
# a local module that we don't have access to.
|
201
|
+
local_replacements.each do |_, stub_path|
|
202
|
+
FileUtils.mkdir_p(stub_path)
|
203
|
+
FileUtils.touch(File.join(stub_path, "go.mod"))
|
204
|
+
end
|
205
|
+
|
206
|
+
File.write("go.mod", go_mod_content)
|
207
|
+
|
208
|
+
command = "go mod edit -json"
|
209
|
+
|
210
|
+
stdout, stderr, status = Open3.capture3(command)
|
211
|
+
handle_parser_error(path, stderr) unless status.success?
|
212
|
+
JSON.parse(stdout)["Require"] || []
|
213
|
+
end,
|
214
|
+
T.nilable(T::Array[T::Hash[String, T.untyped]])
|
215
|
+
)
|
190
216
|
end
|
191
217
|
|
192
218
|
sig { returns(T::Hash[String, String]) }
|
@@ -196,25 +222,30 @@ module Dependabot
|
|
196
222
|
# we can use in their place. Using generated paths is safer as it
|
197
223
|
# means we don't need to worry about references to parent
|
198
224
|
# directories, etc.
|
199
|
-
T.let(
|
200
|
-
|
225
|
+
T.let(
|
226
|
+
ReplaceStubber.new(repo_contents_path).stub_paths(manifest, go_mod&.directory),
|
227
|
+
T.nilable(T::Hash[String, String])
|
228
|
+
)
|
201
229
|
end
|
202
230
|
|
203
231
|
sig { returns(T::Hash[String, T.untyped]) }
|
204
232
|
def manifest
|
205
233
|
@manifest ||=
|
206
|
-
T.let(
|
207
|
-
|
234
|
+
T.let(
|
235
|
+
SharedHelpers.in_a_temporary_directory do |path|
|
236
|
+
File.write("go.mod", go_mod&.content)
|
208
237
|
|
209
|
-
|
210
|
-
|
211
|
-
|
238
|
+
# Parse the go.mod to get a JSON representation of the replace
|
239
|
+
# directives
|
240
|
+
command = "go mod edit -json"
|
212
241
|
|
213
|
-
|
214
|
-
|
242
|
+
stdout, stderr, status = Open3.capture3(command)
|
243
|
+
handle_parser_error(path, stderr) unless status.success?
|
215
244
|
|
216
|
-
|
217
|
-
|
245
|
+
JSON.parse(stdout)
|
246
|
+
end,
|
247
|
+
T.nilable(T::Hash[String, T.untyped])
|
248
|
+
)
|
218
249
|
end
|
219
250
|
|
220
251
|
sig { returns(T.nilable(String)) }
|
@@ -16,58 +16,70 @@ module Dependabot
|
|
16
16
|
class GoModUpdater
|
17
17
|
extend T::Sig
|
18
18
|
|
19
|
-
RESOLVABILITY_ERROR_REGEXES = T.let(
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
19
|
+
RESOLVABILITY_ERROR_REGEXES = T.let(
|
20
|
+
[
|
21
|
+
# The checksum in go.sum does not match the downloaded content
|
22
|
+
/verifying .*: checksum mismatch/,
|
23
|
+
/go(?: get)?: .*: go.mod has post-v\d+ module path/,
|
24
|
+
# The Go tool is suggesting the user should run go mod tidy
|
25
|
+
/go mod tidy/,
|
26
|
+
# Something wrong in the chain of go.mod/go.sum files
|
27
|
+
# These are often fixable with go mod tidy too.
|
28
|
+
/no required module provides package/,
|
29
|
+
/missing go\.sum entry for module providing package/,
|
30
|
+
/missing go\.sum entry for go\.mod file/m,
|
31
|
+
/malformed module path/,
|
32
|
+
/used for two different module paths/,
|
33
|
+
# https://github.com/golang/go/issues/56494
|
34
|
+
/can't find reason for requirement on/,
|
35
|
+
# import path doesn't exist
|
36
|
+
/package \S+ is not in GOROOT/
|
37
|
+
].freeze,
|
38
|
+
T::Array[Regexp]
|
39
|
+
)
|
40
|
+
|
41
|
+
REPO_RESOLVABILITY_ERROR_REGEXES = T.let(
|
42
|
+
[
|
43
|
+
/fatal: The remote end hung up unexpectedly/,
|
44
|
+
/repository '.+' not found/,
|
45
|
+
%r{net/http: TLS handshake timeout},
|
46
|
+
# (Private) module could not be fetched
|
47
|
+
/go(?: get)?: .*: git (fetch|ls-remote) .*: exit status 128/m,
|
48
|
+
# (Private) module could not be found
|
49
|
+
/cannot find module providing package/,
|
50
|
+
# Package in module was likely renamed or removed
|
51
|
+
/module.*found.*but does not contain package/m,
|
52
|
+
# Package pseudo-version does not match the version-control metadata
|
53
|
+
# https://golang.google.cn/doc/go1.13#version-validation
|
54
|
+
/go(?: get)?: .*: invalid pseudo-version/m,
|
55
|
+
# Package does not exist, has been pulled or cannot be reached due to
|
56
|
+
# auth problems with either git or the go proxy
|
57
|
+
/go(?: get)?: .*: unknown revision/m,
|
58
|
+
# Package pointing to a proxy that 404s
|
59
|
+
/go(?: get)?: .*: unrecognized import path/m,
|
60
|
+
# Package not being referenced correctly
|
61
|
+
/go:.*imports.*package.+is not in std/m
|
62
|
+
].freeze,
|
63
|
+
T::Array[Regexp]
|
64
|
+
)
|
65
|
+
|
66
|
+
MODULE_PATH_MISMATCH_REGEXES = T.let(
|
67
|
+
[
|
68
|
+
/go(?: get)?: ([^@\s]+)(?:@[^\s]+)?: .* has non-.* module path "(.*)" at/,
|
69
|
+
/go(?: get)?: ([^@\s]+)(?:@[^\s]+)?: .* unexpected module path "(.*)"/,
|
70
|
+
/go(?: get)?: ([^@\s]+)(?:@[^\s]+)?:? .* declares its path as: ([\S]*)/m
|
71
|
+
].freeze,
|
72
|
+
T::Array[Regexp]
|
73
|
+
)
|
74
|
+
|
75
|
+
OUT_OF_DISK_REGEXES = T.let(
|
76
|
+
[
|
77
|
+
%r{input/output error},
|
78
|
+
/no space left on device/,
|
79
|
+
/Out of diskspace/
|
80
|
+
].freeze,
|
81
|
+
T::Array[Regexp]
|
82
|
+
)
|
71
83
|
|
72
84
|
GO_LANG = "Go"
|
73
85
|
|
@@ -87,8 +99,14 @@ module Dependabot
|
|
87
99
|
options: T::Hash[Symbol, T.untyped]
|
88
100
|
).void
|
89
101
|
end
|
90
|
-
def initialize(
|
91
|
-
|
102
|
+
def initialize(
|
103
|
+
dependencies:,
|
104
|
+
dependency_files:,
|
105
|
+
credentials:,
|
106
|
+
repo_contents_path:,
|
107
|
+
directory:,
|
108
|
+
options:
|
109
|
+
)
|
92
110
|
@dependencies = dependencies
|
93
111
|
@dependency_files = dependency_files
|
94
112
|
@credentials = credentials
|
@@ -273,8 +291,11 @@ module Dependabot
|
|
273
291
|
sig { params(manifest: T::Hash[String, T.untyped]).returns(T::Hash[String, String]) }
|
274
292
|
def replace_directive_substitutions(manifest)
|
275
293
|
@replace_directive_substitutions ||=
|
276
|
-
T.let(
|
277
|
-
|
294
|
+
T.let(
|
295
|
+
Dependabot::GoModules::ReplaceStubber.new(repo_contents_path)
|
296
|
+
.stub_paths(manifest, directory),
|
297
|
+
T.nilable(T::Hash[String, String])
|
298
|
+
)
|
278
299
|
end
|
279
300
|
|
280
301
|
sig { params(substitutions: T::Hash[String, String]).void }
|
@@ -324,8 +345,11 @@ module Dependabot
|
|
324
345
|
end
|
325
346
|
|
326
347
|
if (matches = stderr.match(GO_VERSION_MISMATCH))
|
327
|
-
raise Dependabot::ToolVersionNotSupported.new(
|
328
|
-
|
348
|
+
raise Dependabot::ToolVersionNotSupported.new(
|
349
|
+
GO_LANG,
|
350
|
+
T.must(matches[:current_ver]),
|
351
|
+
T.must(matches[:req_ver])
|
352
|
+
)
|
329
353
|
end
|
330
354
|
|
331
355
|
# We don't know what happened so we raise a generic error
|
@@ -157,7 +157,8 @@ module Dependabot
|
|
157
157
|
Dependabot::Package::PackageDetails.new(
|
158
158
|
dependency: dependency,
|
159
159
|
releases: releases.reverse.uniq(&:version)
|
160
|
-
),
|
160
|
+
),
|
161
|
+
T.nilable(Dependabot::Package::PackageDetails)
|
161
162
|
)
|
162
163
|
end
|
163
164
|
end
|
@@ -59,8 +59,10 @@ module Dependabot
|
|
59
59
|
|
60
60
|
sig { params(directory: T.nilable(String)).returns(Pathname) }
|
61
61
|
def module_pathname(directory)
|
62
|
-
@module_pathname ||= T.let(
|
63
|
-
|
62
|
+
@module_pathname ||= T.let(
|
63
|
+
Pathname.new(@repo_contents_path).join(T.must(directory).sub(%r{^/}, "")),
|
64
|
+
T.nilable(Pathname)
|
65
|
+
)
|
64
66
|
end
|
65
67
|
end
|
66
68
|
end
|
@@ -84,8 +84,10 @@ module Dependabot
|
|
84
84
|
.returns(T.nilable(Dependabot::Version))
|
85
85
|
end
|
86
86
|
def latest_version(language_version: nil)
|
87
|
-
@latest_version ||= T.let(
|
88
|
-
|
87
|
+
@latest_version ||= T.let(
|
88
|
+
fetch_latest_version(language_version: language_version),
|
89
|
+
T.nilable(Dependabot::Version)
|
90
|
+
)
|
89
91
|
end
|
90
92
|
|
91
93
|
sig do
|
@@ -93,8 +95,10 @@ module Dependabot
|
|
93
95
|
.returns(T.nilable(Dependabot::Version))
|
94
96
|
end
|
95
97
|
def lowest_security_fix_version(language_version: nil)
|
96
|
-
@lowest_security_fix_version ||= T.let(
|
97
|
-
|
98
|
+
@lowest_security_fix_version ||= T.let(
|
99
|
+
fetch_lowest_security_fix_version(language_version: language_version),
|
100
|
+
T.nilable(Dependabot::Version)
|
101
|
+
)
|
98
102
|
end
|
99
103
|
|
100
104
|
sig { override.returns(T::Boolean) }
|
@@ -124,11 +128,14 @@ module Dependabot
|
|
124
128
|
|
125
129
|
sig { returns(T::Array[Dependabot::Package::PackageRelease]) }
|
126
130
|
def available_versions_details
|
127
|
-
@available_versions_details ||= T.let(
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
131
|
+
@available_versions_details ||= T.let(
|
132
|
+
Package::PackageDetailsFetcher.new(
|
133
|
+
dependency: dependency,
|
134
|
+
dependency_files: dependency_files,
|
135
|
+
credentials: credentials
|
136
|
+
).fetch_available_versions,
|
137
|
+
T.nilable(T::Array[Dependabot::Package::PackageRelease])
|
138
|
+
)
|
132
139
|
end
|
133
140
|
|
134
141
|
# rubocop:disable Lint/UnusedMethodArgument
|
@@ -214,8 +221,10 @@ module Dependabot
|
|
214
221
|
passed_days = passed_seconds / DAY_IN_SECONDS
|
215
222
|
|
216
223
|
if passed_days < days
|
217
|
-
Dependabot.logger.info(
|
218
|
-
|
224
|
+
Dependabot.logger.info(
|
225
|
+
"Version #{release.version}, Release date: #{release.released_at}." \
|
226
|
+
" Days since release: #{passed_days} (cooldown days: #{days})"
|
227
|
+
)
|
219
228
|
end
|
220
229
|
|
221
230
|
# Check if the release is within the cooldown period
|
@@ -231,7 +240,8 @@ module Dependabot
|
|
231
240
|
Dependabot::Package::PackageDetails.new(
|
232
241
|
dependency: dependency,
|
233
242
|
releases: available_versions_details.reverse.uniq(&:version)
|
234
|
-
),
|
243
|
+
),
|
244
|
+
T.nilable(Dependabot::Package::PackageDetails)
|
235
245
|
)
|
236
246
|
end
|
237
247
|
|
@@ -242,8 +252,10 @@ module Dependabot
|
|
242
252
|
def fetch_lowest_security_fix_version(language_version: nil)
|
243
253
|
relevant_versions = available_versions_details
|
244
254
|
relevant_versions = filter_prerelease_versions(relevant_versions)
|
245
|
-
relevant_versions = Dependabot::UpdateCheckers::VersionFilters.filter_vulnerable_versions(
|
246
|
-
|
255
|
+
relevant_versions = Dependabot::UpdateCheckers::VersionFilters.filter_vulnerable_versions(
|
256
|
+
relevant_versions,
|
257
|
+
security_advisories
|
258
|
+
)
|
247
259
|
relevant_versions = filter_ignored_versions(relevant_versions)
|
248
260
|
relevant_versions = filter_lower_versions(relevant_versions)
|
249
261
|
|
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
# These all need to be required so the various classes can be registered in a
|
5
5
|
# lookup table of package manager names to concrete classes.
|
6
|
+
require "dependabot/go_modules/dependency_grapher"
|
6
7
|
require "dependabot/go_modules/file_fetcher"
|
7
8
|
require "dependabot/go_modules/file_parser"
|
8
9
|
require "dependabot/go_modules/update_checker"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.335.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
@@ -15,14 +15,14 @@ dependencies:
|
|
15
15
|
requirements:
|
16
16
|
- - '='
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: 0.
|
18
|
+
version: 0.335.0
|
19
19
|
type: :runtime
|
20
20
|
prerelease: false
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
22
22
|
requirements:
|
23
23
|
- - '='
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 0.
|
25
|
+
version: 0.335.0
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: debug
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,56 +113,56 @@ dependencies:
|
|
113
113
|
requirements:
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: '1.
|
116
|
+
version: '1.80'
|
117
117
|
type: :development
|
118
118
|
prerelease: false
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: '1.
|
123
|
+
version: '1.80'
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: rubocop-performance
|
126
126
|
requirement: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: '1.
|
130
|
+
version: '1.26'
|
131
131
|
type: :development
|
132
132
|
prerelease: false
|
133
133
|
version_requirements: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: '1.
|
137
|
+
version: '1.26'
|
138
138
|
- !ruby/object:Gem::Dependency
|
139
139
|
name: rubocop-rspec
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
144
|
+
version: '3.7'
|
145
145
|
type: :development
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: '
|
151
|
+
version: '3.7'
|
152
152
|
- !ruby/object:Gem::Dependency
|
153
153
|
name: rubocop-sorbet
|
154
154
|
requirement: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
156
|
- - "~>"
|
157
157
|
- !ruby/object:Gem::Version
|
158
|
-
version: '0.
|
158
|
+
version: '0.10'
|
159
159
|
type: :development
|
160
160
|
prerelease: false
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
162
162
|
requirements:
|
163
163
|
- - "~>"
|
164
164
|
- !ruby/object:Gem::Version
|
165
|
-
version: '0.
|
165
|
+
version: '0.10'
|
166
166
|
- !ruby/object:Gem::Dependency
|
167
167
|
name: simplecov
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,6 +250,7 @@ files:
|
|
250
250
|
- helpers/main.go
|
251
251
|
- helpers/version_test.go
|
252
252
|
- lib/dependabot/go_modules.rb
|
253
|
+
- lib/dependabot/go_modules/dependency_grapher.rb
|
253
254
|
- lib/dependabot/go_modules/file_fetcher.rb
|
254
255
|
- lib/dependabot/go_modules/file_parser.rb
|
255
256
|
- lib/dependabot/go_modules/file_updater.rb
|
@@ -271,7 +272,7 @@ licenses:
|
|
271
272
|
- MIT
|
272
273
|
metadata:
|
273
274
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
274
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
275
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.335.0
|
275
276
|
rdoc_options: []
|
276
277
|
require_paths:
|
277
278
|
- lib
|