dnsimple 4.3.0 → 5.1.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.
Files changed (143) hide show
  1. checksums.yaml +5 -5
  2. data/.dependabot/config.yml +9 -0
  3. data/.rubocop.yml +7 -0
  4. data/.rubocop_dnsimple.yml +136 -45
  5. data/.travis.yml +13 -9
  6. data/CHANGELOG.md +57 -23
  7. data/CONTRIBUTING.md +55 -7
  8. data/Gemfile +4 -1
  9. data/LICENSE.txt +1 -1
  10. data/README.md +8 -6
  11. data/dnsimple.gemspec +3 -3
  12. data/lib/dnsimple.rb +2 -0
  13. data/lib/dnsimple/client.rb +12 -10
  14. data/lib/dnsimple/client/accounts.rb +2 -1
  15. data/lib/dnsimple/client/certificates.rb +188 -28
  16. data/lib/dnsimple/client/clients.rb +6 -2
  17. data/lib/dnsimple/client/contacts.rb +2 -5
  18. data/lib/dnsimple/client/domains.rb +3 -5
  19. data/lib/dnsimple/client/{collaborators.rb → domains_collaborators.rb} +3 -1
  20. data/lib/dnsimple/client/domains_delegation_signer_records.rb +2 -0
  21. data/lib/dnsimple/client/domains_dnssec.rb +2 -0
  22. data/lib/dnsimple/client/domains_email_forwards.rb +2 -0
  23. data/lib/dnsimple/client/domains_pushes.rb +2 -0
  24. data/lib/dnsimple/client/identity.rb +2 -0
  25. data/lib/dnsimple/client/oauth.rb +2 -0
  26. data/lib/dnsimple/client/registrar.rb +51 -5
  27. data/lib/dnsimple/client/registrar_auto_renewal.rb +2 -0
  28. data/lib/dnsimple/client/registrar_delegation.rb +6 -4
  29. data/lib/dnsimple/client/registrar_whois_privacy.rb +23 -1
  30. data/lib/dnsimple/client/services.rb +2 -2
  31. data/lib/dnsimple/client/services_domains.rb +2 -0
  32. data/lib/dnsimple/client/templates.rb +2 -0
  33. data/lib/dnsimple/client/templates_domains.rb +2 -0
  34. data/lib/dnsimple/client/templates_records.rb +2 -0
  35. data/lib/dnsimple/client/tlds.rb +16 -17
  36. data/lib/dnsimple/client/vanity_name_servers.rb +12 -10
  37. data/lib/dnsimple/client/webhooks.rb +2 -3
  38. data/lib/dnsimple/client/zones.rb +2 -1
  39. data/lib/dnsimple/client/zones_distributions.rb +49 -0
  40. data/lib/dnsimple/client/zones_records.rb +25 -28
  41. data/lib/dnsimple/default.rb +11 -9
  42. data/lib/dnsimple/error.rb +2 -0
  43. data/lib/dnsimple/extra.rb +2 -0
  44. data/lib/dnsimple/options.rb +2 -0
  45. data/lib/dnsimple/response.rb +6 -4
  46. data/lib/dnsimple/struct.rb +7 -0
  47. data/lib/dnsimple/struct/account.rb +2 -0
  48. data/lib/dnsimple/struct/certificate.rb +11 -0
  49. data/lib/dnsimple/struct/certificate_bundle.rb +5 -0
  50. data/lib/dnsimple/struct/certificate_purchase.rb +27 -0
  51. data/lib/dnsimple/struct/certificate_renewal.rb +30 -0
  52. data/lib/dnsimple/struct/collaborator.rb +2 -0
  53. data/lib/dnsimple/struct/contact.rb +2 -0
  54. data/lib/dnsimple/struct/delegation_signer_record.rb +2 -0
  55. data/lib/dnsimple/struct/dnssec.rb +2 -0
  56. data/lib/dnsimple/struct/domain.rb +24 -3
  57. data/lib/dnsimple/struct/domain_check.rb +2 -0
  58. data/lib/dnsimple/struct/domain_premium_price.rb +2 -0
  59. data/lib/dnsimple/struct/domain_push.rb +2 -0
  60. data/lib/dnsimple/struct/domain_registration.rb +2 -3
  61. data/lib/dnsimple/struct/domain_renewal.rb +2 -3
  62. data/lib/dnsimple/struct/domain_transfer.rb +4 -2
  63. data/lib/dnsimple/struct/email_forward.rb +2 -0
  64. data/lib/dnsimple/struct/extended_attribute.rb +3 -1
  65. data/lib/dnsimple/struct/oauth_token.rb +2 -0
  66. data/lib/dnsimple/struct/service.rb +3 -1
  67. data/lib/dnsimple/struct/template.rb +2 -0
  68. data/lib/dnsimple/struct/template_record.rb +2 -0
  69. data/lib/dnsimple/struct/tld.rb +2 -0
  70. data/lib/dnsimple/struct/user.rb +2 -0
  71. data/lib/dnsimple/struct/vanity_name_server.rb +27 -0
  72. data/lib/dnsimple/struct/webhook.rb +2 -0
  73. data/lib/dnsimple/struct/whoami.rb +4 -2
  74. data/lib/dnsimple/struct/whois_privacy.rb +2 -0
  75. data/lib/dnsimple/struct/whois_privacy_renewal.rb +30 -0
  76. data/lib/dnsimple/struct/zone.rb +2 -0
  77. data/lib/dnsimple/struct/zone_distribution.rb +13 -0
  78. data/lib/dnsimple/struct/zone_file.rb +2 -0
  79. data/lib/dnsimple/struct/zone_record.rb +2 -0
  80. data/lib/dnsimple/version.rb +3 -1
  81. data/spec/dnsimple/client/accounts_spec.rb +2 -0
  82. data/spec/dnsimple/client/certificates_spec.rb +227 -1
  83. data/spec/dnsimple/client/client_service_spec.rb +2 -0
  84. data/spec/dnsimple/client/contacts_spec.rb +3 -1
  85. data/spec/dnsimple/client/{collaborators_spec.rb → domains_collaborators_spec.rb} +3 -1
  86. data/spec/dnsimple/client/domains_delegation_signer_records_spec.rb +3 -1
  87. data/spec/dnsimple/client/domains_dnssec_spec.rb +4 -2
  88. data/spec/dnsimple/client/domains_email_forwards_spec.rb +3 -1
  89. data/spec/dnsimple/client/domains_pushes_spec.rb +3 -1
  90. data/spec/dnsimple/client/domains_spec.rb +19 -16
  91. data/spec/dnsimple/client/identity_spec.rb +2 -0
  92. data/spec/dnsimple/client/oauth_spec.rb +2 -0
  93. data/spec/dnsimple/client/registrar_auto_renewal_spec.rb +2 -0
  94. data/spec/dnsimple/client/registrar_delegation_spec.rb +5 -2
  95. data/spec/dnsimple/client/registrar_spec.rb +73 -4
  96. data/spec/dnsimple/client/registrar_whois_privacy_spec.rb +60 -3
  97. data/spec/dnsimple/client/services_domains_spec.rb +2 -0
  98. data/spec/dnsimple/client/services_spec.rb +3 -1
  99. data/spec/dnsimple/client/templates_domains_spec.rb +2 -0
  100. data/spec/dnsimple/client/templates_records_spec.rb +2 -0
  101. data/spec/dnsimple/client/templates_spec.rb +2 -0
  102. data/spec/dnsimple/client/tlds_spec.rb +22 -19
  103. data/spec/dnsimple/client/vanity_name_servers_spec.rb +2 -0
  104. data/spec/dnsimple/client/webhooks_spec.rb +2 -0
  105. data/spec/dnsimple/client/zones_distributions_spec.rb +137 -0
  106. data/spec/dnsimple/client/zones_records_spec.rb +37 -35
  107. data/spec/dnsimple/client/zones_spec.rb +4 -2
  108. data/spec/dnsimple/client_spec.rb +8 -6
  109. data/spec/dnsimple/extra_spec.rb +2 -0
  110. data/spec/dnsimple/options/base_spec.rb +2 -0
  111. data/spec/dnsimple/options/list_options_spec.rb +2 -0
  112. data/spec/fixtures.http/{transferDomainOut → authorizeDomainTransferOut}/success.http +0 -0
  113. data/spec/fixtures.http/cancelDomainTransfer/success.http +19 -0
  114. data/spec/fixtures.http/checkZoneDistribution/error.http +21 -0
  115. data/spec/fixtures.http/checkZoneDistribution/failure.http +21 -0
  116. data/spec/fixtures.http/checkZoneDistribution/success.http +21 -0
  117. data/spec/fixtures.http/checkZoneRecordDistribution/error.http +21 -0
  118. data/spec/fixtures.http/checkZoneRecordDistribution/failure.http +21 -0
  119. data/spec/fixtures.http/checkZoneRecordDistribution/success.http +21 -0
  120. data/spec/fixtures.http/createDomain/created.http +21 -16
  121. data/spec/fixtures.http/getCertificate/success.http +1 -1
  122. data/spec/fixtures.http/getDomain/success.http +14 -9
  123. data/spec/fixtures.http/getDomainTransfer/success.http +21 -0
  124. data/spec/fixtures.http/issueLetsencryptCertificate/success.http +21 -0
  125. data/spec/fixtures.http/issueRenewalLetsencryptCertificate/success.http +21 -0
  126. data/spec/fixtures.http/listCertificates/success.http +1 -1
  127. data/spec/fixtures.http/listDomains/success.http +21 -16
  128. data/spec/fixtures.http/purchaseLetsencryptCertificate/success.http +21 -0
  129. data/spec/fixtures.http/purchaseRenewalLetsencryptCertificate/success.http +21 -0
  130. data/spec/fixtures.http/registerDomain/success.http +2 -2
  131. data/spec/fixtures.http/renewDomain/success.http +2 -2
  132. data/spec/fixtures.http/renewWhoisPrivacy/success.http +21 -0
  133. data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-duplicated-order.http +19 -0
  134. data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-not-found.http +19 -0
  135. data/spec/fixtures.http/transferDomain/success.http +2 -2
  136. data/spec/fixtures.http/whoami/success-account.http +1 -1
  137. data/spec/fixtures.http/whoami/success-user.http +1 -1
  138. data/spec/fixtures.http/whoami/success.http +1 -1
  139. data/spec/spec_helper.rb +4 -2
  140. data/spec/support/helpers.rb +2 -0
  141. data/spec/support/webmock.rb +2 -0
  142. metadata +50 -19
  143. data/.ruby-gemset +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ebcde22a916ca2575f93426b277d8fb2000da824
