dependabot-common 0.384.0 → 0.386.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/command_helpers.rb +9 -9
- data/lib/dependabot/dependency_graphers/base.rb +103 -0
- data/lib/dependabot/errors.rb +5 -5
- data/lib/dependabot/experiments.rb +5 -5
- data/lib/dependabot/file_parsers/base.rb +2 -2
- data/lib/dependabot/file_updaters/base.rb +2 -2
- data/lib/dependabot/git_commit_checker.rb +163 -4
- data/lib/dependabot/package/package_latest_version_finder.rb +3 -3
- data/lib/dependabot/package/package_release.rb +3 -3
- data/lib/dependabot/pull_request_creator/branch_name_template.rb +138 -0
- data/lib/dependabot/pull_request_creator/branch_namer/base.rb +62 -2
- data/lib/dependabot/pull_request_creator/branch_namer/dependency_group_strategy.rb +37 -2
- data/lib/dependabot/pull_request_creator/branch_namer/multi_ecosystem_strategy.rb +32 -2
- data/lib/dependabot/pull_request_creator/branch_namer/solo_strategy.rb +42 -16
- data/lib/dependabot/pull_request_creator/branch_namer.rb +30 -2
- data/lib/dependabot/pull_request_creator/message_builder.rb +7 -7
- data/lib/dependabot/pull_request_creator.rb +29 -8
- data/lib/dependabot/registry_client.rb +4 -4
- data/lib/dependabot/simple_instrumentor.rb +4 -4
- data/lib/dependabot/source.rb +25 -5
- data/lib/dependabot/update_checkers/base.rb +4 -4
- data/lib/dependabot.rb +1 -1
- metadata +3 -2
|
@@ -97,10 +97,10 @@ module Dependabot
|
|
|
97
97
|
sig { returns(T.nilable(String)) }
|
|
98
98
|
attr_reader :signature_key
|
|
99
99
|
|
|
100
|
-
sig { returns(T::Hash[Symbol, T.
|
|
100
|
+
sig { returns(T::Hash[Symbol, T.anything]) }
|
|
101
101
|
attr_reader :commit_message_options
|
|
102
102
|
|
|
103
|
-
sig { returns(T::Hash[String, String]) }
|
|
103
|
+
sig { returns(T::Hash[String, T::Array[T::Hash[String, String]]]) }
|
|
104
104
|
attr_reader :vulnerabilities_fixed
|
|
105
105
|
|
|
106
106
|
AzureReviewers = T.type_alias { T.nilable(T::Array[String]) }
|
|
@@ -126,13 +126,22 @@ module Dependabot
|
|
|
126
126
|
sig { returns(T.nilable(Integer)) }
|
|
127
127
|
attr_reader :branch_name_max_length
|
|
128
128
|
|
|
129
|
+
sig { returns(T.nilable(String)) }
|
|
130
|
+
attr_reader :branch_name_word_separator
|
|
131
|
+
|
|
132
|
+
sig { returns(T.nilable(String)) }
|
|
133
|
+
attr_reader :branch_name_case
|
|
134
|
+
|
|
135
|
+
sig { returns(T.nilable(String)) }
|
|
136
|
+
attr_reader :branch_name_template
|
|
137
|
+
|
|
129
138
|
sig { returns(String) }
|
|
130
139
|
attr_reader :github_redirection_service
|
|
131
140
|
|
|
132
141
|
sig { returns(T.nilable(T::Hash[String, String])) }
|
|
133
142
|
attr_reader :custom_headers
|
|
134
143
|
|
|
135
|
-
sig { returns(T.nilable(T::Hash[Symbol, T.
|
|
144
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
136
145
|
attr_reader :provider_metadata
|
|
137
146
|
|
|
138
147
|
sig { returns(T.nilable(Dependabot::DependencyGroup)) }
|
|
@@ -144,7 +153,7 @@ module Dependabot
|
|
|
144
153
|
sig { returns(T.nilable(Encoding)) }
|
|
145
154
|
attr_reader :pr_message_encoding
|
|
146
155
|
|
|
147
|
-
sig do
|
|
156
|
+
sig do # rubocop:disable Metrics/BlockLength
|
|
148
157
|
params(
|
|
149
158
|
source: Dependabot::Source,
|
|
150
159
|
base_commit: String,
|
|
@@ -156,20 +165,23 @@ module Dependabot
|
|
|
156
165
|
custom_labels: T.nilable(T::Array[String]),
|
|
157
166
|
author_details: T.nilable(T::Hash[Symbol, String]),
|
|
158
167
|
signature_key: T.nilable(String),
|
|
159
|
-
commit_message_options: T::Hash[Symbol, T.
|
|
160
|
-
vulnerabilities_fixed: T::Hash[String, String],
|
|
168
|
+
commit_message_options: T::Hash[Symbol, T.anything],
|
|
169
|
+
vulnerabilities_fixed: T::Hash[String, T::Array[T::Hash[String, String]]],
|
|
161
170
|
reviewers: Reviewers,
|
|
162
171
|
assignees: T.nilable(T.any(T::Array[String], T::Array[Integer])),
|
|
163
172
|
milestone: T.nilable(T.any(T::Array[String], Integer)),
|
|
164
173
|
branch_name_separator: String,
|
|
165
174
|
branch_name_prefix: String,
|
|
166
175
|
branch_name_max_length: T.nilable(Integer),
|
|
176
|
+
branch_name_word_separator: T.nilable(String),
|
|
177
|
+
branch_name_case: T.nilable(String),
|
|
178
|
+
branch_name_template: T.nilable(String),
|
|
167
179
|
label_language: T::Boolean,
|
|
168
180
|
automerge_candidate: T::Boolean,
|
|
169
181
|
github_redirection_service: String,
|
|
170
182
|
custom_headers: T.nilable(T::Hash[String, String]),
|
|
171
183
|
require_up_to_date_base: T::Boolean,
|
|
172
|
-
provider_metadata: T.nilable(T::Hash[Symbol, T.
|
|
184
|
+
provider_metadata: T.nilable(T::Hash[Symbol, T.anything]),
|
|
173
185
|
message: T.nilable(
|
|
174
186
|
T.any(Dependabot::PullRequestCreator::Message, Dependabot::PullRequestCreator::MessageBuilder)
|
|
175
187
|
),
|
|
@@ -198,6 +210,9 @@ module Dependabot
|
|
|
198
210
|
branch_name_separator: "/",
|
|
199
211
|
branch_name_prefix: "dependabot",
|
|
200
212
|
branch_name_max_length: 100,
|
|
213
|
+
branch_name_word_separator: nil,
|
|
214
|
+
branch_name_case: nil,
|
|
215
|
+
branch_name_template: nil,
|
|
201
216
|
label_language: false,
|
|
202
217
|
automerge_candidate: false,
|
|
203
218
|
github_redirection_service: DEFAULT_GITHUB_REDIRECTION_SERVICE,
|
|
@@ -227,6 +242,9 @@ module Dependabot
|
|
|
227
242
|
@branch_name_separator = branch_name_separator
|
|
228
243
|
@branch_name_prefix = branch_name_prefix
|
|
229
244
|
@branch_name_max_length = branch_name_max_length
|
|
245
|
+
@branch_name_word_separator = branch_name_word_separator
|
|
246
|
+
@branch_name_case = branch_name_case
|
|
247
|
+
@branch_name_template = branch_name_template
|
|
230
248
|
@label_language = label_language
|
|
231
249
|
@automerge_candidate = automerge_candidate
|
|
232
250
|
@github_redirection_service = github_redirection_service
|
|
@@ -253,7 +271,7 @@ module Dependabot
|
|
|
253
271
|
# TODO: This returns client-specific objects.
|
|
254
272
|
# We should create a standard interface (`Dependabot::PullRequest`) and
|
|
255
273
|
# then convert to that
|
|
256
|
-
sig { returns(T.
|
|
274
|
+
sig { returns(T.anything) }
|
|
257
275
|
def create
|
|
258
276
|
case source.provider
|
|
259
277
|
when "github" then github_creator.create
|
|
@@ -420,6 +438,9 @@ module Dependabot
|
|
|
420
438
|
separator: branch_name_separator,
|
|
421
439
|
prefix: branch_name_prefix,
|
|
422
440
|
max_length: branch_name_max_length,
|
|
441
|
+
word_separator: branch_name_word_separator,
|
|
442
|
+
branch_name_case: branch_name_case,
|
|
443
|
+
template: branch_name_template,
|
|
423
444
|
includes_security_fixes: includes_security_fixes?
|
|
424
445
|
),
|
|
425
446
|
T.nilable(Dependabot::PullRequestCreator::BranchNamer)
|
|
@@ -21,8 +21,8 @@ module Dependabot
|
|
|
21
21
|
sig do
|
|
22
22
|
params(
|
|
23
23
|
url: String,
|
|
24
|
-
headers: T::Hash[T.any(String, Symbol), T.
|
|
25
|
-
options: T::Hash[Symbol, T.
|
|
24
|
+
headers: T::Hash[T.any(String, Symbol), T.anything],
|
|
25
|
+
options: T::Hash[Symbol, T.anything]
|
|
26
26
|
)
|
|
27
27
|
.returns(Excon::Response)
|
|
28
28
|
end
|
|
@@ -43,8 +43,8 @@ module Dependabot
|
|
|
43
43
|
sig do
|
|
44
44
|
params(
|
|
45
45
|
url: String,
|
|
46
|
-
headers: T::Hash[T.any(String, Symbol), T.
|
|
47
|
-
options: T::Hash[Symbol, T.
|
|
46
|
+
headers: T::Hash[T.any(String, Symbol), T.anything],
|
|
47
|
+
options: T::Hash[Symbol, T.anything]
|
|
48
48
|
)
|
|
49
49
|
.returns(Excon::Response)
|
|
50
50
|
end
|
|
@@ -9,14 +9,14 @@ module Dependabot
|
|
|
9
9
|
extend T::Sig
|
|
10
10
|
extend T::Generic
|
|
11
11
|
|
|
12
|
-
sig { returns(T.nilable(T::Array[T.proc.params(name: String, params: T::Hash[Symbol, T.
|
|
12
|
+
sig { returns(T.nilable(T::Array[T.proc.params(name: String, params: T::Hash[Symbol, T.anything]).void])) }
|
|
13
13
|
attr_accessor :subscribers
|
|
14
14
|
|
|
15
|
-
sig { params(block: T.proc.params(name: String, params: T::Hash[Symbol, T.
|
|
15
|
+
sig { params(block: T.proc.params(name: String, params: T::Hash[Symbol, T.anything]).void).void }
|
|
16
16
|
def subscribe(&block)
|
|
17
17
|
@subscribers ||= T.let(
|
|
18
18
|
[],
|
|
19
|
-
T.nilable(T::Array[T.proc.params(name: String, params: T::Hash[Symbol, T.
|
|
19
|
+
T.nilable(T::Array[T.proc.params(name: String, params: T::Hash[Symbol, T.anything]).void])
|
|
20
20
|
)
|
|
21
21
|
@subscribers << block
|
|
22
22
|
end
|
|
@@ -25,7 +25,7 @@ module Dependabot
|
|
|
25
25
|
type_parameters(:T)
|
|
26
26
|
.params(
|
|
27
27
|
name: String,
|
|
28
|
-
params: T::Hash[Symbol, T.
|
|
28
|
+
params: T::Hash[Symbol, T.anything],
|
|
29
29
|
block: T.proc.returns(T.type_parameter(:T))
|
|
30
30
|
)
|
|
31
31
|
.returns(T.nilable(T.type_parameter(:T)))
|
data/lib/dependabot/source.rb
CHANGED
|
@@ -126,16 +126,36 @@ module Dependabot
|
|
|
126
126
|
)
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
+
@github_enterprise_cache = T.let({}, T::Hash[String, T::Boolean])
|
|
130
|
+
|
|
131
|
+
sig { void }
|
|
132
|
+
def self.reset_github_enterprise_cache!
|
|
133
|
+
@github_enterprise_cache.clear
|
|
134
|
+
end
|
|
135
|
+
|
|
129
136
|
sig { params(base_url: String).returns(T::Boolean) }
|
|
130
137
|
def self.github_enterprise?(base_url)
|
|
138
|
+
return T.must(@github_enterprise_cache[base_url]) if @github_enterprise_cache.key?(base_url)
|
|
139
|
+
|
|
140
|
+
result = detect_github_enterprise(base_url)
|
|
141
|
+
@github_enterprise_cache[base_url] = result unless result.nil?
|
|
142
|
+
result || false
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
sig { params(base_url: String).returns(T.nilable(T::Boolean)) }
|
|
146
|
+
def self.detect_github_enterprise(base_url)
|
|
131
147
|
resp = Excon.get(File.join(base_url, "status"))
|
|
132
|
-
resp.status ==
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
148
|
+
return false if resp.status == 404
|
|
149
|
+
|
|
150
|
+
return unless resp.status == 200
|
|
151
|
+
|
|
152
|
+
# Alternatively: resp.headers["Server"] == "GitHub.com", but this
|
|
153
|
+
# currently doesn't work with development environments
|
|
154
|
+
(resp.headers["X-GitHub-Request-Id"] && !resp.headers["X-GitHub-Request-Id"]&.empty?) || false
|
|
136
155
|
rescue StandardError
|
|
137
|
-
|
|
156
|
+
nil
|
|
138
157
|
end
|
|
158
|
+
private_class_method :detect_github_enterprise
|
|
139
159
|
|
|
140
160
|
sig do
|
|
141
161
|
params(
|
|
@@ -46,7 +46,7 @@ module Dependabot
|
|
|
46
46
|
sig { returns(T.nilable(Dependabot::Package::ReleaseCooldownOptions)) }
|
|
47
47
|
attr_reader :update_cooldown
|
|
48
48
|
|
|
49
|
-
sig { returns(T::Hash[Symbol, T.
|
|
49
|
+
sig { returns(T::Hash[Symbol, T.anything]) }
|
|
50
50
|
attr_reader :options
|
|
51
51
|
|
|
52
52
|
sig do
|
|
@@ -61,7 +61,7 @@ module Dependabot
|
|
|
61
61
|
requirements_update_strategy: T.nilable(Dependabot::RequirementsUpdateStrategy),
|
|
62
62
|
dependency_group: T.nilable(Dependabot::DependencyGroup),
|
|
63
63
|
update_cooldown: T.nilable(Dependabot::Package::ReleaseCooldownOptions),
|
|
64
|
-
options: T::Hash[Symbol, T.
|
|
64
|
+
options: T::Hash[Symbol, T.anything]
|
|
65
65
|
)
|
|
66
66
|
.void
|
|
67
67
|
end
|
|
@@ -233,7 +233,7 @@ module Dependabot
|
|
|
233
233
|
# instances are returned as-is; plain hashes are wrapped. Re-wrapping
|
|
234
234
|
# would produce a value-equal copy, so skipping it avoids needless
|
|
235
235
|
# allocations.
|
|
236
|
-
sig { params(requirements: T::Array[T::Hash[Symbol, T.
|
|
236
|
+
sig { params(requirements: T::Array[T::Hash[Symbol, T.anything]]).returns(T::Array[Dependabot::DependencyRequirement]) }
|
|
237
237
|
def wrap_requirements(requirements)
|
|
238
238
|
requirements.map do |requirement|
|
|
239
239
|
requirement.is_a?(Dependabot::DependencyRequirement) ? requirement : Dependabot::DependencyRequirement.create(requirement)
|
|
@@ -406,7 +406,7 @@ module Dependabot
|
|
|
406
406
|
version_class.correct?(latest_version.to_s)) || false
|
|
407
407
|
end
|
|
408
408
|
|
|
409
|
-
sig { returns(T::Array[
|
|
409
|
+
sig { returns(T::Array[Dependabot::DependencyRequirement]) }
|
|
410
410
|
def changed_requirements
|
|
411
411
|
(updated_requirements - dependency.requirements)
|
|
412
412
|
end
|
data/lib/dependabot.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dependabot-common
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.386.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dependabot
|
|
@@ -574,6 +574,7 @@ files:
|
|
|
574
574
|
- lib/dependabot/pull_request_creator.rb
|
|
575
575
|
- lib/dependabot/pull_request_creator/azure.rb
|
|
576
576
|
- lib/dependabot/pull_request_creator/bitbucket.rb
|
|
577
|
+
- lib/dependabot/pull_request_creator/branch_name_template.rb
|
|
577
578
|
- lib/dependabot/pull_request_creator/branch_namer.rb
|
|
578
579
|
- lib/dependabot/pull_request_creator/branch_namer/base.rb
|
|
579
580
|
- lib/dependabot/pull_request_creator/branch_namer/dependency_group_strategy.rb
|
|
@@ -621,7 +622,7 @@ licenses:
|
|
|
621
622
|
- MIT
|
|
622
623
|
metadata:
|
|
623
624
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
|
624
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
|
625
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.386.0
|
|
625
626
|
rdoc_options: []
|
|
626
627
|
require_paths:
|
|
627
628
|
- lib
|