dependabot-maven 0.342.2 → 0.343.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: 0d7a93e87ca2f1d0da526b2445a9af14586e8b6909c7e20505c3edb02c6484bd
4
- data.tar.gz: '09fdc4c942e5f4573224f94d90d5115860f969e3a83fc16db90841f0f30cf64c'
3
+ metadata.gz: 975d281cfd454c2d1524b8a77fced5b2040ff104cd0c0989d45acffe18988d4f
4
+ data.tar.gz: 91587156337eb764be0168703579558c50a134a6c15ce9e235d9318141bdfef9
5
5
  SHA512:
6
- metadata.gz: c2914b7f0b39c7f02d8c343b1c6e80ec69188966ccbcf36e57c1978930240a6fbfcfe4698e3731c3cc6f88c985c3b4d69334f23ada341f9c93f068073fea7a30
7
- data.tar.gz: aaee9db165f27c67cc88e33009432d844e5eed8d37e35b7245c9abdb510b4af3f4f833048441c40af6858dd8bb6ce459554a5af89dc340576f298225490fbf12
6
+ metadata.gz: 93ba3833938dfb35c0c937ce9859e55515b29b27e85b21643e3b2169a42cb0c85a120ad4e3bbccba57d4663edd8a14c295cf547ce82e3a51088f9cbea9c0454a
7
+ data.tar.gz: 7583568de4499b7c72d1d32a94149ecd0dcfa20573db44e96af07de58b399efe48e783d0079383271f046608d2913cc4cbc4927a3864f7685ec415f719092569
@@ -33,6 +33,7 @@ module Dependabot
33
33
  fetched_files << pom
34
34
  fetched_files += child_poms
35
35
  fetched_files += relative_path_parents(fetched_files)
36
+ fetched_files += targetfiles
36
37
  fetched_files << extensions if extensions
37
38
 
38
39
  # Filter excluded files from final collection
@@ -55,6 +56,15 @@ module Dependabot
55
56
  @extensions ||= T.let(fetch_file_if_present(".mvn/extensions.xml"), T.nilable(Dependabot::DependencyFile))
56
57
  end
57
58
 
59
+ sig { returns(T::Array[DependencyFile]) }
60
+ def targetfiles
61
+ repo_contents(raise_errors: false)
62
+ .select { |f| f.type == "file" && f.name.end_with?(".target") }
63
+ .map { |f| fetch_file_from_host(f.name) }
64
+ rescue Dependabot::DirectoryNotFound, Octokit::NotFound
65
+ []
66
+ end
67
+
58
68
  sig { returns(T::Array[DependencyFile]) }
59
69
  def child_poms
60
70
  recursively_fetch_child_poms(T.must(pom), fetched_filenames: ["pom.xml"])
@@ -36,6 +36,7 @@ module Dependabot
36
36
  "annotationProcessorPaths > path"
37
37
  PLUGIN_SELECTOR = "plugins > plugin"
38
38
  EXTENSION_SELECTOR = "extensions > extension"
39
+ TARGET_SELECTOR = "target > locations > location[type='Maven'] > dependencies > dependency"
39
40
  PLUGIN_ARTIFACT_ITEMS_SELECTOR = "plugins > plugin > executions > execution > " \
40
41
  "configuration > artifactItems > artifactItem"
41
42
 
@@ -44,31 +45,11 @@ module Dependabot
44
45
 
45
46
  sig { override.returns(T::Array[Dependabot::Dependency]) }
46
47
  def parse
47
- dependency_set = DependencySet.new
48
-
49
- dependencies = []
50
48
  if Dependabot::Experiments.enabled?(:maven_transitive_dependencies)
51
- dependency_set += MavenDependencyParser.build_dependency_set(pomfiles)
52
-
53
- pomfiles.each { |pom| dependency_set += pomfile_dependencies(pom) }
54
- extensionfiles.each { |extension| dependency_set += extensionfile_dependencies(extension) }
55
-
56
- dependency_set.dependencies.each do |dep|
57
- requirements = merge_requirements(dep.requirements)
58
- dependencies << Dependabot::Dependency.new(
59
- name: dep.name,
60
- version: dep.version,
61
- package_manager: "maven",
62
- requirements: requirements
63
- )
64
- end
49
+ parse_with_transitive_dependencies
65
50
  else