4
- data.tar.gz: d26271208dcf497b132004385a800ff229432287
2
+ SHA256:
3
+ metadata.gz: 740c15a07bacc12086f2c0c3282e78150735247a9e85b6be0c84019a9a1a4de3
4
+ data.tar.gz: 4caef1a3ce2d61bcb59f882f5195990e64eeef2fe17294afe68ec31922460c23
5
5
  SHA512:
6
- metadata.gz: 68991131ad17ff8d9a7bf14ddf3fed6a2f298668074e39945537478eff76bad1f921db9e90c8b34aa311fda12e19f8267fb208bb7605001f965bb9f65bd73c1e
7
- data.tar.gz: 2993c7d50cd5a8eaf44a0d15276dc7b0ce6e1374f20be04f62ccac9bd650a7b43d7acfaf8ee7102ac66dc2b91be8baee72a2a297211b2b13039aae3e5ab6b267
6
+ metadata.gz: 365c3a046910052fdc92c0c7a9f014f8dee87766097fcb00a182fe15b87916de86fe9649c9ec491cb9095237ee5e91cdda660142a1dccc72777b3f017ceb1351
7
+ data.tar.gz: a55e3f6c772e4667086d4b007c2af15618f8555564fca8a548d3eafcfd5fe8067e06f47057c19b981aeaf55086f32019f7a9055d4b7ae51eb11715e015e3d58c
@@ -0,0 +1,9 @@
1
+ version: 1
2
+ update_configs:
3
+ - package_manager: "ruby:bundler"
4
+ directory: "/"
5
+ update_schedule: "daily"
6
+ default_labels:
7
+ - "task"
8
+ - "dependencies"
9
+ - "backlog-dependencies"
@@ -2,6 +2,13 @@ inherit_from:
2
2
  - .rubocop_todo.yml
