dependabot-maven 0.263.0 → 0.264.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 552768ff6db96fce263a5a771e6a7026292b7762f164e4c8db9b9d086ef1fbf1
4
- data.tar.gz: 2eae3cbb621aebdeeebb4de95093f7c4b002bcde6e8b1b7e29e1367120a13686
3
+ metadata.gz: 51df7f3dc716cc7674949df83e48d90d04921493c750524def54b0cbe24dc920
4
+ data.tar.gz: b2cd29d713898236089bd0049b12b05098f5cd9f7e8e3393a711955fc1dbea66
5
5
  SHA512:
6
- metadata.gz: 5e7a9f332a6295e56d186774f400680129af29f257b359c9636dae18b9234efc73826c7f76d5d3574a7aa04bc5c2f7391e3c7b1a4e92e916278349d35ce6ee17
7
- data.tar.gz: e8d6f1a5cd5a23161dad0d8fdde58538c4c63d402783dd420f0778ee3e008a68b59c63dc0e659f2ca41f616bb3ad0b728ada61666b41409dcfb4e8c5bebee66f
6
+ metadata.gz: 76f561eb9ab1cef94fe2cf02455ba8b63ed98296c8aa17b12a8e7e19297e883b03380fc4feb0644f9b3ff296e59a42bb40563cc905106ff2343195281ae88e95
7
+ data.tar.gz: 134b49a299b44872d274fad695741584eaced44b3528a78a6d3178334f1f1582c440b9260295f758af5f0310456ac71fa123dc0a062aed73788bdc4aec306098
@@ -1,6 +1,7 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "sorbet-runtime"
4
5
  require "nokogiri"
5
6
 
6
7
  require "dependabot/dependency_file"
@@ -11,15 +12,19 @@ module Dependabot
11
12
  module Maven
12
13
  class FileParser
13
14
  class PomFetcher
15
+ extend T::Sig
16
+
17
+ sig { params(dependency_files: T::Array[DependencyFile]).void }
14
18
  def initialize(dependency_files:)
15
19
  @dependency_files = dependency_files
16
- @poms = {}
20
+ @poms = T.let({}, T::Hash[String, DependencyFile])
17
21
  end
18
22
 
23
+ sig { returns(T::Hash[String, DependencyFile]) }
19
24
  def internal_dependency_poms
20
25
  return @internal_dependency_poms if @internal_dependency_poms
21
26
 
22
- @internal_dependency_poms = {}
27
+ @internal_dependency_poms = T.let({}, T.nilable(T::Hash[String, DependencyFile]))
23
28
  dependency_files.each do |pom|
24
29
  doc = Nokogiri::XML(pom.content)
25
30
  group_id = doc.at_css("project > groupId") ||
@@ -33,12 +38,20 @@ module Dependabot
33
38
  artifact_id.content.strip
34
39
  ].join(":")
35
40
 
36
- @internal_dependency_poms[dependency_name] = pom
41
+ T.must(@internal_dependency_poms)[dependency_name] = pom
37
42
  end
38
43
 
39
- @internal_dependency_poms
44
+ T.must(@internal_dependency_poms)
40
45
  end
41
46
 
47
+ sig do
48
+ params(
49
+ group_id: String,
50
+ artifact_id: String,
51
+ version: String,
52
+ urls_to_try: T::Array[String]
53
+ ).returns(T.nilable(DependencyFile)) # Fix: Added closing parenthesis
54
+ end
42
55
  def fetch_remote_parent_pom(group_id, artifact_id, version, urls_to_try)
43
56
  pom_id = "#{group_id}:#{artifact_id}:#{version}"
44
57
  return @poms[pom_id] if @poms.key?(pom_id)
@@ -74,24 +87,33 @@ module Dependabot
74
87
 
75
88
  private
76
89
 
90
+ sig { params(group_id: String, artifact_id: String, version: String, base_repo_url: String).returns(String) }
77
91
  def remote_pom_url(group_id, artifact_id, version, base_repo_url)
78
92
  "#{base_repo_url}/" \
79
93
  "#{group_id.tr('.', '/')}/#{artifact_id}/#{version}/" \
80
94
  "#{artifact_id}-#{version}.pom"
81
95
  end
82
96
 
97
+ sig do
98
+ params(group_id: String, artifact_id: String, version: String, snapshot_version: String,
99
+ base_repo_url: String).returns(String)
100
+ end
83
101
  def remote_pom_snapshot_url(group_id, artifact_id, version, snapshot_version, base_repo_url)
