dependabot-common 0.216.1 → 0.216.2

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: cc44d20c1eea5ffcfebda79597511add6d56ecad33107329dd60223d39f14185
4
- data.tar.gz: 1f483e056ca6d4e065a6b81d8d2491afda80f2c7820b1dee3ece09efc3ce0fa5
3
+ metadata.gz: 4b38a1d09ce4d017caa3e68544d16abb8052e27febb10b6c2aa48ea7689dd5dd
4
+ data.tar.gz: 6f1f21ff545f58a09a7dd238cf3a2fe56ca59ab29c6f51a9d7594762769ccf79
5
5
  SHA512:
6
- metadata.gz: de74b6faf4093eb8ccc59c99e85f561f0967d8f453cd20fd52f973a1def74c0fc588f88e8251adae1bb0a62a17efb4c81c80b7dedcc9098d79c290e36f43b3f8
7
- data.tar.gz: cfc902894c13a7c0631def4ef00439e0eb0b8bb668224954113cdf48d5a4010d083efe5d650996a90c4bda4a5e2410d6d0a002d3cfb18837b9f46a93852a43e5
6
+ metadata.gz: ae81f98a72640e7ea5b5dd7d5f813ff8b32663a0269b9cd4b57bebfe74d5db654f4da4aa9d6bbfe8c0c6a64af78a7017bb29db0e646481a1c81d35b60f3f4ff0
7
+ data.tar.gz: 034a48105df2f2a2633944697a3339b08f4d6f4bdb2fe5f277926d38d7032d2fbb8d5c6878b926710d53f495d8d547165261faab818a70c143afb423af7fda2f
@@ -95,7 +95,7 @@ module Dependabot
95
95
  c.proxy = ENV["HTTPS_PROXY"] if ENV["HTTPS_PROXY"]
96
96
  end
97
97
 
98
- Octokit.middleware = Faraday::RackBuilder.new do |builder|
98
+ args[:middleware] = Faraday::RackBuilder.new do |builder|
99
99
  builder.use Faraday::Retry::Middleware, exceptions: RETRYABLE_ERRORS, max: max_retries || 3
100
100
 
101
101
  Octokit::Default::MIDDLEWARE.handlers.each do |handler|
@@ -199,12 +199,16 @@ module Dependabot
199
199
  self == other
200
200
  end
201
201
 
202
- private
202
+ def requirement_class
203
+ Utils.requirement_class_for_package_manager(package_manager)
204
+ end
203
205
 
204
206
  def version_class
205
207
  Utils.version_class_for_package_manager(package_manager)
206
208
  end
207
209
 
210
+ private
211
+
208
212
  def check_values
209
213
  raise ArgumentError, "blank strings must not be provided as versions" if [version, previous_version].any?("")
210
214
 
@@ -1,12 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "wildcard_matcher"
4
+
3
5
  module Dependabot
4
6
  class DependencyGroup
5
- attr_reader :name, :rules
7
+ attr_reader :name, :rules, :dependencies
6
8
 
7
9
  def initialize(name:, rules:)
8
10
  @name = name
9
11
  @rules = rules
12
+ @dependencies = []
13
+ end
14
+
15
+ def contains?(dependency)
16
+ @dependencies.include?(dependency) if @dependencies.any?
17
+ rules.any? { |rule| WildcardMatcher.match?(rule, dependency.name) }
10
18
  end
11
19
  end
12
20
  end
@@ -153,7 +153,7 @@ module Dependabot
153
153
  end
154
154
 
155
155
  def version_class
156
- @version_class ||= Utils.version_class_for_package_manager(@combined.package_manager)
156
+ @version_class ||= @combined.version_class
157
157
  end
158
158
  end
159
159
  private_constant :DependencySlot
@@ -459,11 +459,11 @@ module Dependabot
459
459
  end
460
460
 
461
461
  def version_class
