dependabot-common 0.196.2 → 0.197.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: b4a10e581ed24fe680c2e17a6b1b424f6ca7f5de254df4d5bea2e6776fa46358
4
- data.tar.gz: d9376f0856e10cf37c5deced908f88bfc0f9e1b9f019248f0dd5c6b815952491
3
+ metadata.gz: c19688c5912c10a1123dddc470ce54469341f14900667c93204469a7084b121a
4
+ data.tar.gz: a0e8155643af51d8d7946a7bc4169b6f56ddfe3c658fbf2e00d898bd3d807117
5
5
  SHA512:
6
- metadata.gz: '0274888a51342c596d4d7150714b5719c1cdf77ba9f3f4bcac00ef5cdafd0e1465ef2a6004d29e5e7f0f8e3c9c0706fd098c54f620e5ec10e51e43c84adf0b68'
7
- data.tar.gz: 0bddf0bb3111509f2f44e897890a44ec6ec63af62ffcc57e598700834e36c85e3be0e4b4c00f54034f1a664b0a070f1c79f5c572705c6b5ac54410ed1e73d492
6
+ metadata.gz: 75c4756c28e8ae07ea55743192faa2cd7b7c5d0673bc9ef2050dd2563ab3fd76882645285a6e432ea5b63091c55fa7f0b03c11406b580a7cfb01213985c3df52
7
+ data.tar.gz: 86644d9f8d5ca136100650500b25575a4d71c498de65b89193dcf447d0c68740b0f9f807b1456ca2034f953a630d635c3a7c2b3617a97d2cf0138362f170f5cf
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "dependabot/shared_helpers"
4
+
5
+ # This class provides a thin wrapper around our normal usage of Excon as a simple HTTP client in order to
6
+ # provide some minor caching functionality.
7
+ #
8
+ # This is not used to support full response caching currently, we just use it to ensure we detect unreachable
9
+ # hosts and fast-fail on any subsequent requests to them to avoid excessive use of retries and connect- or
10
+ # read-timeouts as some jobs tend to be sensitive to exceeding our overall 45 minute timeout.
11
+ module Dependabot
12
+ class RegistryClient
13
+ @cached_errors = {}
14
+
15
+ def self.get(url:, headers: {}, options: {})
16
+ raise cached_error_for(url) if cached_error_for(url)
17
+
18
+ Excon.get(
19
+ url,
20
+ idempotent: true,
21
+ **SharedHelpers.excon_defaults({ headers: headers }.merge(options))
22
+ )
23
+ rescue Excon::Error::Timeout => e
24
+ cache_error(url, e)
25
+ raise e
26
+ end
27
+
28
+ def self.head(url:, headers: {}, options: {})
29
+ raise cached_error_for(url) if cached_error_for(url)
30
+
31
+ Excon.head(
32
+ url,
33
+ idempotent: true,
34
+ **SharedHelpers.excon_defaults({ headers: headers }.merge(options))
35
+ )
36
+ rescue Excon::Error::Timeout => e
37
+ cache_error(url, e)
38
+ raise e
39
+ end
40
+
41
+ def self.clear_cache!
42
+ @cached_errors = {}
43
+ end
44
+
45
+ private_class_method def self.cache_error(url, error)
46
+ host = URI(url).host
47
+ @cached_errors[host] = error
48
+ end
49
+
50
+ private_class_method def self.cached_error_for(url)
51
+ host = URI(url).host
52
+ @cached_errors.fetch(host, nil)
53
+ end
54
+ end
55
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.196.2"
4
+ VERSION = "0.197.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.196.2
4
+ version: 0.197.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-29 00:00:00.000000000 Z
11
+ date: 2022-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -146,14 +146,14 @@ dependencies:
146
146
  requirements:
147
147
  - - '='
148
148
  - !ruby/object:Gem::Version
149
- version: 4.18.0
149
+ version: 4.19.0
150
150
  type: :runtime
151
151
  prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
153
153
  requirements:
154
154
  - - '='
155
155
  - !ruby/object:Gem::Version
156
- version: 4.18.0
156
+ version: 4.19.0
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: nokogiri
159
159
  requirement: !ruby/object:Gem::Requirement
@@ -326,14 +326,14 @@ dependencies:
326
326
  requirements:
327
327
  - - "~>"
328
328
  - !ruby/object:Gem::Version
329
- version: 1.30.1
329
+ version: 1.31.2
330
330
  type: :development
331
331
  prerelease: false
332
332
  version_requirements: !ruby/object:Gem::Requirement
333
333
  requirements:
334
334
  - - "~>"
335
335
  - !ruby/object:Gem::Version
336
- version: 1.30.1
336
+ version: 1.31.2
337
337
  - !ruby/object:Gem::Dependency
338
338
  name: ruby-debug-ide
339
339
  requirement: !ruby/object:Gem::Requirement
@@ -482,6 +482,7 @@ files:
482
482
  - lib/dependabot/pull_request_updater/azure.rb
483
483
  - lib/dependabot/pull_request_updater/github.rb
484
484
  - lib/dependabot/pull_request_updater/gitlab.rb
485
+ - lib/dependabot/registry_client.rb
485
486
  - lib/dependabot/security_advisory.rb
486
487
  - lib/dependabot/shared_helpers.rb
487
488
  - lib/dependabot/source.rb