66
- pomfiles.each { |pom| dependency_set += pomfile_dependencies(pom) }
67
- extensionfiles.each { |extension| dependency_set += extensionfile_dependencies(extension) }
68
- dependencies = dependency_set.dependencies
51
+ parse_standard_dependencies
69
52
  end
70
-
71
- dependencies
72
53
  end
73
54
 
74
55
  sig { returns(Ecosystem) }
@@ -85,6 +66,36 @@ module Dependabot
85
66
 
86
67
  private
87
68
 
69
+ sig { returns(T::Array[Dependabot::Dependency]) }
70
+ def parse_with_transitive_dependencies
71
+ dependency_set = DependencySet.new
72
+ dependency_set += MavenDependencyParser.build_dependency_set(pomfiles)
73
+
74
+ pomfiles.each { |pom| dependency_set += pomfile_dependencies(pom) }
75
+ extensionfiles.each { |extension| dependency_set += extensionfile_dependencies(extension) }
76
+
77
+ dependencies = []
78
+ dependency_set.dependencies.each do |dep|
79
+ requirements = merge_requirements(dep.requirements)
80
+ dependencies << Dependabot::Dependency.new(
81
+ name: dep.name,
82
+ version: dep.version,
83
+ package_manager: "maven",
84
+ requirements: requirements
85
+ )
86
+ end
87
+ dependencies
88
+ end
89
+
90
+ sig { returns(T::Array[Dependabot::Dependency]) }
91
+ def parse_standard_dependencies
92
+ dependency_set = DependencySet.new
93
+ pomfiles.each { |pom| dependency_set += pomfile_dependencies(pom) }
94
+ extensionfiles.each { |extension| dependency_set += extensionfile_dependencies(extension) }
95
+ targetfiles.each { |target| dependency_set += targetfile_dependencies(target) }
96
+ dependency_set.dependencies
97
+ end
98
+
88
99
  sig { returns(Ecosystem::VersionManager) }
89
100
  def package_manager
90
101
  @package_manager ||= T.let(
@@ -150,6 +161,26 @@ module Dependabot
150
161
  dependency_set
151
162
  end
152
163
 
164
+ sig { params(target: Dependabot::DependencyFile).returns(DependencySet) }
165
+ def targetfile_dependencies(target)
166
+ dependency_set = DependencySet.new
167
+
168
+ errors = T.let([], T::Array[DependencyFileNotEvaluatable])
169
+ doc = Nokogiri::XML(target.content)
170
+ doc.remove_namespaces!
171
+
172
+ doc.css(TARGET_SELECTOR).each do |dependency_node|
173
+ dep = dependency_from_dependency_node(target, dependency_node)
174
+ dependency_set << dep if dep
175
+ rescue DependencyFileNotEvaluatable => e
176
+ errors << e
177
+ end
178
+
179
+ raise T.must(errors.first) if errors.any? && dependency_set.dependencies.none?
180
+
181
+ dependency_set
182
+ end
183
+
153
184
  sig do
154
185
  params(
155
186
  pom: Dependabot::DependencyFile,
@@ -402,6 +433,14 @@ module Dependabot
402
433
  )
403
434
  end
404
435
 
436
+ sig { returns(T::Array[Dependabot::DependencyFile]) }
437
+ def targetfiles
438
+ @targetfiles ||= T.let(
439
+ dependency_files.select { |f| f.name.end_with?(".target") },
440
+ T.nilable(T::Array[Dependabot::DependencyFile])
441
+ )
442
+ end
443
+
405
444
  sig { returns(T::Array[String]) }
406
445
  def internal_dependency_names
407
446
  @internal_dependency_names ||= T.let(
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-maven
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.342.2
4
+ version: 0.343.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.342.2
18
+ version: 0.343.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.342.2
25
+ version: 0.343.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rexml
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -285,7 +285,7 @@ licenses:
285
285
  - MIT
286
286
  metadata:
287
287
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
288
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.342.2
288
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.343.0
289
289
  rdoc_options: []
290
290
  require_paths:
291
291
  - lib