3
3
  - .rubocop_dnsimple.yml
4
4
 
5
+ require: rubocop-performance
6
+
7
+ AllCops:
8
+ Exclude:
9
+ - '*.gemspec'
10
+ - 'Rakefile'
11
+
5
12
  # [codesmell]
6
13
  # It's irrelevant here, but it could be a code smell.
7
14
  # Hence keep it disabled, but don't include it in the DNSimple suite.
@@ -1,4 +1,8 @@
1
1
  # Defaults https://github.com/bbatsov/rubocop/blob/master/config/default.yml
2
+ #
3
+ # References:
4
+ # * https://github.com/bbatsov/ruby-style-guide
5
+ # * https://rubocop.readthedocs.io/
2
6
 
3
7
  AllCops:
4
8
  Exclude:
@@ -10,6 +14,15 @@ AllCops:
10
14
  Bundler/OrderedGems:
11
15
  Enabled: false
12
16
 
17
+ # This cop requires odd code indentations (as of rubocop 0.57.0)
18
+ # https://github.com/rubocop-hq/rubocop/issues/5956
19
+ Layout/AccessModifierIndentation:
20
+ Enabled: false
21
+
22
+ # It causes weird aligments, especially for specs.
23
+ Layout/BlockEndNewline:
24
+ Enabled: false
25
+
13
26
  # Generally, the keyword style uses a lot of space. This is particularly true when