84
102
  "#{base_repo_url}/" \
85
103
  "#{group_id.tr('.', '/')}/#{artifact_id}/#{version}/" \
86
104
  "#{artifact_id}-#{snapshot_version}.pom"
87
105
  end
88
106
 
107
+ sig { params(group_id: String, artifact_id: String, version: String, base_repo_url: String).returns(String) }
89
108
  def remote_pom_snapshot_metadata_url(group_id, artifact_id, version, base_repo_url)
90
109
  "#{base_repo_url}/" \
91
110
  "#{group_id.tr('.', '/')}/#{artifact_id}/#{version}/" \
92
111
  "maven-metadata.xml"
93
112
  end
94
113
 
114
+ sig do
115
+ params(group_id: String, artifact_id: String, version: String, base_url: String).returns(T.nilable(String))
116
+ end
95
117
  def fetch_snapshot_pom_url(group_id, artifact_id, version, base_url)
96
118
  url = remote_pom_snapshot_metadata_url(group_id, artifact_id, version, base_url)
97
119
  response = fetch(url)
@@ -107,15 +129,18 @@ module Dependabot
107
129
  remote_pom_snapshot_url(group_id, artifact_id, version, snapshot, base_url)
108
130
  end
109
131
 
132
+ sig { params(url: String).returns(Excon::Response) }
110
133
  def fetch(url)
111
- @maven_responses ||= {}
134
+ @maven_responses ||= T.let({}, T.nilable(T::Hash[String, Excon::Response]))
112
135
  @maven_responses[url] ||= Dependabot::RegistryClient.get(url: url, options: { retry_limit: 1 })
113
136
  end
114
137
 
138
+ sig { params(content: String).returns(T::Boolean) }
115
139
  def pom?(content)
116
140
  !Nokogiri::XML(content).at_css("project > artifactId").nil?
117
141
  end
118
142
 
143
+ sig { returns(T::Array[DependencyFile]) }
119
144
  attr_reader :dependency_files
120
145
  end
121
146
  end
@@ -1,8 +1,8 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "nokogiri"
5
-
5
+ require "sorbet-runtime"
6
6
  require "dependabot/dependency_file"
7
7
  require "dependabot/maven/file_parser"
8
8
  require "dependabot/registry_client"
@@ -14,17 +14,24 @@ module Dependabot
14
14
  module Maven
15
15
  class FileParser
16
16
  class PropertyValueFinder
17
+ extend T::Sig
18
+
17
19
  require_relative "repositories_finder"
18
20
  require_relative "pom_fetcher"
19
21
 
20
22
  DOT_SEPARATOR_REGEX = %r{\.(?!\d+([.\/_\-]|$)+)}
21
23
 
24
+ sig { params(dependency_files: T::Array[DependencyFile], credentials: T::Array[String]).void }
22
25
  def initialize(dependency_files:, credentials: [])
23
26
  @dependency_files = dependency_files
24
27
  @credentials = credentials
25
- @pom_fetcher = PomFetcher.new(dependency_files: dependency_files)
28
+ @pom_fetcher = T.let(PomFetcher.new(dependency_files: dependency_files),
29
+ Dependabot::Maven::FileParser::PomFetcher)
26
30
  end
27
31
 
32
+ sig do
33
+ params(property_name: String, callsite_pom: DependencyFile).returns(T.nilable(T::Hash[Symbol, T.untyped]))
34
+ end
28
35
  def property_details(property_name:, callsite_pom:)
29
36
  pom = callsite_pom
30
37
  doc = Nokogiri::XML(pom.content)
@@ -71,8 +78,17 @@ module Dependabot
71
78
 
72
79
  private
73
80
 
81
+ sig { returns(T::Array[DependencyFile]) }
74
82
  attr_reader :dependency_files
75
83
 
84
+ sig do
85
+ params(
86
+ expression: String,
87
+ property_name: String,
88
+ callsite_pom: DependencyFile
89
+ )
90
+ .returns(T.nilable(T::Hash[Symbol, String]))
91
+ end
76
92
  def extract_value_from_expression(expression:, property_name:, callsite_pom:)
77
93
  # and the expression is pointing to self then raise the error
78
94
  if expression.eql?("${#{property_name}}")
@@ -83,14 +99,16 @@ module Dependabot
83
99
  end
84
100
 
85
101
  # and the expression is pointing to another tag, then get the value of that tag
86
- property_details(property_name: expression.slice(2..-2), callsite_pom: callsite_pom)
102
+ property_details(property_name: T.must(expression.slice(2..-2)), callsite_pom: callsite_pom)
87
103
  end
88
104
 
105
+ sig { params(property_name: String).returns(String) }
89
106
  def sanitize_property_name(property_name)
90
107
  property_name.sub(/^pom\./, "").sub(/^project\./, "")
91
108
  end
92
109
 
93
110
  # rubocop:disable Metrics/PerceivedComplexity
111
+ sig { params(pom: DependencyFile).returns(T.nilable(DependencyFile)) }
94
112
  def parent_pom(pom)
95
113
  doc = Nokogiri::XML(pom.content)
96
114
  doc.remove_namespaces!
@@ -111,6 +129,7 @@ module Dependabot
111
129
  end
112
130
  # rubocop:enable Metrics/PerceivedComplexity
113
131
 
132
+ sig { params(pom: DependencyFile).returns(T::Array[String]) }
114
133
  def parent_repository_urls(pom)
115
134
  repositories_finder.repository_urls(
116
135
  pom: pom,
@@ -119,14 +138,17 @@ module Dependabot
119
138
  )
120
139
  end
121
140
 
141
+ sig { returns(RepositoriesFinder) }
122
142
  def repositories_finder
123
- @repositories_finder ||=
124
- RepositoriesFinder.new(
143
+ @repositories_finder ||= T.let(
144
+ Dependabot::Maven::FileParser::RepositoriesFinder.new(
125
145
  pom_fetcher: @pom_fetcher,
126
146
  dependency_files: dependency_files,
127
147
  credentials: @credentials,
128
148
  evaluate_properties: false
129
- )
149
+ ),
150
+ T.nilable(Dependabot::Maven::FileParser::RepositoriesFinder)
151
+ )
130
152
  end
131
153
  end
132
154
  end
@@ -1,4 +1,4 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "nokogiri"
@@ -15,6 +15,7 @@ require "dependabot/errors"
15
15
  module Dependabot
16
16
  module Maven
17
17
  class FileParser < Dependabot::FileParsers::Base
18
+ extend T::Sig
18
19
  require "dependabot/file_parsers/base/dependency_set"
19
20
  require_relative "file_parser/property_value_finder"
20
21
 
@@ -35,6 +36,7 @@ module Dependabot
35
36
  # Regex to get the property name from a declaration that uses a property
36
37
  PROPERTY_REGEX = /\$\{(?<property>.*?)\}/
37
38
 
39
+ sig { override.returns(T::Array[Dependabot::Dependency]) }
38
40
  def parse
39
41
  dependency_set = DependencySet.new
40
42
  pomfiles.each { |pom| dependency_set += pomfile_dependencies(pom) }
@@ -44,6 +46,7 @@ module Dependabot
44
46
 
45
47
  private
46
48
 
49
+ sig { params(pom: Dependabot::DependencyFile).returns(DependencySet) }
47
50
  def pomfile_dependencies(pom)
48
51
  dependency_set = DependencySet.new
49
52
 
@@ -70,6 +73,7 @@ module Dependabot
70
73
  dependency_set
71
74
  end
72
75
 
76
+ sig { params(extension: Dependabot::DependencyFile).returns(DependencySet) }
73
77
  def extensionfile_dependencies(extension)
74
78
  dependency_set = DependencySet.new
75
79
 
@@ -89,6 +93,10 @@ module Dependabot
89
93
  dependency_set
90
94
  end
91
95
 
96
+ sig do
97
+ params(pom: Dependabot::DependencyFile,
98
+ dependency_node: Nokogiri::XML::Element).returns(T.nilable(Dependabot::Dependency))
99
+ end
92
100
  def dependency_from_dependency_node(pom, dependency_node)
93
101
  return unless (name = dependency_name(dependency_node, pom))
94
102
  return if internal_dependency_names.include?(name)
@@ -96,6 +104,10 @@ module Dependabot
96
104
  build_dependency(pom, dependency_node, name)
97
105
  end
98
106
 
107
+ sig do
108
+ params(pom: Dependabot::DependencyFile,
109
+ dependency_node: Nokogiri::XML::Element).returns(T.nilable(Dependabot::Dependency))
110
+ end
99
111
  def dependency_from_plugin_node(pom, dependency_node)
100
112
  return unless (name = plugin_name(dependency_node, pom))
101
113
  return if internal_dependency_names.include?(name)
@@ -103,6 +115,10 @@ module Dependabot
103
115
  build_dependency(pom, dependency_node, name)
104
116
  end
105
117
 
