dependabot-common 0.196.2 → 0.197.0

Sign up to get free protection for your applications and to get access to all the features.
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