dependabot-maven 0.118.3 → 0.118.8

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: 57c3d6578720bd9d102d72f095e96f9526c96ad26c3f26e9bf9800fae9d82a83
4
- data.tar.gz: 2c8bb7210b3bdf57ddb5f8b5a941c7ac4943b08b8da8f9a2bd2ef5969b95c9f9
3
+ metadata.gz: 6f6faec3fcfa89189a62ab833d48e9d3f41910f80d973992de45886992e5f5d0
4
+ data.tar.gz: c3ac903e8befdb282eb57a7002754633bc11ad57587518c618bd0ac0c4d25638
5
5
  SHA512:
6
- metadata.gz: 576b996b863295860894ead54d1c5fa943b232e78f2e37a7e47ec5ed2aca5fe0d6e68daa2afc9e21e129679f6b79b618fba86b0cca3a9abf2d6d6a4e59ce8b19
7
- data.tar.gz: ab3f78c545843852a9d9b02e4507435e80fb47a577808a5b5774812279193e7b9c572cf8f420601454bff1d13541aa6123fe97214f3bdb7ddcc482a77884207f
6
+ metadata.gz: 84bed592396b9c0412c02c6b00bfb754c50e64ba372825b2841cb9949a8cd6cc460df4d5fed5909539ef5293c809ebb518095abf763df509f5f2b23c7e7f5bf9
7
+ data.tar.gz: 34dbbb17827cd184930675aeeae2b970802fcfa4b47e545dda68b358a0fcb4ee8637e2af957f07085643ad7946ecf6d7f12e6d10076254e5f944fb55268e5e66
@@ -22,7 +22,7 @@ Dependabot::Dependency.
22
22
  register_display_name_builder(
23
23
  "maven",
24
24
  lambda { |name|
25
- artifact_id = name.split(":").last
25
+ _group_id, artifact_id, _classifier = name.split(":")
26
26
  %w(bom library).include?(artifact_id) ? name : artifact_id
27
27
  }
28
28
  )
@@ -104,7 +104,7 @@ module Dependabot
104
104
  return unless dependency_node.at_xpath("./groupId")
105
105
  return unless dependency_node.at_xpath("./artifactId")
106
106
 
107
- [
107
+ name = [
108
108
  evaluated_value(
109
109
  dependency_node.at_xpath("./groupId").content.strip,
110
110
  pom
@@ -114,6 +114,15 @@ module Dependabot
114
114
  pom
115
115
  )
116
116
  ].join(":")
117
+
118
+ if dependency_node.at_xpath("./classifier")
119
+ name += ":#{evaluated_value(
120
+ dependency_node.at_xpath('./classifier').content.strip,
121
+ pom
122
+ )}"
123
+ end
124
+
125
+ name
117
126
  end
118
127
 
119
128
  def plugin_name(dependency_node, pom)
@@ -185,7 +194,6 @@ module Dependabot
185
194
  return unless dependency_node.at_xpath("./version")
186
195
 
187
196
  version_content = dependency_node.at_xpath("./version").content.strip
188
-
189
197
  return unless version_content.match?(PROPERTY_REGEX)
190
198
 
191
199
  version_content.
@@ -57,6 +57,11 @@ module Dependabot
57
57
  evaluated_value(node.at_xpath("./*/artifactId").content.strip)
58
58
  ].compact.join(":")
59
59
 
60
+ if node.at_xpath("./*/classifier")
61
+ node_name += ":#{evaluated_value(node.at_xpath('./*/classifier').
62
+ content.strip)}"
63
+ end
64
+
60
65
  next false unless node_name == dependency_name
61
66
  next false unless packaging_type_matches?(node)
62
67
  next false unless scope_matches?(node)
@@ -23,8 +23,7 @@ module Dependabot
23
23
  tmp_source = look_up_source_in_pom(parent)
24
24
  return unless tmp_source
25
25
 
26
- artifact = dependency.name.split(":").last
27
- return tmp_source if tmp_source.repo.end_with?(artifact)
26
+ return tmp_source if tmp_source.repo.end_with?(dependency_artifact_id)
28
27
  return tmp_source if repo_has_subdir_for_dep?(tmp_source)
29
28
  end
30
29
 
@@ -34,14 +33,13 @@ module Dependabot
34
33
  return @repo_has_subdir_for_dep[tmp_source]
35
34
  end
36
35
 
37
- artifact = dependency.name.split(":").last
38
36
  fetcher =
39
37
  FileFetchers::Base.new(source: tmp_source, credentials: credentials)
40
38
 
41
39
  @repo_has_subdir_for_dep[tmp_source] =
42
40
  fetcher.send(:repo_contents, raise_errors: false).
43
41
  select { |f| f.type == "dir" }.
44
- any? { |f| artifact.end_with?(f.name) }
42
+ any? { |f| dependency_artifact_id.end_with?(f.name) }
45
43
  rescue Dependabot::BranchNotFound