118
+ sig do
119
+ params(pom: Dependabot::DependencyFile, dependency_node: Nokogiri::XML::Element,
120
+ name: String).returns(T.nilable(Dependabot::Dependency))
121
+ end
106
122
  def build_dependency(pom, dependency_node, name)
107
123
  property_details =
108
124
  {
@@ -127,6 +143,10 @@ module Dependabot
127
143
  )
128
144
  end
129
145
 
146
+ sig do
147
+ params(dependency_node: Nokogiri::XML::Element,
148
+ pom: Dependabot::DependencyFile).returns(T.nilable(String))
149
+ end
130
150
  def dependency_name(dependency_node, pom)
131
151
  return unless dependency_node.at_xpath("./groupId")
132
152
  return unless dependency_node.at_xpath("./artifactId")
@@ -143,6 +163,9 @@ module Dependabot
143
163
  ].join(":")
144
164
  end
145
165
 
166
+ sig do
167
+ params(dependency_node: Nokogiri::XML::Element, pom: Dependabot::DependencyFile).returns(T.nilable(String))
168
+ end
146
169
  def dependency_classifier(dependency_node, pom)
147
170
  return unless dependency_node.at_xpath("./classifier")
148
171
 
@@ -152,6 +175,9 @@ module Dependabot
152
175
  )
153
176
  end
154
177
 
178
+ sig do
179
+ params(dependency_node: Nokogiri::XML::Element, pom: Dependabot::DependencyFile).returns(T.nilable(String))
180
+ end
155
181
  def plugin_name(dependency_node, pom)
156
182
  return unless plugin_group_id(pom, dependency_node)
157
183
  return unless dependency_node.at_xpath("./artifactId")
@@ -165,6 +191,7 @@ module Dependabot
165
191
  ].join(":")
166
192
  end
167
193
 
194
+ sig { params(pom: Dependabot::DependencyFile, node: Nokogiri::XML::Element).returns(T.nilable(String)) }
168
195
  def plugin_group_id(pom, node)
169
196
  return "org.apache.maven.plugins" unless node.at_xpath("./groupId")
170
197
 
@@ -174,6 +201,9 @@ module Dependabot
174
201
  )
175
202
  end
176
203
 
204
+ sig do
205
+ params(pom: Dependabot::DependencyFile, dependency_node: Nokogiri::XML::Element).returns(T.nilable(String))
206
+ end
177
207
  def dependency_version(pom, dependency_node)
178
208
  requirement = dependency_requirement(pom, dependency_node)
179
209
  return nil unless requirement
@@ -185,6 +215,9 @@ module Dependabot
185
215
  requirement.gsub(/[\(\)\[\]]/, "").strip
186
216
  end
187
217
 
218
+ sig do
219
+ params(pom: Dependabot::DependencyFile, dependency_node: Nokogiri::XML::Element).returns(T.nilable(String))
220
+ end
188
221
  def dependency_requirement(pom, dependency_node)
189
222
  return unless dependency_node.at_xpath("./version")
190
223
 
@@ -194,10 +227,12 @@ module Dependabot
194
227
  version_content.empty? ? nil : version_content
195
228
  end
196
229
 
230
+ sig { params(pom: Dependabot::DependencyFile, dependency_node: Nokogiri::XML::Element).returns(T::Array[String]) }
197
231
  def dependency_groups(pom, dependency_node)
198
232
  dependency_scope(pom, dependency_node) == "test" ? ["test"] : []
199
233
  end
200
234
 
235
+ sig { params(pom: Dependabot::DependencyFile, dependency_node: Nokogiri::XML::Element).returns(String) }
201
236
  def dependency_scope(pom, dependency_node)
202
237
  return "compile" unless dependency_node.at_xpath("./scope")
203
238
 
@@ -207,6 +242,7 @@ module Dependabot
207
242
  scope_content.empty? ? "compile" : scope_content
208
243
  end
209
244
 
245
+ sig { params(pom: Dependabot::DependencyFile, dependency_node: Nokogiri::XML::Element).returns(String) }
210
246
  def packaging_type(pom, dependency_node)
211
247
  return "pom" if dependency_node.node_name == "parent"
212
248
  return "jar" unless dependency_node.at_xpath("./type")
@@ -217,6 +253,7 @@ module Dependabot
217
253
  evaluated_value(packaging_type_content, pom)
218
254
  end
219
255
 
256
+ sig { params(dependency_node: Nokogiri::XML::Element).returns(T.nilable(String)) }
220
257
  def version_property_name(dependency_node)
