record_store 8.0.6 → 8.0.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: 0ea2231f371be0d7bc9f308ccaec17a1b27c410cea7972a8e3e3f7a066ba9042
4
- data.tar.gz: dbd3fd8c7622660afd23443245c0a350a0bdec1ad2d26bd15951e8db182df751
3
+ metadata.gz: 6841eb222738f6dd2c59e20db6f7e6b9f6e8217c402a638e6a48d6fa85f637fa
4
+ data.tar.gz: 220a069f8f2e16e9ef2d4768d9a88c52790e7b8d954c0b1fbefa32687824cc4f
5
5
  SHA512:
6
- metadata.gz: ca85b2b49dd23799a9ab95cc60e2e0575b55dc07defb9f6c0b039ff2ef02e5c55b20a7d092aebefedf727e33dd02ca3f2b34ffa5dd758e5d8050b902672caad9
7
- data.tar.gz: 7435df6101ac759bbf5b980aeb3eaf9b33c8fb4eaf02bccd087c60b74ebae600162fc53a9dc8ecb5eb812e9aa1f50aa37c1f2e91b7fbf3d2fdef9950de1270ce
6
+ metadata.gz: ddcd7243281f211c6381ce1cb980b190ea4a5263ee20772fe73f327d639909b8a747dea513f97dfd274e43aefc5c73f05aa1d126af122c2fcd56edfe00ea5da4
7
+ data.tar.gz: de7a759bde4075262f25c4ae4c3e841735e613e48dbfe7d4b9ab65b0a14da203e5c85c199c279a03017d0f3d3f0afcf052d759b964072324d5ca177c542f4c9a
@@ -11,7 +11,7 @@ jobs:
11
11
  strategy:
12
12
  fail-fast: false
13
13
  matrix:
14
- ruby: [ 3.0, 3.1, 3.2 ]
14
+ ruby: [ 3.2, 3.3, 3.4 ]
15
15
  name: Test Ruby ${{ matrix.ruby }}
16
16
  steps:
17
17
  - uses: actions/checkout@v4
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.2.1
1
+ 3.4.4
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  cache: bundler
2
2
  language: ruby
3
3
  rvm:
4
- - 3.2.1
4
+ - 3.4.4
5
5
 
6
6
  before_install:
7
7
  - gem update --system
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 8.0.8
4
+ - Require Thor >= 1.4.0 to mitigate a CVE
5
+
6
+ ## 8.0.7
7
+ - Add retry logic for server errors from providers
8
+
3
9
  ## 8.0.6
4
10
  - Fix quotes around Cloudflare TXT records
5
11
 
@@ -64,16 +64,13 @@ module Cloudflare
64
64
 
65
65
  begin
66
66
  response = conn.request(request)
67
- rescue StandardError => e
68
- raise "HTTP error: #{e.message}"
67
+ response.value
68
+ response
69
+ rescue Net::HTTPRetriableError, Net::HTTPFatalError => e
70
+ raise RecordStore::Provider::RetriableError, e.message
71
+ rescue Net::HTTPClientException, Net::HTTPError => e
72
+ raise RecordStore::Provider::Error, e.message
69
73
  end
70
-
71
- if response.code.to_i >= 300
72
- raise RecordStore::Provider::Error,
73
- "HTTP response code: #{response.code} - #{response.message}; #{response.body}"
74
- end
75
-
76
- response
77
74
  end
78
75
  end
79
76
 
@@ -6,6 +6,8 @@ module RecordStore
6
6
 
7
7
  class UnparseableBodyError < Error; end
8
8
 
9
+ class RetriableError < Error; end
10
+
9
11
  class << self
10
12
  def provider_for(object)
11
13
  lookup_error = false
@@ -145,6 +147,7 @@ module RecordStore
145
147
  max_timeouts: 5,
146
148
  max_conn_resets: 5,
147
149
  max_retries: 5,
150
+ max_server_errors: 3,
148
151
  delay: 1,
149
152
  backoff_multiplier: 2,
150
153
  max_backoff: 10
@@ -158,7 +161,7 @@ module RecordStore
158
161
 
159
162
  loop do
160
163
  return yield
161
- rescue UnparseableBodyError
164
+ rescue RecordStore::Provider::UnparseableBodyError
162
165
  raise if max_retries <= 0
163
166
 
164
167
  max_retries -= 1
@@ -176,6 +179,12 @@ module RecordStore
176
179
  max_conn_resets -= 1
177
180
 
178
181
  waiter.wait
182
+ rescue RecordStore::Provider::RetriableError
183
+ raise if max_server_errors <= 0
184
+
185
+ max_server_errors -= 1
186
+
187
+ waiter.wait(message: 'Waiting to retry after server error')
179
188
  end
180
189
  end
181
190
  end
@@ -1,3 +1,3 @@
1
1
  module RecordStore
2
- VERSION = '8.0.6'.freeze
2
+ VERSION = '8.0.8'.freeze
3
3
  end
data/record_store.gemspec CHANGED
@@ -29,15 +29,15 @@ Gem::Specification.new do |spec|
29
29
  spec.add_runtime_dependency 'activemodel', '>= 4.2'