46
44
  tmp_source.branch = nil
47
45
  retry
@@ -96,18 +94,17 @@ module Dependabot
96
94
 
97
95
  github_urls.find do |url|
98
96
  repo = Source.from_url(url).repo
99
- repo.end_with?(dependency.name.split(":").last)
97
+ repo.end_with?(dependency_artifact_id)
100
98
  end
101
99
  end
102
100
 
103
101
  def dependency_pom_file
104
102
  return @dependency_pom_file unless @dependency_pom_file.nil?
105
103
 
106
- artifact_id = dependency.name.split(":").last
107
104
  response = Excon.get(
108
105
  "#{maven_repo_dependency_url}/"\
109
106
  "#{dependency.version}/"\
110
- "#{artifact_id}-#{dependency.version}.pom",
107
+ "#{dependency_artifact_id}-#{dependency.version}.pom",
111
108
  headers: auth_details,
112
109
  idempotent: true,
113
110
  **SharedHelpers.excon_defaults
@@ -118,6 +115,12 @@ module Dependabot
118
115
  @dependency_pom_file = Nokogiri::XML("")
119
116
  end
120
117
 
118
+ def dependency_artifact_id
119
+ _group_id, artifact_id, _classifier = dependency.name.split(":")
120
+
121
+ artifact_id
122
+ end
123
+
121
124
  def parent_pom_file(pom)
122
125
  doc = pom.dup
123
126
  doc.remove_namespaces!
@@ -13,6 +13,8 @@ module Dependabot
13
13
  class VersionFinder
14
14
  TYPE_SUFFICES = %w(jre android java).freeze
15
15
 
16
+ MAVEN_RANGE_REGEX = /[\(\[].*,.*[\)\]]/.freeze
17
+
16
18
  def initialize(dependency:, dependency_files:, credentials:,
17
19
  ignored_versions:, security_advisories:,
18
20
  raise_on_ignored: false)
@@ -94,7 +96,7 @@ module Dependabot
94
96
  filtered = possible_versions
95
97
 
96
98
  ignored_versions.each do |req|
97
- ignore_req = Maven::Requirement.new(req.split(","))
99
+ ignore_req = Maven::Requirement.new(parse_requirement_string(req))
98
100
  filtered =
99
101
  filtered.
100
102
  reject { |v| ignore_req.satisfied_by?(v.fetch(:version)) }
@@ -107,6 +109,12 @@ module Dependabot
107
109
  filtered
108
110
  end
109
111
 
112
+ def parse_requirement_string(string)
113
+ return string if string.match?(MAVEN_RANGE_REGEX)
114
+
115
+ string.split(",").map(&:strip)
116
+ end
117
+
110
118
  def filter_vulnerable_versions(possible_versions)
111
119
  versions_array = possible_versions
112
120
 
@@ -173,6 +181,7 @@ module Dependabot
173
181
  **Dependabot::SharedHelpers.excon_defaults
174
182
  )
175
183
  check_response(response, repository_details.fetch("url"))
184
+
176
185
  Nokogiri::XML(response.body)
177
186
  rescue URI::InvalidURIError
178
187
  Nokogiri::XML("")
@@ -248,7 +257,7 @@ module Dependabot
248
257
  end
249
258
 
250
259
  def dependency_metadata_url(repository_url)
251
- group_id, artifact_id = dependency.name.split(":")
260
+ group_id, artifact_id, _classifier = dependency.name.split(":")
252
261
 
253
262
  "#{repository_url}/"\
254
263
  "#{group_id.tr('.', '/')}/"\
@@ -257,15 +266,16 @@ module Dependabot
257
266
  end
258
267
 
259
268
  def dependency_files_url(repository_url, version)
260
- group_id, artifact_id = dependency.name.split(":")
269
+ group_id, artifact_id, classifier = dependency.name.split(":")
261
270
  type = dependency.requirements.first.
262
271
  dig(:metadata, :packaging_type)
263
272
 
273
+ actual_classifier = classifier.nil? ? "" : "-#{classifier}"
264
274
  "#{repository_url}/"\
265
275
  "#{group_id.tr('.', '/')}/"\
266
276
  "#{artifact_id}/"\
267
277
  "#{version}/"\
268
- "#{artifact_id}-#{version}.#{type}"
278
+ "#{artifact_id}-#{version}#{actual_classifier}.#{type}"
269
279
  end
270
280
 
271
281
  def version_class
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.118.3
4
+ version: 0.118.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-18 00:00:00.000000000 Z
11
+ date: 2020-07-24 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.118.3
19
+ version: 0.118.8
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.118.3
26
+ version: 0.118.8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.85.0
117
+ version: 0.88.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.85.0
124
+ version: 0.88.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: vcr
127
127
  requirement: !ruby/object:Gem::Requirement