221
258
  return unless dependency_node.at_xpath("./version")
222
259
 
@@ -228,17 +265,21 @@ module Dependabot
228
265
  .named_captures.fetch("property")
229
266
  end
230
267
 
268
+ sig { params(value: String, pom: Dependabot::DependencyFile).returns(String) }
231
269
  def evaluated_value(value, pom)
232
270
  return value unless value.match?(PROPERTY_REGEX)
233
271
 
234
- property_name = value.match(PROPERTY_REGEX)
235
- .named_captures.fetch("property")
236
- property_value = value_for_property(property_name, pom)
272
+ property_name = T.must(value.match(PROPERTY_REGEX))
273
+ .named_captures.fetch("property")
274
+ property_value = value_for_property(T.must(property_name), pom)
237
275
 
238
276
  new_value = value.gsub(value.match(PROPERTY_REGEX).to_s, property_value)
239
277
  evaluated_value(new_value, pom)
240
278
  end
241
279
 
280
+ sig do
281
+ params(dependency_node: Nokogiri::XML::Element, pom: Dependabot::DependencyFile).returns(T.nilable(String))
282
+ end
242
283
  def property_source(dependency_node, pom)
243
284
  property_name = version_property_name(dependency_node)
244
285
  return unless property_name
@@ -254,6 +295,7 @@ module Dependabot
254
295
  raise DependencyFileNotEvaluatable, msg
255
296
  end
256
297
 
298
+ sig { params(property_name: String, pom: Dependabot::DependencyFile).returns(String) }
257
299
  def value_for_property(property_name, pom)
258
300
  value =
259
301
  property_value_finder
@@ -268,25 +310,35 @@ module Dependabot
268
310
 
269
311
  # Cached, since this can makes calls to the registry (to get property
270
312
  # values from parent POMs)
313
+ sig { returns(Dependabot::Maven::FileParser::PropertyValueFinder) }
271
314
  def property_value_finder
272
- @property_value_finder ||=
273
- PropertyValueFinder.new(dependency_files: dependency_files, credentials: credentials)
315
+ @property_value_finder ||= T.let(
316
+ PropertyValueFinder.new(dependency_files: dependency_files, credentials: credentials.map(&:to_s)),
317
+ T.nilable(Dependabot::Maven::FileParser::PropertyValueFinder)
318
+ )
274
319
  end
275
320
 
321
+ sig { returns(T::Array[Dependabot::DependencyFile]) }
276
322
  def pomfiles
277
- @pomfiles ||=
323
+ @pomfiles ||= T.let(
278
324
  dependency_files.select do |f|
279
325
  f.name.end_with?(".xml") && !f.name.end_with?("extensions.xml")
280
- end
326
+ end,
327
+ T.nilable(T::Array[Dependabot::DependencyFile])
328
+ )
281
329
  end
282
330
 
331
+ sig { returns(T::Array[Dependabot::DependencyFile]) }
283
332
  def extensionfiles
284
- @extensionfiles ||=
285
- dependency_files.select { |f| f.name.end_with?("extensions.xml") }
333
+ @extensionfiles ||= T.let(
334
+ dependency_files.select { |f| f.name.end_with?("extensions.xml") },
335
+ T.nilable(T::Array[Dependabot::DependencyFile])
336
+ )
286
337
  end
287
338
 
339
+ sig { returns(T::Array[String]) }
288
340
  def internal_dependency_names
289
- @internal_dependency_names ||=
341
+ @internal_dependency_names ||= T.let(
290
342
  dependency_files.filter_map do |pom|
291
343
  doc = Nokogiri::XML(pom.content)
292
344
  group_id = doc.at_css("project > groupId") ||
@@ -296,9 +348,12 @@ module Dependabot
296
348
  next unless group_id && artifact_id
297
349
 
298
350
  [group_id.content.strip, artifact_id.content.strip].join(":")
299
- end
351
+ end,
352
+ T.nilable(T::Array[String])
353
+ )
300
354
  end
301
355
 
356
+ sig { override.void }
302
357
  def check_required_files
303
358
  raise "No pom.xml!" unless get_original_file("pom.xml")
304
359
  end
@@ -1,6 +1,7 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "sorbet-runtime"
4
5
  require "nokogiri"
5
6
 
6
7
  require "dependabot/dependency_file"
@@ -11,54 +12,72 @@ module Dependabot
11
12
  module Maven
12
13
  class FileUpdater
13
14
  class PropertyValueUpdater