30
30
  spec.add_runtime_dependency 'activesupport', '>= 4.2'
31
31
  spec.add_runtime_dependency 'ejson'
32
- spec.add_runtime_dependency 'thor', '>= 0.20.3', '< 1.4.0'
32
+ spec.add_runtime_dependency 'thor', '>= 1.4.0'
33
33
 
34
- spec.add_runtime_dependency 'dnsimple', '>= 4.4', '< 9.1'
34
+ spec.add_runtime_dependency 'dnsimple', '>= 4.4', '< 10.1'
35
35
  spec.add_runtime_dependency 'fog-dynect', '>= 0.4', '< 0.6'
36
36
  spec.add_runtime_dependency 'fog-json'
37
37
  spec.add_runtime_dependency 'fog-xml'
38
38
  spec.add_runtime_dependency 'google-cloud-dns', '>= 0.31', '< 2.0'
39
39
  spec.add_runtime_dependency 'ns1'
40
- spec.add_runtime_dependency 'oci', '>= 2.14', '< 2.22'
40
+ spec.add_runtime_dependency 'oci', '>= 2.14', '< 2.23'
41
41
  spec.add_runtime_dependency 'ruby-limiter', '>= 1.0.1', '< 3'
42
42
 
43
43
  spec.add_development_dependency 'bundler'
@@ -46,7 +46,7 @@ Gem::Specification.new do |spec|
46
46
  spec.add_development_dependency 'mocha'
47
47
  spec.add_development_dependency 'pry'
48
48
  spec.add_development_dependency 'rake'
49
- spec.add_development_dependency 'rubocop', '~> 1.69.0'
49
+ spec.add_development_dependency 'rubocop', '~> 1.78.0'
50
50
  spec.add_development_dependency 'rubocop-shopify', '~> 2.15.1'
51
51
  spec.add_development_dependency 'vcr'
52
52
  spec.add_development_dependency 'webmock'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: record_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.6
4
+ version: 8.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willem van Bergen
8
8
  - Emil Stolarsky
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-27 00:00:00.000000000 Z
11
+ date: 1980-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -57,9 +57,6 @@ dependencies:
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 0.20.3
62
- - - "<"
63
60
  - !ruby/object:Gem::Version
64
61
  version: 1.4.0
65
62
  type: :runtime
@@ -67,9 +64,6 @@ dependencies:
67
64
  version_requirements: !ruby/object:Gem::Requirement
68
65
  requirements:
69
66
  - - ">="
70
- - !ruby/object:Gem::Version
71
- version: 0.20.3
72
- - - "<"
73
67
  - !ruby/object:Gem::Version
74
68
  version: 1.4.0
75
69
  - !ruby/object:Gem::Dependency
@@ -81,7 +75,7 @@ dependencies:
81
75
  version: '4.4'
82
76
  - - "<"
83
77
  - !ruby/object:Gem::Version
84
- version: '9.1'
78
+ version: '10.1'
85
79
  type: :runtime
86
80
  prerelease: false
87
81
  version_requirements: !ruby/object:Gem::Requirement
@@ -91,7 +85,7 @@ dependencies:
91
85
  version: '4.4'
92
86
  - - "<"
93
87
  - !ruby/object:Gem::Version
94
- version: '9.1'
88
+ version: '10.1'
95
89
  - !ruby/object:Gem::Dependency
96
90
  name: fog-dynect
97
91
  requirement: !ruby/object:Gem::Requirement
@@ -183,7 +177,7 @@ dependencies:
183
177
  version: '2.14'
184
178
  - - "<"
185
179
  - !ruby/object:Gem::Version
186
- version: '2.22'
180
+ version: '2.23'
187
181
  type: :runtime
188
182
  prerelease: false
189
183
  version_requirements: !ruby/object:Gem::Requirement
@@ -193,7 +187,7 @@ dependencies:
193
187
  version: '2.14'
194
188
  - - "<"
195
189
  - !ruby/object:Gem::Version
196
- version: '2.22'
190
+ version: '2.23'
197
191
  - !ruby/object:Gem::Dependency
198
192
  name: ruby-limiter
199
193
  requirement: !ruby/object:Gem::Requirement
@@ -304,14 +298,14 @@ dependencies:
304
298
  requirements:
305
299
  - - "~>"
306
300
  - !ruby/object:Gem::Version
307
- version: 1.69.0
301
+ version: 1.78.0
308
302
  type: :development
309
303
  prerelease: false
310
304
  version_requirements: !ruby/object:Gem::Requirement
311
305
  requirements:
312
306
  - - "~>"
313
307
  - !ruby/object:Gem::Version
314
- version: 1.69.0
308
+ version: 1.78.0
315
309
  - !ruby/object:Gem::Dependency
316
310
  name: rubocop-shopify
317
311
  requirement: !ruby/object:Gem::Requirement
@@ -453,7 +447,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
453
447
  - !ruby/object:Gem::Version
454
448
  version: '0'
455
449
  requirements: []
456
- rubygems_version: 3.6.3
450
+ rubygems_version: 3.6.9
457
451
  specification_version: 4
458
452
  summary: Manage DNS using git
459
453
  test_files: []