462
- @version_class ||= Utils.version_class_for_package_manager(dependency.package_manager)
462
+ @version_class ||= dependency.version_class
463
463
  end
464
464
 
465
465
  def requirement_class
466
- @requirement_class ||= Utils.requirement_class_for_package_manager(dependency.package_manager)
466
+ @requirement_class ||= dependency.requirement_class
467
467
  end
468
468
 
469
469
  def local_repo_git_metadata_fetcher
@@ -164,7 +164,7 @@ module Dependabot
164
164
  end
165
165
 
166
166
  def version_class
167
- Utils.version_class_for_package_manager(dependency.package_manager)
167
+ dependency.version_class
168
168
  end
169
169
  end
170
170
  end
@@ -341,13 +341,11 @@ module Dependabot
341
341
  end
342
342
 
343
343
  def version_class
344
- Utils.version_class_for_package_manager(dependency.package_manager)
344
+ dependency.version_class
345
345
  end
346
346
 
347
347
  def requirement_class
348
- Utils.requirement_class_for_package_manager(
349
- dependency.package_manager
350
- )
348
+ dependency.requirement_class
351
349
  end
352
350
 
353
351
  def git_sha?(version)
@@ -186,7 +186,7 @@ module Dependabot
186
186
  end
187
187
 
188
188
  def version_class
189
- Utils.version_class_for_package_manager(dependency.package_manager)
189
+ dependency.version_class
190
190
  end
191
191
 
192
192
  def fetch_dependency_releases
@@ -3,6 +3,7 @@
3
3
  require "pathname"
4
4
  require "dependabot/clients/github_with_retries"
5
5
  require "dependabot/clients/gitlab_with_retries"
6
+ require "dependabot/dependency_group"
6
7
  require "dependabot/logger"
7
8
  require "dependabot/metadata_finders"
8
9
  require "dependabot/pull_request_creator"
@@ -21,12 +22,13 @@ module Dependabot
21
22
  attr_reader :source, :dependencies, :files, :credentials,
22
23
  :pr_message_header, :pr_message_footer,
23
24
  :commit_message_options, :vulnerabilities_fixed,
24
- :github_redirection_service
25
+ :github_redirection_service, :dependency_group
25
26
 
26
27
  def initialize(source:, dependencies:, files:, credentials:,
27
28
  pr_message_header: nil, pr_message_footer: nil,
28
29
  commit_message_options: {}, vulnerabilities_fixed: {},
29
- github_redirection_service: DEFAULT_GITHUB_REDIRECTION_SERVICE)
30
+ github_redirection_service: DEFAULT_GITHUB_REDIRECTION_SERVICE,
31
+ dependency_group: nil)
30
32
  @dependencies = dependencies
31
33
  @files = files
32
34
  @source = source
@@ -36,19 +38,13 @@ module Dependabot
36
38
  @commit_message_options = commit_message_options
37
39
  @vulnerabilities_fixed = vulnerabilities_fixed
38
40
  @github_redirection_service = github_redirection_service
41
+ @dependency_group = dependency_group
39
42
  end
40
43
 
41
44
  def pr_name
42
- begin
43
- pr_name = pr_name_prefixer.pr_name_prefix
44
- rescue StandardError => e
45
- Dependabot.logger.error("Error while generating PR name: #{e.message}")
46
- pr_name = ""
47
- end
48
- pr_name += library? ? library_pr_name : application_pr_name
49
- return pr_name if files.first.directory == "/"
50
-
51
- pr_name + " in #{files.first.directory}"
45
+ name = dependency_group ? group_pr_name : solo_pr_name
46
+ name[0] = name[0].capitalize if pr_name_prefixer.capitalize_first_word?
47
+ "#{pr_name_prefix}#{name}"
52
48
  end
53
49
 
54
50
  def pr_message
@@ -82,11 +78,13 @@ module Dependabot
82
78
 
83
79
  private
84
80
 
85
- def library_pr_name
86
- pr_name = "update "
87
- pr_name = pr_name.capitalize if pr_name_prefixer.capitalize_first_word?
81
+ def solo_pr_name
82
+ name = library? ? library_pr_name : application_pr_name
83
+ "#{name}#{pr_name_directory}"
84
+ end
88
85
 
89
- pr_name +
86
+ def library_pr_name
87
+ "update " +
90
88
  if dependencies.count == 1
91
89
  "#{dependencies.first.display_name} requirement " \
92
90
  "#{from_version_msg(old_library_requirement(dependencies.first))}" \
@@ -101,12 +99,8 @@ module Dependabot
101
99
  end
102
100
  end
103
101
 
104
- # rubocop:disable Metrics/AbcSize
105
102
  def application_pr_name
106
- pr_name = "bump "
107
- pr_name = pr_name.capitalize if pr_name_prefixer.capitalize_first_word?
108
-
109
- pr_name +
103
+ "bump " +
110
104
  if dependencies.count == 1
111
105
  dependency = dependencies.first
112
106
  "#{dependency.display_name} " \
@@ -131,10 +125,23 @@ module Dependabot
131
125
  end
132
126
  end
133
127
  end
134
- # rubocop:enable Metrics/AbcSize
128
+
129
+ def group_pr_name
130
+ updates = dependencies.map(&:name).uniq.count
131
+ "bump the #{dependency_group.name} group#{pr_name_directory} with #{updates} update#{'s' if updates > 1}"
132
+ end
135
133
 
136
134
  def pr_name_prefix
137
135
  pr_name_prefixer.pr_name_prefix
136
+ rescue StandardError => e
137
+ Dependabot.logger.error("Error while generating PR name: #{e.message}")
138
+ ""
139
+ end
140
+
141
+ def pr_name_directory
142
+ return "" if files.first.directory == "/"
143
+
144
+ " in #{files.first.directory}"
138
145
  end
139
146
 
140
147
  def commit_subject
@@ -226,7 +226,8 @@ module Dependabot
226
226
  pr_message_header: pr_message_header,
227
227
  pr_message_footer: pr_message_footer,
228
228
  vulnerabilities_fixed: vulnerabilities_fixed,
229
- github_redirection_service: github_redirection_service
229
+ github_redirection_service: github_redirection_service,
230
+ dependency_group: dependency_group
230
231
  )
231
232
  end
232
233
 
@@ -113,11 +113,11 @@ module Dependabot
113
113
  end
114
114
 
115
115
  def version_class
116
- Utils.version_class_for_package_manager(dependency.package_manager)
116
+ dependency.version_class
117
117
  end
118
118
 
119
119
  def requirement_class
120
- Utils.requirement_class_for_package_manager(dependency.package_manager)
120
+ dependency.requirement_class
121
121
  end
122
122
 
123
123
  # For some languages, the manifest file may be constructed such that
data/lib/dependabot.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.216.1"
4
+ VERSION = "0.216.2"
5
5
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ class WildcardMatcher
4
+ def self.match?(wildcard_string, candidate_string)
5
+ return false unless wildcard_string && candidate_string
6
+
7
+ regex_string = "a#{wildcard_string.downcase}a".split("*").
8
+ map { |p| Regexp.quote(p) }.
9
+ join(".*").gsub(/^a|a$/, "")
10
+ regex = /^#{regex_string}$/
11
+ regex.match?(candidate_string.downcase)
12
+ end
13
+ end
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.216.1
4
+ version: 0.216.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-14 00:00:00.000000000 Z
11
+ date: 2023-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-codecommit
@@ -488,6 +488,7 @@ files:
488
488
  - lib/dependabot/update_checkers/version_filters.rb
489
489
  - lib/dependabot/utils.rb
490
490
  - lib/dependabot/version.rb
491
+ - lib/wildcard_matcher.rb
491
492
  homepage: https://github.com/dependabot/dependabot-core
492
493
  licenses:
493
494
  - Nonstandard