15
+ extend T::Sig
16
+
17
+ sig { params(dependency_files: T::Array[DependencyFile]).void }
14
18
  def initialize(dependency_files:)
15
19
  @dependency_files = dependency_files
16
20
  end
17
21
 
22
+ # rubocop:disable Metrics/AbcSize
23
+ # rubocop:disable Metrics/PerceivedComplexity
24
+ sig do
25
+ params(
26
+ property_name: String,
27
+ callsite_pom: DependencyFile,
28
+ updated_value: String
29
+ ).returns(T::Array[DependencyFile])
30
+ end
18
31
  def update_pomfiles_for_property_change(property_name:, callsite_pom:,
19
32
  updated_value:)
20
33
  declaration_details = property_value_finder.property_details(
21
34
  property_name: property_name,
22
35
  callsite_pom: callsite_pom
23
36
  )
24
- node = declaration_details.fetch(:node)
25
- filename = declaration_details.fetch(:file)
37
+ node = declaration_details&.fetch(:node)
38
+ filename = declaration_details&.fetch(:file)
26
39
 
27
40
  pom_to_update = dependency_files.find { |f| f.name == filename }
28
41
  property_re = %r{<#{Regexp.quote(node.name)}>
29
42
  \s*#{Regexp.quote(node.content)}\s*
30
43
  </#{Regexp.quote(node.name)}>}xm
31
44
  property_text = node.to_s
32
- if pom_to_update.content&.match?(property_re)
33
- updated_content = pom_to_update.content.sub(
45
+ if pom_to_update&.content&.match?(property_re)
46
+ updated_content = pom_to_update&.content&.sub(
34
47
  property_re,
35
48
  "<#{node.name}>#{updated_value}</#{node.name}>"
36
49
  )
37
- elsif pom_to_update.content.include? property_text
50
+ elsif pom_to_update&.content&.include? property_text
38
51
  node.content = updated_value
39
- updated_content = pom_to_update.content.sub(
52
+ updated_content = pom_to_update&.content&.sub(
40
53
  property_text,
41
54
  node.to_s
42
55
  )
43
56
  end
44
57
 
45
58
  updated_pomfiles = dependency_files.dup
46
- updated_pomfiles[updated_pomfiles.index(pom_to_update)] =
47
- update_file(file: pom_to_update, content: updated_content)
59
+ updated_pomfiles[T.must(updated_pomfiles.index(pom_to_update))] =
60
+ update_file(file: T.must(pom_to_update), content: T.must(updated_content))
48
61
 
49
62
  updated_pomfiles
50
63
  end
64
+ # rubocop:enable Metrics/PerceivedComplexity
65
+ # rubocop:enable Metrics/AbcSize
51
66
 
52
67
  private
53
68
 
69
+ sig { returns T::Array[Dependabot::DependencyFile] }
54
70
  attr_reader :dependency_files
55
71
 
72
+ sig { returns Maven::FileParser::PropertyValueFinder }
56
73
  def property_value_finder
57
- @property_value_finder ||=
58
- Maven::FileParser::PropertyValueFinder
59
- .new(dependency_files: dependency_files)
74
+ @property_value_finder ||= T.let(
75
+ Maven::FileParser::PropertyValueFinder.new(dependency_files: dependency_files),
76
+ T.nilable(Dependabot::Maven::FileParser::PropertyValueFinder)
77
+ )
60
78
  end
61
79
 
80
+ sig { params(file: DependencyFile, content: String).returns(DependencyFile) }
62
81
  def update_file(file:, content:)
63
82
  updated_file = file.dup
64
83
  updated_file.content = content
@@ -138,7 +138,7 @@ module Dependabot
138
138
  def property_value_finder
139
139
  @property_value_finder ||=
140
140
  Maven::FileParser::PropertyValueFinder
141
- .new(dependency_files: dependency_files, credentials: credentials)
141
+ .new(dependency_files: dependency_files, credentials: credentials.map(&:to_s))
142
142
  end
143
143
 
144
144
  def version_comes_from_multi_dependency_property?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-maven
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.263.0
4
+ version: 0.264.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-27 00:00:00.000000000 Z
11
+ date: 2024-07-05 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.263.0
19
+ version: 0.264.0
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.263.0
26
+ version: 0.264.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: debug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -264,7 +264,7 @@ licenses:
264
264
  - MIT
265
265
  metadata:
266
266
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
267
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.263.0
267
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.264.0
268
268
  post_install_message:
269
269
  rdoc_options: []
270
270
  require_paths: