dependabot-nuget 0.145.1 → 0.145.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: 37fe2a45777b3c8e967624e5c260f3a56fd83de7085eb8bf737f48acafa48b5c
4
- data.tar.gz: 47e4ba5df6e3d26129742a0dbccda1c8f80d0ab4043a7422da4848fa7861858a
3
+ metadata.gz: 52d629fb65085fe2ba42f1146a516978f751a10c4e8e3751696f3e61a0a707a3
4
+ data.tar.gz: b6fab20229edb3be27a8f9f3e099516d5e99f45f9c59a5648302e7ba1283ed94
5
5
  SHA512:
6
- metadata.gz: dbc78cc4eb83e32158816358d06974e96974ad8937fc9068dbc775cc0c69dcbec582a001d4a31c47b3d580e21d9d3fb29994ab7c5351b16ce837bde7151d3560
7
- data.tar.gz: 66740c29dcdc262291e405faaeaa79eb95607f59801a509fcc7354e23d453629c8c13040d0f0de0c87ee3c8cb96faea511c4b288d218b82f35e86c7a4bc3cde2
6
+ metadata.gz: 389596d77cf162e0af83ed032013372008c53127a17bd31823b2c738fc7867f86aa07f8b4f3213ef8f3c35f51077c4314c2e4b9d652fb22ddeda33b72916d7aa
7
+ data.tar.gz: 9fe1376597dd60fd78fd0ea496ef173296240d5382a9e3cef6d65671a7afecb30acf960b881fdeadc6749673cb42c1230d20326d149ef754267ba487585dc2a0
@@ -210,14 +210,8 @@ module Dependabot
210
210
  @v2_nuget_listings ||=
211
211
  dependency_urls.
212
212
  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
- )
213
+ flat_map { |url_details| fetch_paginated_v2_nuget_listings(url_details) }.
214
+ map do |url_details, response|
221
215
  next unless response.status == 200
222
216
 
223
217
  {
@@ -227,6 +221,39 @@ module Dependabot
227
221
  end.compact
228
222
  end
229
223
 
224
+ def fetch_paginated_v2_nuget_listings(url_details, results = {})
225
+ response = Excon.get(
226
+ url_details[:versions_url],
227
+ idempotent: true,
228
+ **SharedHelpers.excon_defaults(excon_options.merge(headers: url_details[:auth_header]))
229
+ )
230
+
231
+ # NOTE: Short circuit if we get a circular next link
232
+ return results.to_a if results.key?(url_details)
233
+
234
+ results[url_details] = response
235
+
236
+ if (link_href = fetch_v2_next_link_href(response.body))
237
+ url_details = url_details.dup
238
+ url_details[:versions_url] = link_href
239
+ fetch_paginated_v2_nuget_listings(url_details, results)
240
+ end
241
+
242
+ results.to_a
243
+ end
244
+
245
+ def fetch_v2_next_link_href(xml_body)
246
+ doc = Nokogiri::XML(xml_body)
247
+ doc.remove_namespaces!
248
+ link_node = doc.xpath("/feed/link").find do |node|
249
+ rel = node.attribute("rel").value.strip
250
+ rel == "next"
251
+ end
252
+ link_node.attribute("href").value.strip if link_node
253
+ rescue Nokogiri::XML::XPath::SyntaxError
254
+ nil
255
+ end
256
+
230
257
  def versions_for_v3_repository(repository_details)
231
258
  # If we have a search URL that returns results we use it
232
259
  # (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.1
4
+ version: 0.145.2
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-06 00:00:00.000000000 Z
11
+ date: 2021-05-07 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.1
19
+ version: 0.145.2
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.1
26
+ version: 0.145.2
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