14
27
  # you use case/if statements, in combination with a long-name variable.
15
28
  #
@@ -20,11 +33,19 @@ Bundler/OrderedGems:
20
33
  # do_else
21
34
  # end
22
35
  #
23
- Lint/EndAlignment:
36
+ Layout/EndAlignment:
24
37
  EnforcedStyleAlignWith: variable
25
38
 
26
39
  # [codesmell]
27
- Lint/HandleExceptions:
40
+ Layout/LineLength:
41
+ Enabled: false
42
+ Exclude:
43
+ - 'spec/**/*_spec.rb'
44
+ - 'test/**/*_test.rb'
45
+ Max: 100
46
+
47
+ # [codesmell]
48
+ Lint/SuppressedException:
28
49
  Enabled: false
29
50
 
30
51
  # [codesmell]
@@ -52,14 +73,6 @@ Metrics/ClassLength:
52
73
  - 'spec/**/*_spec.rb'
53
74
  - 'test/**/*_test.rb'
54
75
 
55
- # [codesmell]
56
- Metrics/LineLength:
57
- Enabled: false
58
- Exclude:
59
- - 'spec/**/*_spec.rb'
60
- - 'test/**/*_test.rb'
61
- Max: 100
62
-
63
76
  # [codesmell]
64
77
  Metrics/MethodLength:
65
78
  Enabled: false
@@ -84,9 +97,33 @@ Metrics/ParameterLists:
84
97
  Metrics/PerceivedComplexity:
85
98
  Enabled: false
86
99
 
87
- # [codesmell]
88
- # I don't really get the point of this cop.
89
- Performance/RedundantMerge:
100
+ # We tend to use @_name to represent a variable that is memoized,
101
+ # but it should not be accessed directly and kept as private.
102
+ Naming/MemoizedInstanceVariableName:
103
+ Enabled: false
104
+
105
+ # We use it from time to time, as it's not always possible (or maintainable)
106
+ # to use simple ? methods.
107
+ # Moreover, it's actually more efficient to not-use predicates:
108
+ # https://github.com/bbatsov/rubocop/issues/3633
109
+ Naming/PredicateName:
110
+ Enabled: false
111
+
112
+ # The team agreed decided to use exception
113
+ Naming/RescuedExceptionsVariableName:
114
+ PreferredName: 'exception'
115
+
116
+ # This cop triggers several false positives that make sense in our domain model.
117
+ # For instance, ip is considered an uncommunicative parameter name:
118
+ #
119
+ # ipv4_to_arpa_name(ip)
120
+ #
121
+ Naming/MethodParameterName:
122
+ Enabled: false
123
+
124
+ # This cop returns false positive violations (as of rubocop 0.57.0)
125
+ # https://github.com/rubocop-hq/rubocop/issues/5953
126
+ Style/AccessModifierDeclarations:
90
127
  Enabled: false
91
128
 
92
129
  # Do not use "and" or "or" in conditionals, but for readability we can use it
@@ -104,12 +141,6 @@ Style/BlockDelimiters:
104
141
  IgnoredMethods:
105
142
  - expect
106
143
 
107
- # I'm not sure we should enforce a style,
108
- # but if we do, context_dependent offers a good compromise on readability.
109
- Style/BracesAroundHashParameters:
110
- Enabled: false
111
- EnforcedStyle: context_dependent
112
-
113
144
  # Warn on empty else.
