dependabot-nuget 0.145.0 → 0.146.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: 412f424bef4ab86f23adf3d733500bc7277ff55b6874c6ee616fc234fe1a24b1
4
- data.tar.gz: fdb5f85ca816523d02fe0818af0bcef2220ef6ac1051f945f2052f971c258cca
3
+ metadata.gz: 0733c5a197731c47f754e1487b34e13d7ed1ee12ab19a7a8c9b03b0d7449bc9d
4
+ data.tar.gz: 8ecb6ca70de1a6565f2c5d4f06d89a0368da3bef8edd79a240baea9714036168
5
5
  SHA512:
6
- metadata.gz: 233bfad156f96b898830edfff409da3a03aad7059fbfa4e665fc306180cdaa04aca0803758bcb120778e96217dfcd4654fb2fcb975e282710b5d7edb8580582e
7
- data.tar.gz: 3885c8187f35b67f89fa8c12328f189d7fcd72c834a955de227c518b036b346a5ed7adaea2e817aa1024343e730bdabae230506c1d7221b0853c150f0c1a75a6
6
+ metadata.gz: 638ddfd2d2194563a061df94d0cca052531286b9f906a8c733c4f25bddb064b9bec7f251998701b0044d5d53635fca6468279c8c58aec5d1898978bebd48ee7e
7
+ data.tar.gz: 20dbfe4eb823489f03a34121078ecd74810f0d3a45a9cf8cc9d1d8fa7a6af06926562ffa193a15d8516bd27d6c3ae310890a61b887fc977cf63f00c55953d6d7
@@ -75,7 +75,10 @@ module Dependabot
75
75
  reject { |v| ignore_req.satisfied_by?(v.fetch(:version)) }
76
76
  end
77
77
 
78
- raise AllVersionsIgnored if @raise_on_ignored && filtered.empty? && possible_versions.any?
78
+ if @raise_on_ignored && filter_lower_versions(filtered).empty? &&
79
+ filter_lower_versions(possible_versions).any?
80
+ raise AllVersionsIgnored
81
+ end
79
82
 
80
83
  filtered
81
84
  end
@@ -210,14 +213,8 @@ module Dependabot
210
213
  @v2_nuget_listings ||=
211
214
  dependency_urls.
212
215
  select { |details| details.fetch(:repository_type) == "v2" }.
213
- map do |url_details|
214
- response = Excon.get(
215
- url_details[:versions_url],
216
- idempotent: true,
217
- **SharedHelpers.excon_defaults(
218
- excon_options.merge(headers: url_details[:auth_header])
219
- )
220
- )
216
+ flat_map { |url_details| fetch_paginated_v2_nuget_listings(url_details) }.
217
+ map do |url_details, response|
221
218
  next unless response.status == 200
222
219
 
223
220
  {
@@ -227,6 +224,39 @@ module Dependabot
227
224
  end.compact
228
225
  end
229
226
 
227
+ def fetch_paginated_v2_nuget_listings(url_details, results = {})
228
+ response = Excon.get(
229
+ url_details[:versions_url],
230
+ idempotent: true,
231
+ **SharedHelpers.excon_defaults(excon_options.merge(headers: url_details[:auth_header]))
232
+ )
233
+
234
+ # NOTE: Short circuit if we get a circular next link
235
+ return results.to_a if results.key?(url_details)
236
+
237
+ results[url_details] = response
238
+
239
+ if (link_href = fetch_v2_next_link_href(response.body))
240
+ url_details = url_details.dup
241
+ url_details[:versions_url] = link_href
242
+ fetch_paginated_v2_nuget_listings(url_details, results)
243
+ end
244
+
245
+ results.to_a
246
+ end
247
+
248
+ def fetch_v2_next_link_href(xml_body)
249
+ doc = Nokogiri::XML(xml_body)
250
+ doc.remove_namespaces!
251
+ link_node = doc.xpath("/feed/link").find do |node|
252
+ rel = node.attribute("rel").value.strip
253
+ rel == "next"
254
+ end
255
+ link_node.attribute("href").value.strip if link_node
256
+ rescue Nokogiri::XML::XPath::SyntaxError
257
+ nil
258
+ end
259
+
230
260
  def versions_for_v3_repository(repository_details)
231
261
  # If we have a search URL that returns results we use it
232
262
  # (since it will exclude unlisted versions)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-nuget
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.145.0
4
+ version: 0.146.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-05 00:00:00.000000000 Z
11
+ date: 2021-05-11 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.145.0
19
+ version: 0.146.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.145.0
26
+ version: 0.146.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.13.0
103
+ version: 1.14.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.13.0
110
+ version: 1.14.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement