dependabot-common 0.232.0 → 0.234.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dependabot/clients/azure.rb +32 -26
- data/lib/dependabot/clients/bitbucket.rb +1 -1
- data/lib/dependabot/clients/bitbucket_with_retries.rb +2 -2
- data/lib/dependabot/clients/codecommit.rb +3 -1
- data/lib/dependabot/clients/github_with_retries.rb +3 -3
- data/lib/dependabot/clients/gitlab_with_retries.rb +3 -3
- data/lib/dependabot/dependency_group.rb +1 -10
- data/lib/dependabot/errors.rb +14 -0
- data/lib/dependabot/file_fetchers.rb +9 -2
- data/lib/dependabot/file_parsers.rb +9 -2
- data/lib/dependabot/file_updaters.rb +9 -2
- data/lib/dependabot/git_commit_checker.rb +17 -16
- data/lib/dependabot/pull_request_creator/branch_namer/solo_strategy.rb +2 -2
- data/lib/dependabot/pull_request_creator/github.rb +1 -2
- data/lib/dependabot/pull_request_creator/message_builder.rb +2 -2
- data/lib/dependabot/pull_request_creator/pr_name_prefixer.rb +2 -2
- data/lib/dependabot/shared_helpers.rb +2 -2
- data/lib/dependabot/update_checkers.rb +9 -2
- data/lib/dependabot/utils.rb +15 -5
- data/lib/dependabot.rb +2 -2
- data/lib/wildcard_matcher.rb +4 -1
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 621688a92a0526cbe086c2fe30d824e0827ba4d98f7a7f4218560f80311579a2
|
4
|
+
data.tar.gz: 9643f1ea4eb456787c3b6db3962e0c5fe67cb793fff44415be1b4c6d1f6d79c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a3461d4923d3826280c52e4ddbb936e55ec13e2f1d448b8a99b66a2f0d6996a5db592f06810084b8f8a9795c1d4d7070d40f24bbe3e444b1563ac61cc58cd35f
|
7
|
+
data.tar.gz: 9903829aa7321ee5c3f7840a62bc32baa9c6be48d3b4ad682c939b65a78d965d7ff0c6eefbe683a868b4af945aeb204d12c8c4a908fe9f597346a4ff08a4d6ce
|
@@ -1,12 +1,15 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: true
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require "dependabot/shared_helpers"
|
5
5
|
require "excon"
|
6
|
+
require "sorbet-runtime"
|
6
7
|
|
7
8
|
module Dependabot
|
8
9
|
module Clients
|
9
10
|
class Azure
|
11
|
+
extend T::Sig
|
12
|
+
|
10
13
|
class NotFound < StandardError; end
|
11
14
|
|
12
15
|
class InternalServerError < StandardError; end
|
@@ -253,8 +256,9 @@ module Dependabot
|
|
253
256
|
JSON.parse(response.body).fetch("value")
|
254
257
|
end
|
255
258
|
|
259
|
+
sig { params(url: String).returns(Excon::Response) }
|
256
260
|
def get(url)
|
257
|
-
response = nil
|
261
|
+
response = T.let(nil, T.nilable(Excon::Response))
|
258
262
|
|
259
263
|
retry_connection_failures do
|
260
264
|
response = Excon.get(
|
@@ -267,20 +271,21 @@ module Dependabot
|
|
267
271
|
)
|
268
272
|
)
|
269
273
|
|
270
|
-
raise InternalServerError if response
|
271
|
-
raise BadGateway if response
|
272
|
-
raise ServiceNotAvailable if response
|
274
|
+
raise InternalServerError if response&.status == 500
|
275
|
+
raise BadGateway if response&.status == 502
|
276
|
+
raise ServiceNotAvailable if response&.status == 503
|
273
277
|
end
|
274
278
|
|
275
|
-
raise Unauthorized if response
|
276
|
-
raise Forbidden if response
|
277
|
-
raise NotFound if response
|
279
|
+
raise Unauthorized if response&.status == 401
|
280
|
+
raise Forbidden if response&.status == 403
|
281
|
+
raise NotFound if response&.status == 404
|
278
282
|
|
279
|
-
response
|
283
|
+
T.must(response)
|
280
284
|
end
|
281
285
|
|
282
|
-
|
283
|
-
|
286
|
+
sig { params(url: String, json: String).returns(Excon::Response) }
|
287
|
+
def post(url, json) # rubocop:disable Metrics/PerceivedComplexity
|
288
|
+
response = T.let(nil, T.nilable(Excon::Response))
|
284
289
|
|
285
290
|
retry_connection_failures do
|
286
291
|
response = Excon.post(
|
@@ -298,25 +303,26 @@ module Dependabot
|
|
298
303
|
)
|
299
304
|
)
|
300
305
|
|
301
|
-
raise InternalServerError if response
|
302
|
-
raise BadGateway if response
|
303
|
-
raise ServiceNotAvailable if response
|
306
|
+
raise InternalServerError if response&.status == 500
|
307
|
+
raise BadGateway if response&.status == 502
|
308
|
+
raise ServiceNotAvailable if response&.status == 503
|
304
309
|
end
|
305
310
|
|
306
|
-
raise Unauthorized if response
|
311
|
+
raise Unauthorized if response&.status == 401
|
307
312
|
|
308
|
-
if response
|
313
|
+
if response&.status == 403
|
309
314
|
raise TagsCreationForbidden if tags_creation_forbidden?(response)
|
310
315
|
|
311
316
|
raise Forbidden
|
312
317
|
end
|
313
|
-
raise NotFound if response
|
318
|
+
raise NotFound if response&.status == 404
|
314
319
|
|
315
|
-
response
|
320
|
+
T.must(response)
|
316
321
|
end
|
317
322
|
|
323
|
+
sig { params(url: String, json: String).returns(Excon::Response) }
|
318
324
|
def patch(url, json)
|
319
|
-
response = nil
|
325
|
+
response = T.let(nil, T.nilable(Excon::Response))
|
320
326
|
|
321
327
|
retry_connection_failures do
|
322
328
|
response = Excon.patch(
|
@@ -334,16 +340,16 @@ module Dependabot
|
|
334
340
|
)
|
335
341
|
)
|
336
342
|
|
337
|
-
raise InternalServerError if response
|
338
|
-
raise BadGateway if response
|
339
|
-
raise ServiceNotAvailable if response
|
343
|
+
raise InternalServerError if response&.status == 500
|
344
|
+
raise BadGateway if response&.status == 502
|
345
|
+
raise ServiceNotAvailable if response&.status == 503
|
340
346
|
end
|
341
347
|
|
342
|
-
raise Unauthorized if response
|
343
|
-
raise Forbidden if response
|
344
|
-
raise NotFound if response
|
348
|
+
raise Unauthorized if response&.status == 401
|
349
|
+
raise Forbidden if response&.status == 403
|
350
|
+
raise NotFound if response&.status == 404
|
345
351
|
|
346
|
-
response
|
352
|
+
T.must(response)
|
347
353
|
end
|
348
354
|
|
349
355
|
private
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: true
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require_relative "bitbucket"
|
@@ -30,7 +30,7 @@ module Dependabot
|
|
30
30
|
|
31
31
|
def initialize(max_retries: 3, **args)
|
32
32
|
@max_retries = max_retries || 3
|
33
|
-
@client = Bitbucket.new(**args)
|
33
|
+
@client = Bitbucket.new(**T.unsafe(args))
|
34
34
|
end
|
35
35
|
|
36
36
|
def method_missing(method_name, *args, &block)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: true
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require "dependabot/shared_helpers"
|
@@ -6,6 +6,8 @@ require "dependabot/shared_helpers"
|
|
6
6
|
module Dependabot
|
7
7
|
module Clients
|
8
8
|
class CodeCommit
|
9
|
+
extend T::Sig
|
10
|
+
|
9
11
|
class NotFound < StandardError; end
|
10
12
|
|
11
13
|
#######################
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: true
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require "octokit"
|
@@ -67,7 +67,7 @@ module Dependabot
|
|
67
67
|
#################
|
68
68
|
|
69
69
|
def fetch_commit(repo, branch)
|
70
|
-
response = ref(repo, "heads/#{branch}")
|
70
|
+
response = T.unsafe(self).ref(repo, "heads/#{branch}")
|
71
71
|
|
72
72
|
raise Octokit::NotFound if response.is_a?(Array)
|
73
73
|
|
@@ -75,7 +75,7 @@ module Dependabot
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def fetch_default_branch(repo)
|
78
|
-
repository(repo).default_branch
|
78
|
+
T.unsafe(self).repository(repo).default_branch
|
79
79
|
end
|
80
80
|
|
81
81
|
############
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: true
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require "gitlab"
|
@@ -50,11 +50,11 @@ module Dependabot
|
|
50
50
|
#################
|
51
51
|
|
52
52
|
def fetch_commit(repo, branch)
|
53
|
-
branch(repo, branch).commit.id
|
53
|
+
T.unsafe(self).branch(repo, branch).commit.id
|
54
54
|
end
|
55
55
|
|
56
56
|
def fetch_default_branch(repo)
|
57
|
-
project(repo).default_branch
|
57
|
+
T.unsafe(self).project(repo).default_branch
|
58
58
|
end
|
59
59
|
|
60
60
|
############
|
@@ -10,21 +10,12 @@ require "yaml"
|
|
10
10
|
|
11
11
|
module Dependabot
|
12
12
|
class DependencyGroup
|
13
|
-
attr_reader :name, :rules, :dependencies
|
13
|
+
attr_reader :name, :rules, :dependencies
|
14
14
|
|
15
15
|
def initialize(name:, rules:)
|
16
16
|
@name = name
|
17
17
|
@rules = rules
|
18
18
|
@dependencies = []
|
19
|
-
@handled_dependencies = Set.new
|
20
|
-
end
|
21
|
-
|
22
|
-
def add_to_handled(*dependencies)
|
23
|
-
@handled_dependencies += dependencies.map(&:name)
|
24
|
-
end
|
25
|
-
|
26
|
-
def add_all_to_handled
|
27
|
-
@handled_dependencies += dependencies.map(&:name)
|
28
19
|
end
|
29
20
|
|
30
21
|
def contains?(dependency)
|
data/lib/dependabot/errors.rb
CHANGED
@@ -76,6 +76,20 @@ module Dependabot
|
|
76
76
|
# File level errors #
|
77
77
|
#####################
|
78
78
|
|
79
|
+
class ToolVersionNotSupported < DependabotError
|
80
|
+
attr_reader :tool_name, :detected_version, :supported_versions
|
81
|
+
|
82
|
+
def initialize(tool_name, detected_version, supported_versions)
|
83
|
+
@tool_name = tool_name
|
84
|
+
@detected_version = detected_version
|
85
|
+
@supported_versions = supported_versions
|
86
|
+
|
87
|
+
msg = "Dependabot detected the following #{tool_name} requirement for your project: '#{detected_version}'." \
|
88
|
+
"\n\nCurrently, the following #{tool_name} versions are supported in Dependabot: #{supported_versions}."
|
89
|
+
super(msg)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
79
93
|
class DependencyFileNotFound < DependabotError
|
80
94
|
attr_reader :file_path
|
81
95
|
|
@@ -1,10 +1,16 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "sorbet-runtime"
|
5
|
+
require "dependabot/file_fetchers/base"
|
6
|
+
|
4
7
|
module Dependabot
|
5
8
|
module FileFetchers
|
6
|
-
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
@file_fetchers = T.let({}, T::Hash[String, T.class_of(Dependabot::FileFetchers::Base)])
|
7
12
|
|
13
|
+
sig { params(package_manager: String).returns(T.class_of(Dependabot::FileFetchers::Base)) }
|
8
14
|
def self.for_package_manager(package_manager)
|
9
15
|
file_fetcher = @file_fetchers[package_manager]
|
10
16
|
return file_fetcher if file_fetcher
|
@@ -12,6 +18,7 @@ module Dependabot
|
|
12
18
|
raise "Unsupported package_manager #{package_manager}"
|
13
19
|
end
|
14
20
|
|
21
|
+
sig { params(package_manager: String, file_fetcher: T.class_of(Dependabot::FileFetchers::Base)).void }
|
15
22
|
def self.register(package_manager, file_fetcher)
|
16
23
|
@file_fetchers[package_manager] = file_fetcher
|
17
24
|
end
|
@@ -1,10 +1,16 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "sorbet-runtime"
|
5
|
+
require "dependabot/file_parsers/base"
|
6
|
+
|
4
7
|
module Dependabot
|
5
8
|
module FileParsers
|
6
|
-
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
@file_parsers = T.let({}, T::Hash[String, T.class_of(Dependabot::FileParsers::Base)])
|
7
12
|
|
13
|
+
sig { params(package_manager: String).returns(T.class_of(Dependabot::FileParsers::Base)) }
|
8
14
|
def self.for_package_manager(package_manager)
|
9
15
|
file_parser = @file_parsers[package_manager]
|
10
16
|
return file_parser if file_parser
|
@@ -12,6 +18,7 @@ module Dependabot
|
|
12
18
|
raise "Unsupported package_manager #{package_manager}"
|
13
19
|
end
|
14
20
|
|
21
|
+
sig { params(package_manager: String, file_parser: T.class_of(Dependabot::FileParsers::Base)).void }
|
15
22
|
def self.register(package_manager, file_parser)
|
16
23
|
@file_parsers[package_manager] = file_parser
|
17
24
|
end
|
@@ -1,10 +1,16 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "sorbet-runtime"
|
5
|
+
require "dependabot/file_updaters/base"
|
6
|
+
|
4
7
|
module Dependabot
|
5
8
|
module FileUpdaters
|
6
|
-
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
@file_updaters = T.let({}, T::Hash[String, T.class_of(Dependabot::FileUpdaters::Base)])
|
7
12
|
|
13
|
+
sig { params(package_manager: String).returns(T.class_of(Dependabot::FileUpdaters::Base)) }
|
8
14
|
def self.for_package_manager(package_manager)
|
9
15
|
file_updater = @file_updaters[package_manager]
|
10
16
|
return file_updater if file_updater
|
@@ -12,6 +18,7 @@ module Dependabot
|
|
12
18
|
raise "Unsupported package_manager #{package_manager}"
|
13
19
|
end
|
14
20
|
|
21
|
+
sig { params(package_manager: String, file_updater: T.class_of(Dependabot::FileUpdaters::Base)).void }
|
15
22
|
def self.register(package_manager, file_updater)
|
16
23
|
@file_updaters[package_manager] = file_updater
|
17
24
|
end
|
@@ -24,12 +24,13 @@ module Dependabot
|
|
24
24
|
|
25
25
|
def initialize(dependency:, credentials:,
|
26
26
|
ignored_versions: [], raise_on_ignored: false,
|
27
|
-
consider_version_branches_pinned: false)
|
27
|
+
consider_version_branches_pinned: false, dependency_source_details: nil)
|
28
28
|
@dependency = dependency
|
29
29
|
@credentials = credentials
|
30
30
|
@ignored_versions = ignored_versions
|
31
31
|
@raise_on_ignored = raise_on_ignored
|
32
32
|
@consider_version_branches_pinned = consider_version_branches_pinned
|
33
|
+
@dependency_source_details = dependency_source_details
|
33
34
|
end
|
34
35
|
|
35
36
|
def git_dependency?
|
@@ -65,7 +66,11 @@ module Dependabot
|
|
65
66
|
end
|
66
67
|
|
67
68
|
def pinned_ref_looks_like_commit_sha?
|
68
|
-
ref_looks_like_commit_sha?(ref)
|
69
|
+
return false unless ref && ref_looks_like_commit_sha?(ref)
|
70
|
+
|
71
|
+
return false unless pinned?
|
72
|
+
|
73
|
+
local_repo_git_metadata_fetcher.head_commit_for_ref(ref).nil?
|
69
74
|
end
|
70
75
|
|
71
76
|
def head_commit_for_pinned_ref
|
@@ -73,11 +78,7 @@ module Dependabot
|
|
73
78
|
end
|
74
79
|
|
75
80
|
def ref_looks_like_commit_sha?(ref)
|
76
|
-
|
77
|
-
|
78
|
-
return false unless pinned?
|
79
|
-
|
80
|
-
local_repo_git_metadata_fetcher.head_commit_for_ref(ref).nil?
|
81
|
+
ref.match?(/^[0-9a-f]{6,40}$/)
|
81
82
|
end
|
82
83
|
|
83
84
|
def branch_or_ref_in_release?(version)
|
@@ -160,7 +161,15 @@ module Dependabot
|
|
160
161
|
end
|
161
162
|
|
162
163
|
def dependency_source_details
|
163
|
-
dependency.source_details(allowed_types: ["git"])
|
164
|
+
@dependency_source_details || dependency.source_details(allowed_types: ["git"])
|
165
|
+
end
|
166
|
+
|
167
|
+
def most_specific_version_tag_for_sha(commit_sha)
|
168
|
+
tags = local_tags.select { |t| t.commit_sha == commit_sha && version_class.correct?(t.name) }
|
169
|
+
.sort_by { |t| version_class.new(t.name) }
|
170
|
+
return if tags.empty?
|
171
|
+
|
172
|
+
tags[-1].name
|
164
173
|
end
|
165
174
|
|
166
175
|
private
|
@@ -188,14 +197,6 @@ module Dependabot
|
|
188
197
|
version.split(".").length
|
189
198
|
end
|
190
199
|
|
191
|
-
def most_specific_version_tag_for_sha(commit_sha)
|
192
|
-
tags = local_tags.select { |t| t.commit_sha == commit_sha && version_class.correct?(t.name) }
|
193
|
-
.sort_by { |t| version_class.new(t.name) }
|
194
|
-
return if tags.empty?
|
195
|
-
|
196
|
-
tags[-1].name
|
197
|
-
end
|
198
|
-
|
199
200
|
def allowed_versions(local_tags)
|
200
201
|
tags =
|
201
202
|
local_tags
|
@@ -62,7 +62,7 @@ module Dependabot
|
|
62
62
|
def property_name
|
63
63
|
@property_name ||= dependencies.first.requirements
|
64
64
|
.find { |r| r.dig(:metadata, :property_name) }
|
65
|
-
|
65
|
+
&.dig(:metadata, :property_name)
|
66
66
|
|
67
67
|
raise "No property name!" unless @property_name
|
68
68
|
|
@@ -72,7 +72,7 @@ module Dependabot
|
|
72
72
|
def dependency_set
|
73
73
|
@dependency_set ||= dependencies.first.requirements
|
74
74
|
.find { |r| r.dig(:metadata, :dependency_set) }
|
75
|
-
|
75
|
+
&.dig(:metadata, :dependency_set)
|
76
76
|
|
77
77
|
raise "No dependency set!" unless @dependency_set
|
78
78
|
|
@@ -247,8 +247,7 @@ module Dependabot
|
|
247
247
|
@branch_name = ref.gsub(%r{^refs/heads/}, "")
|
248
248
|
branch
|
249
249
|
rescue Octokit::UnprocessableEntity => e
|
250
|
-
|
251
|
-
return nil if e.message.match?(/Reference already exists/i)
|
250
|
+
raise if e.message.match?(/Reference already exists/i)
|
252
251
|
|
253
252
|
retrying_branch_creation ||= false
|
254
253
|
raise if retrying_branch_creation
|
@@ -416,7 +416,7 @@ module Dependabot
|
|
416
416
|
def property_name
|
417
417
|
@property_name ||= dependencies.first.requirements
|
418
418
|
.find { |r| r.dig(:metadata, :property_name) }
|
419
|
-
|
419
|
+
&.dig(:metadata, :property_name)
|
420
420
|
|
421
421
|
raise "No property name!" unless @property_name
|
422
422
|
|
@@ -426,7 +426,7 @@ module Dependabot
|
|
426
426
|
def dependency_set
|
427
427
|
@dependency_set ||= dependencies.first.requirements
|
428
428
|
.find { |r| r.dig(:metadata, :dependency_set) }
|
429
|
-
|
429
|
+
&.dig(:metadata, :dependency_set)
|
430
430
|
|
431
431
|
raise "No dependency set!" unless @dependency_set
|
432
432
|
|
@@ -64,7 +64,7 @@ module Dependabot
|
|
64
64
|
|
65
65
|
def initialize(message:, error_context:, error_class: nil, trace: nil)
|
66
66
|
super(message)
|
67
|
-
@error_class = error_class || ""
|
67
|
+
@error_class = error_class || "HelperSubprocessFailed"
|
68
68
|
@error_context = error_context
|
69
69
|
@fingerprint = error_context[:fingerprint] || error_context[:command]
|
70
70
|
@trace = trace
|
@@ -142,8 +142,8 @@ module Dependabot
|
|
142
142
|
error_context: error_context
|
143
143
|
)
|
144
144
|
end
|
145
|
-
# rubocop:enable Metrics/MethodLength
|
146
145
|
|
146
|
+
# rubocop:enable Metrics/MethodLength
|
147
147
|
def self.check_out_of_memory_error(stderr, error_context)
|
148
148
|
return unless stderr&.include?("JavaScript heap out of memory")
|
149
149
|
|
@@ -1,10 +1,16 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require "sorbet-runtime"
|
5
|
+
require "dependabot/update_checkers/base"
|
6
|
+
|
4
7
|
module Dependabot
|
5
8
|
module UpdateCheckers
|
6
|
-
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
@update_checkers = T.let({}, T::Hash[String, T.class_of(Dependabot::UpdateCheckers::Base)])
|
7
12
|
|
13
|
+
sig { params(package_manager: String).returns(T.class_of(Dependabot::UpdateCheckers::Base)) }
|
8
14
|
def self.for_package_manager(package_manager)
|
9
15
|
update_checker = @update_checkers[package_manager]
|
10
16
|
return update_checker if update_checker
|
@@ -12,6 +18,7 @@ module Dependabot
|
|
12
18
|
raise "Unsupported package_manager #{package_manager}"
|
13
19
|
end
|
14
20
|
|
21
|
+
sig { params(package_manager: String, update_checker: T.class_of(Dependabot::UpdateCheckers::Base)).void }
|
15
22
|
def self.register(package_manager, update_checker)
|
16
23
|
@update_checkers[package_manager] = update_checker
|
17
24
|
end
|
data/lib/dependabot/utils.rb
CHANGED
@@ -1,18 +1,23 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require "tmpdir"
|
5
5
|
require "set"
|
6
|
+
require "sorbet-runtime"
|
7
|
+
require "dependabot/version"
|
6
8
|
|
7
9
|
# TODO: in due course, these "registries" should live in a wrapper gem, not
|
8
10
|
# dependabot-core.
|
9
11
|
module Dependabot
|
10
12
|
module Utils
|
13
|
+
extend T::Sig
|
14
|
+
|
11
15
|
BUMP_TMP_FILE_PREFIX = "dependabot_"
|
12
|
-
BUMP_TMP_DIR_PATH = File.expand_path(Dir::Tmpname.create("", "tmp") { nil })
|
16
|
+
BUMP_TMP_DIR_PATH = T.let(File.expand_path(Dir::Tmpname.create("", "tmp") { nil }), String)
|
13
17
|
|
14
|
-
@version_classes = {}
|
18
|
+
@version_classes = T.let({}, T::Hash[String, T.class_of(Dependabot::Version)])
|
15
19
|
|
20
|
+
sig { params(package_manager: String).returns(T.class_of(Dependabot::Version)) }
|
16
21
|
def self.version_class_for_package_manager(package_manager)
|
17
22
|
version_class = @version_classes[package_manager]
|
18
23
|
return version_class if version_class
|
@@ -20,12 +25,14 @@ module Dependabot
|
|
20
25
|
raise "Unsupported package_manager #{package_manager}"
|
21
26
|
end
|
22
27
|
|
28
|
+
sig { params(package_manager: String, version_class: T.class_of(Dependabot::Version)).void }
|
23
29
|
def self.register_version_class(package_manager, version_class)
|
24
30
|
@version_classes[package_manager] = version_class
|
25
31
|
end
|
26
32
|
|
27
|
-
@requirement_classes = {}
|
33
|
+
@requirement_classes = T.let({}, T::Hash[String, T.class_of(Gem::Requirement)])
|
28
34
|
|
35
|
+
sig { params(package_manager: String).returns(T.class_of(Gem::Requirement)) }
|
29
36
|
def self.requirement_class_for_package_manager(package_manager)
|
30
37
|
requirement_class = @requirement_classes[package_manager]
|
31
38
|
return requirement_class if requirement_class
|
@@ -33,16 +40,19 @@ module Dependabot
|
|
33
40
|
raise "Unsupported package_manager #{package_manager}"
|
34
41
|
end
|
35
42
|
|
43
|
+
sig { params(package_manager: String, requirement_class: T.class_of(Gem::Requirement)).void }
|
36
44
|
def self.register_requirement_class(package_manager, requirement_class)
|
37
45
|
@requirement_classes[package_manager] = requirement_class
|
38
46
|
end
|
39
47
|
|
40
|
-
@cloning_package_managers = Set[]
|
48
|
+
@cloning_package_managers = T.let(Set[], T::Set[String])
|
41
49
|
|
50
|
+
sig { params(package_manager: String).returns(T::Boolean) }
|
42
51
|
def self.always_clone_for_package_manager?(package_manager)
|
43
52
|
@cloning_package_managers.include?(package_manager)
|
44
53
|
end
|
45
54
|
|
55
|
+
sig { params(package_manager: String).void }
|
46
56
|
def self.register_always_clone(package_manager)
|
47
57
|
@cloning_package_managers << package_manager
|
48
58
|
end
|
data/lib/dependabot.rb
CHANGED
data/lib/wildcard_matcher.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
class WildcardMatcher
|
5
|
+
extend T::Sig
|
6
|
+
|
7
|
+
sig { params(wildcard_string: T.nilable(String), candidate_string: T.nilable(String)).returns(T::Boolean) }
|
5
8
|
def self.match?(wildcard_string, candidate_string)
|
6
9
|
return false unless wildcard_string && candidate_string
|
7
10
|
|
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.
|
4
|
+
version: 0.234.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-codecommit
|
@@ -228,14 +228,14 @@ dependencies:
|
|
228
228
|
requirements:
|
229
229
|
- - "~>"
|
230
230
|
- !ruby/object:Gem::Version
|
231
|
-
version:
|
231
|
+
version: 0.5.11026
|
232
232
|
type: :runtime
|
233
233
|
prerelease: false
|
234
234
|
version_requirements: !ruby/object:Gem::Requirement
|
235
235
|
requirements:
|
236
236
|
- - "~>"
|
237
237
|
- !ruby/object:Gem::Version
|
238
|
-
version:
|
238
|
+
version: 0.5.11026
|
239
239
|
- !ruby/object:Gem::Dependency
|
240
240
|
name: toml-rb
|
241
241
|
requirement: !ruby/object:Gem::Requirement
|
@@ -284,20 +284,6 @@ dependencies:
|
|
284
284
|
- - "~>"
|
285
285
|
- !ruby/object:Gem::Version
|
286
286
|
version: '2.0'
|
287
|
-
- !ruby/object:Gem::Dependency
|
288
|
-
name: parallel_tests
|
289
|
-
requirement: !ruby/object:Gem::Requirement
|
290
|
-
requirements:
|
291
|
-
- - "~>"
|
292
|
-
- !ruby/object:Gem::Version
|
293
|
-
version: 4.2.0
|
294
|
-
type: :development
|
295
|
-
prerelease: false
|
296
|
-
version_requirements: !ruby/object:Gem::Requirement
|
297
|
-
requirements:
|
298
|
-
- - "~>"
|
299
|
-
- !ruby/object:Gem::Version
|
300
|
-
version: 4.2.0
|
301
287
|
- !ruby/object:Gem::Dependency
|
302
288
|
name: rake
|
303
289
|
requirement: !ruby/object:Gem::Requirement
|
@@ -396,6 +382,20 @@ dependencies:
|
|
396
382
|
- - "~>"
|
397
383
|
- !ruby/object:Gem::Version
|
398
384
|
version: 0.2.16
|
385
|
+
- !ruby/object:Gem::Dependency
|
386
|
+
name: turbo_tests
|
387
|
+
requirement: !ruby/object:Gem::Requirement
|
388
|
+
requirements:
|
389
|
+
- - "~>"
|
390
|
+
- !ruby/object:Gem::Version
|
391
|
+
version: 2.2.0
|
392
|
+
type: :development
|
393
|
+
prerelease: false
|
394
|
+
version_requirements: !ruby/object:Gem::Requirement
|
395
|
+
requirements:
|
396
|
+
- - "~>"
|
397
|
+
- !ruby/object:Gem::Version
|
398
|
+
version: 2.2.0
|
399
399
|
- !ruby/object:Gem::Dependency
|
400
400
|
name: vcr
|
401
401
|
requirement: !ruby/object:Gem::Requirement
|
@@ -514,7 +514,7 @@ licenses:
|
|
514
514
|
- Nonstandard
|
515
515
|
metadata:
|
516
516
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
517
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
517
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.234.0
|
518
518
|
post_install_message:
|
519
519
|
rdoc_options: []
|
520
520
|
require_paths:
|