114
145
  Style/EmptyElse:
115
146
  EnforcedStyle: empty
@@ -119,26 +150,37 @@ Style/EmptyElse:
119
150
  Style/EmptyMethod:
120
151
  Enabled: false
121
152
 
122
- # I personally don't care about the format style.
123
- # In most cases I like to use %, but not at the point I want to enforce it
153
+ # We don't care about the format style.
154
+ # In most cases we use %, but not at the point we want to enforce it
124
155
  # as a convention in the entire code.
125
156
  Style/FormatString:
126
157
  Enabled: false
127
158
 
128
- # We don't support frozen strings.
129
- # This is an experimental feature and we don't know if it will be shipped with
130
- # Ruby 3.0 or not.
131
- Style/FrozenStringLiteralComment:
159
+ # Annotated tokens (like %<foo>s) are a good thing, but in most cases we don't need them.
160
+ # %s is a simpler and straightforward version that works in almost all cases. So don't complain.
161
+ Style/FormatStringToken:
132
162
  Enabled: false
133
163
 
134
164
  # Prefer the latest Hash syntax
135
165
  Style/HashSyntax:
136
166
  Exclude:
137
- # But Rakefiles generally have some definition like
167
+ # Rakefiles generally have definitions like
138
168
  # :default => :test
139
169
  # that looks nicer with the old rocket syntax.
140
170
  - 'Rakefile'
141
171
 
172
+ # Enforces usage of Hash#each_key and Hash#each_value (vs. Hash#keys.each and Hash#values.each).
173
+ Style/HashEachMethods:
174
+ Enabled: true
175
+
176
+ # Enforce the use of Hash#TransformKeys introduced in Ruby 2.5 to transform Hash keys.
177
+ Style/HashTransformKeys:
178
+ Enabled: true
179
+
180
+ # Enforce the use of Hash#TransformValues introduced in Ruby 2.5 to transform Hash values.
181
+ Style/HashTransformValues:
182
+ Enabled: true
183
+
142
184
  # We want to be able to decide when to use one-line if/unless modifiers.
143
185
  Style/IfUnlessModifier:
144
186
  Enabled: false
@@ -149,7 +191,7 @@ Style/IfInsideElse:
149
191
  Enabled: false
150
192
 
151
193
  # module_function doesn't respect the visibility of the methods,
152
- # and doesn't work well when the module contain both public/private methods.
194
+ # and doesn't work well when the module contains both public/private methods.
153
195
  Style/ModuleFunction:
154
196
  Enabled: false
155
197
 
@@ -175,12 +217,16 @@ Style/NumericLiterals:
175
217
  Style/PercentLiteralDelimiters:
176
218
  Enabled: false
177
219
 
178
- # We use it from time to time, as it's not always possible (or maintainable)
179
- # to use simple ? methods.
180
- # Moreover, it's actually more efficient to not-use predicates:
181
- # https://github.com/bbatsov/rubocop/issues/3633
182
- Style/PredicateName:
183
- Enabled: false
220
+ # Enable but only for multiple returns value.
221
+ #
222
+ # return foo, bar
223
+ #
224
+ # reads much better than
225
+ #
226
+ # [foo, bar]
227
+ #
228
+ Style/RedundantReturn:
229
+ AllowMultipleReturnValues: true
184
230
 
185
231
  # Do we care?
186
232
  Style/RegexpLiteral:
@@ -213,7 +259,12 @@ Style/StringLiteralsInInterpolation:
213
259
 
214
260
  # It's nice to be consistent. The trailing comma also allows easy reordering,
215
261
  # and doesn't cause a diff in Git when you add a line to the bottom.
216
- Style/TrailingCommaInLiteral:
262
+ Style/TrailingCommaInArrayLiteral:
263
+ EnforcedStyleForMultiline: consistent_comma
264
+
265
+ # It's nice to be consistent. The trailing comma also allows easy reordering,
266
+ # and doesn't cause a diff in Git when you add a line to the bottom.
267
+ Style/TrailingCommaInHashLiteral:
217
268
  EnforcedStyleForMultiline: consistent_comma
218
269
 
219
270
  Style/TrivialAccessors:
@@ -265,6 +316,10 @@ Layout/DotPosition:
265
316
  Layout/EmptyLines:
266
317
  Enabled: false
267
318
 
319
+ # This is buggy. It detects as a style violation a few `class` and `module` definitions
320
+ Layout/EmptyLinesAroundArguments:
321
+ Enabled: false
322
+
268
323
  Layout/EmptyLinesAroundBlockBody:
269
324
  Exclude:
270
325
  # RSpec is all made of blocks. Disable this config in RSpec
@@ -291,18 +346,16 @@ Layout/EmptyLineBetweenDefs:
291
346
  Enabled: false
292
347
 
293
348
  # Multi-line differs from standard indentation, they are indented twice.
294
- Layout/FirstParameterIndentation:
349
+ Layout/FirstArgumentIndentation:
295
350
  IndentationWidth: 4
296
351
 
297
- # Array indentation should be considered like MultilineMethodCallIndentation indentation
298
- # and use 4 spaces instead of 2.
299
- Layout/IndentArray:
300
- IndentationWidth: 4
352
+ # Array indentation should be consistent with method/variable definition.
353
+ Layout/FirstArrayElementIndentation:
354
+ EnforcedStyle: consistent
301
355
 
302
- # Hash indentation should be considered like MultilineMethodCallIndentation indentation
303
- # and use 4 spaces instead of 2.
304
- Layout/IndentHash:
305
- IndentationWidth: 4
356
+ # Hash indentation should be consistent with method/variable definition.
357
+ Layout/FirstHashElementIndentation:
358
+ EnforcedStyle: consistent
306
359
 
307
360
  # Multi-line differs from standard indentation, they are indented twice.
308
361
  Layout/MultilineMethodCallIndentation:
@@ -318,9 +371,47 @@ Layout/MultilineOperationIndentation:
318
371
  #
319
372
  # %w( foo bar )
320
373
  #
321
- # looks better to me than
374
+ # looks better than:
322
375
  #
323
- # %w( foo bar )
376
+ # %w(foo bar)
324
377
  #
325
378
  Layout/SpaceInsidePercentLiteralDelimiters:
326
379
  Enabled: false
380
+
381
+
382
+ # New cops
383
+ # We'll remove them once they become defaults.
384
+ # See https://docs.rubocop.org/en/latest/versioning/
385
+
386
+
387
+ Layout/SpaceAroundMethodCallOperator:
388
+ Enabled: true
389
+
390
+ Lint/RaiseException:
391
+ Enabled: true
392
+
393
+ Lint/StructNewOverride:
394
+ Enabled: true
395
+
396
+ Style/ExponentialNotation:
397
+ Enabled: true
398
+
399
+ Layout/EmptyLinesAroundAttributeAccessor:
400
+ Enabled: true
401
+
402
+ Style/SlicingWithRange:
403
+ Enabled: true
404
+
405
+ # Introduced in rubocop 0.84.0
406
+ Lint/DeprecatedOpenSSLConstant:
407
+ Enabled: true
408
+
409
+ # Introduced in rubocop 0.85.0
410
+ Lint/MixedRegexpCaptureTypes:
411
+ Enabled: true
412
+
413
+ Style/RedundantRegexpCharacterClass:
414
+ Enabled: true
415
+
416
+ Style/RedundantRegexpEscape:
417
+ Enabled: true
@@ -1,13 +1,17 @@
1
- sudo: false
2
1
  language: ruby
2
+
3
3
  rvm:
4
- - 2.0
5
- - 2.1
6
- - 2.2
7
- - 2.3.4
8
- - 2.4.1
9
- env: COVERALL=1
4
+ - 2.4
5
+ - 2.5
6
+ - 2.6
7
+ - 2.7
8
+
9
+ env:
10
+ - COVERALL=1
10
11
 
11
12
  before_install:
12
- - gem update --system
13
- - gem install bundler
13
+ - gem install bundler -v 1.17.3
14
+
15
+ notifications:
16
+ slack:
17
+ secure: "N9zPR5jnF1TBiqvb3mCV6Wem3TIvqu4tXiob2P66vBMwmj1ewWvyUzNLwAEOCDc3mRfsI50IYXHewckAUpCWW7XEJlT/pv8llMsoiHqArb7SGJyDdy3ZRr35L7glixs/ikod+xhRKXMM3jML/2MgSa+Culzhl42tMUFDk+bBBQU="
@@ -2,20 +2,54 @@
2
2
 
3
3
  This project uses [Semantic Versioning 2.0.0](http://semver.org/).
4
4
 
5
+ ## 5.1.0
5
6
 
6
- #### 4.3.0
7
+ - CHANGED: `Domain#expires_on` (date only) is deprecated in favor of `Domain#expires_at` (timestamp). (dnsimple/dnsimple-ruby#186)
8
+
9
+ ## 5.0.0
10
+
11
+ - CHANGED: Minimum Ruby version is now 2.4
12
+ - CHANGED: User-agent format has been changed to prepend custom token before default token.
13
+ - NEW: Added `registrar.get_domain_transfer` to retrieve a domain transfer. (dnsimple/dnsimple-ruby#180)
14
+ - NEW: Added `registrar.cancel_domain_transfer` to cancel an in progress domain transfer. (dnsimple/dnsimple-ruby#180)
15
+ - NEW: Added `DomainTransfer#status_description` attribute to identify the failure reason of a transfer. (dnsimple/dnsimple-ruby#180).
16
+
17
+ ## 4.6.0
18
+
19
+ - NEW: Added WHOIS privacy renewal (GH-171)
20
+
21
+
22
+ ## 4.5.0
23
+
24
+ - NEW: Added zone distribution and zone record distribution (GH-160)
25
+
26
+ - CHANGED: Bump minimum Ruby requirement to 2.1
27
+ - CHANGED: Introduce Dnsimple::Struct::VanityNameServer (GH-144)
28
+ - CHANGED: Fix name inconsistency of the Collaborator module (GH-154)
29
+
30
+ - REMOVED: Removed extra alias (GH-168). You should use `dnsimple.foo.list_foo` instead of `dnsimple.foo.list`. Same for create/update. The change ensures consistency across the various clients. We prefer fully qualified methods.
31
+
32
+
33
+ ## 4.4.0
34
+
35
+ - NEW: Added Let's Encrypt certificate methods (GH-159)
36
+
37
+ - REMOVED: Removed premium_price attribute from registrar order responses (GH-163). Please do not rely on that attribute, as it returned an incorrect value. The attribute is going to be removed, and the API now returns a null value.
38
+
39
+
40
+ ## 4.3.0
7
41
 
8
42
  - NEW: Added `certificates.all_certificates` (dnsimple/dnsimple-ruby#155)
9
43
 
10
44
  - CHANGED: Updated registrar URLs (dnsimple/dnsimple-ruby#153)
11
45
 
12
46
 
13
- #### 4.2.0
47
+ ## 4.2.0
14
48
 
15
49
  - NEW: Added DNSSEC support support (dnsimple/dnsimple-ruby#152)
16
50
 
17
51
 
18
- #### 4.1.0
52
+ ## 4.1.0
19
53
 
20
54
  - NEW: Added domain premium price support (dnsimple/dnsimple-ruby#143)
21
55
 
@@ -23,7 +57,7 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
23
57
  - CHANGED: Normalize unique string identifiers to SID (dnsimple/dnsimple-ruby#141)
24
58
 
25
59
 
26
- #### 4.0.0
60
+ ## 4.0.0
27
61
 
28
62
  - NEW: Added domain collaborators support (GH-137).
29
63
  - NEW: Added regions support for zone records (GH-135, GH-139).
@@ -40,7 +74,7 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
40
74
  - CHANGED: Renamed registrar `auth_info` into `auth_code` (GH-136).
41
75
 
42
76
 
43
- #### 3.1.0
77
+ ## 3.1.0
44
78
 
45
79
  - NEW: Added accounts support (GH-113).
46
80
  - NEW: Added sorting and filtering support (GH-112).
@@ -54,9 +88,9 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
54
88
  - REMOVED: Removed support for wildcard accounts (GH-107).
55
89
 
56
90
 
57
- #### 3.0.0
91
+ ## 3.0.0
58
92
 
59
- ##### stable
93
+ ### stable
60
94
 
61
95
  - FIXED: The client was using the wrong key to store the ContactsService which could cause conflicts with the DomainsService.
62
96
 
@@ -70,13 +104,13 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
70
104
 
71
105
  - CHANGED: Error detection is now smarter. If the error is deserializable and contains a message, the message is attached to the exception (GH-94, GH-95, GH-100).
72
106
 
73
- ##### beta2
107
+ ### beta2
74
108
 
75
109
  - FIXED: `state` and `redirect_uri` are not properly passed in the request to exchang the code for an access token (GH-89, GH-90).
76
110
 
77
111
  - FIXED: Request body is not properly serialized to JSON, and the "Content-Type" header was omissed (GH-91).
78
112
 
79
- ##### beta1
113
+ ### beta1
80
114
 
81
115
  - CHANGED: Minimum Ruby version >= 2
82
116
 
@@ -86,15 +120,15 @@ The client has been completely redesigned to support the [API v2](https://develo
86
120
 
87
121
  Internal changes were made to match conventions adopted in other clients, such as the Go one and the Elixir one.
88
122
 
89
- #### 2.1.1
123
+ ## 2.1.1
90
124
 
91
125
  - FIXED: Paths may mistakenly be generated use \ on windows.
92
126
 
93
- #### 2.1.0
127
+ ## 2.1.0
94
128
 
95
129
  - NEW: Add the ability to set headers and pass extra connection params in each API method (GH-64)
96
130
 
97
- #### 2.0.0
131
+ ## 2.0.0
98
132
 
99
133
  **2.0.0.alpha**
100
134
 
@@ -106,7 +140,7 @@ Internal changes were made to match conventions adopted in other clients, such a
106
140
 
107
141
  - CHANGED: Drop 1.8.7, 1.9.2 support. Required Ruby >= 1.9.3.
108
142
 
109
- - CHANGED: This package no longer provides a CLI. The CLI has been extracted to [aetrion/dnsimple-ruby-cli](https://github.com/aetrion/dnsimple-ruby-cli)
143
+ - CHANGED: This package no longer provides a CLI. The CLI has been extracted to [dnsimple-ruby-cli](https://github.com/dnsimple/dnsimple-ruby-cli)
110
144
 
111
145
  - CHANGED: Renamed the Gem from "dnsimple-ruby" to "dnsimple" (GH-23).
112
146
 
@@ -118,23 +152,23 @@ Internal changes were made to match conventions adopted in other clients, such a
118
152
 
119
153
  - FIXED: Fixed a bug where API token environment variables were not properly detected (GH-59, GH-62). Thanks @oguzbilgic and @rupurt.
120
154
 
121
- #### Release 1.7.1
155
+ ## Release 1.7.1
122
156
 
123
157
  - FIXED: Updated Certificate to match the serialized attributes (GH-53).
124
158
 
125
- #### Release 1.7.0
159
+ ## Release 1.7.0
126
160
 
127
161
  - NEW: Add support for Domain-based authentication (GH-40, GH-46). Thanks @dwradcliffe and @samsonasu.
128
162
 
129
- #### Release 1.6.0
163
+ ## Release 1.6.0
130
164
 
131
165
  - NEW: Add support for 2FA (GH-44)
132
166
 
133
- #### Release 1.5.5
167
+ ## Release 1.5.5
134
168
 
135
169
  - NEW: Add notice about the CLI moving to a new location
136
170
 
137
- #### Release 1.5.4
171
+ ## Release 1.5.4
138
172
 
139
173
  - NEW: Added domain#expires_on attribute (GH-34). Thanks @alkema
140
174
 
@@ -144,23 +178,23 @@ Internal changes were made to match conventions adopted in other clients, such a
144
178
 
145
179
  - CHANGED: User.me now uses the correct patch for API v1.
146
180
 
147
- #### Release 1.5.3
181
+ ## Release 1.5.3
148
182
 
149
183
  - FIXED: In some cases the client crashed with NoMethodError VERSION (GH-35).
150
184
 
151
- #### Release 1.5.2
185
+ ## Release 1.5.2
152
186
 
153
187
  - NEW: Provide a meaningful user-agent.
154
188
 
155
- #### Release 1.5.1
189
+ ## Release 1.5.1
156
190
 
157
191
  - FIXED: Invalid base URI.
158
192
 
159
- #### Release 1.5.0
193
+ ## Release 1.5.0
160
194
 
161
195
  - CHANGED: Added support for versioned API (GH-33)
162
196
 
163
- #### Release 1.4.0
197
+ ## Release 1.4.0
164
198
 
165
199
  - CHANGED: Normalized exception handling. No more RuntimeError.
166
200
  In case of request error, the client raises RequestError, RecordExists or RecodNotFound