dnsimple 12.1.1 → 12.2.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: aba3fa999d47316cbc09c4084e223279a1fea0b0694f47fae6ad439aea1eba61
4
- data.tar.gz: 9ecf0f9812b057a8f091ff7dbeedc0978b4adc167f470e33883c9562699d1625
3
+ metadata.gz: 7f407171557923f494c7021338188386bc8960ce0f4b5d8d054a599370e1c9bb
4
+ data.tar.gz: 9770d96251d504107ce14afcedf3cade478902ac1533f1836103fca8cf4fe584
5
5
  SHA512:
6
- metadata.gz: 3e30070f4e8fbbea5ccba3118edaf80282ca77edfe96010d10f94a299dbd33f18866c8119abcb1a8ea057b2a65a04ac979de4bc652d5aba0c060e6d06c9cfd4f
7
- data.tar.gz: 710dd46a4f23519e218c7e9e83c06043e605dcf7fdb5b203088b366e2b23db47697003d3d8ad4b2cae9ab501626c1923bb46eba84e781753c467925181a13517
6
+ metadata.gz: 519a34dc4c836058cb9edae0c185abb3c270f1ebac1b5b22202a1b198e148736aff3cc4e002082901656621e71e26a78e0fe5012df6d9421f7129e876e30c6d5
7
+ data.tar.gz: d5fad291abd99d373d66158a954780f2b278ccc3d95d01f7552f9689ae8bd5d7f9a91816b127818fc38c1c53f44680c9cce9542cd073f5f4ab8c0c2443543453
@@ -11,45 +11,24 @@ jobs:
11
11
  - name: Checkout repository
12
12
  uses: actions/checkout@v6
13
13
  - name: Sync fixtures
14
+ id: sync
14
15
  run: |
15
16
  TMP_DIR=$(mktemp -d)
16
17
  curl -fsSL "https://codeload.github.com/dnsimple/dnsimple-developer/tar.gz/refs/heads/main" \
17
18
  | tar -xz -C "$TMP_DIR"
18
19
  rsync -a --delete "$TMP_DIR/dnsimple-developer-main/fixtures/v2/api/" test/fixtures.http/
19
- - name: Create a PR to sync fixtures if there are changes
20
- run: |
21
- cat <<'MD' > pr_body.md
22
- This PR replaces the fixtures in this repository with those from https://github.com/dnsimple/dnsimple-developer/
23
-
24
- ## Checklist
25
- - [ ] Close and re-open this PR to trigger the CI workflow (it does not run automatically)
26
- - [ ] Ensure the CI workflow passes before merging
27
- MD
28
-
29
- # Configure Git identity for the workflow
30
- git config --global user.name "github-actions"
31
- git config --global user.email "github-actions@github.com"
32
-
33
- # Create and switch to a new branch
34
- BRANCH="chore/sync-fixtures-${GITHUB_RUN_ID}"
35
- NOW="$(date +'%Y-%m-%d %H:%M:%S')"
36
- git checkout -b "$BRANCH"
37
-
38
- # Stage changes
39
- git add test/fixtures.http
40
-
41
- # Commit if there are staged changes
42
- if ! git diff --cached --quiet; then
43
- git commit -m "chore: sync test fixtures as of $NOW"
44
- git push -u origin "$BRANCH"
45
-
46
- gh pr create \
47
- --title "chore: Sync fixtures as of $NOW" \
48
- --body-file pr_body.md \
49
- --base main \
50
- --head "$BRANCH"
51
- else
52
- echo "No fixture detected; nothing to do"
53
- fi
54
- env:
55
- GITHUB_TOKEN: ${{ github.token }}
20
+ echo "now=$(date +'%Y-%m-%d %H:%M:%S')" >> "$GITHUB_OUTPUT"
21
+ - name: Create PR with synced fixtures
22
+ uses: peter-evans/create-pull-request@v7
23
+ with:
24
+ sign-commits: true
25
+ add-paths: test/fixtures.http
26
+ commit-message: "chore: sync test fixtures as of ${{ steps.sync.outputs.now }}"
27
+ branch: "chore/sync-fixtures-${{ github.run_id }}"
28
+ title: "chore: Sync fixtures as of ${{ steps.sync.outputs.now }}"
29
+ body: |
30
+ This PR replaces the fixtures in this repository with those from https://github.com/dnsimple/dnsimple-developer/
31
+
32
+ ## Checklist
33
+ - [ ] Close and re-open this PR to trigger the CI workflow (it does not run automatically)
34
+ - [ ] Ensure the CI workflow passes before merging
data/CHANGELOG.md CHANGED
@@ -2,13 +2,19 @@
2
2
 
3
3
  This project uses [Semantic Versioning 2.0.0](http://semver.org/), the format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## 12.2.0 - 2026-03-23
6
+
7
+ ### Added
8
+
9
+ - Added support for trustee service. (#459)
10
+
5
11
  ## 12.1.1 - 2026-03-11
6
12
 
7
13
  ### Changed
8
14
 
9
15
  - Migrated the test suite from RSpec to Minitest. This is an internal change with no public API impact. (#448)
10
16
 
11
- ## 12.1.0 - 2025-02-26
17
+ ## 12.1.0 - 2026-02-26
12
18
 
13
19
  ### Added
14
20
 
@@ -27,6 +27,9 @@ module Dnsimple
27
27
  # @return [Bool] True if the domain WHOIS privacy is enabled, false otherwise.
28
28
  attr_accessor :private_whois
29
29
 
30
+ # @return [Bool] True if the domain Trustee service is enabled, false otherwise.
31
+ attr_accessor :trustee_service
32
+
30
33
  # @return [String] The timestamp when domain will expire.
31
34
  attr_accessor :expires_at
32
35
 
@@ -17,6 +17,9 @@ module Dnsimple
17
17
 
18
18
  # @return [Float] The price for transfer
19
19
  attr_accessor :transfer_price
20
+
21
+ # @return [Float] The Trustee service price
22
+ attr_accessor :trustee_service_price
20
23
  end
21
24
  end
22
25
  end
@@ -24,6 +24,9 @@ module Dnsimple
24
24
  # @return [Bool] True if the domain WHOIS privacy was requested.
25
25
  attr_accessor :whois_privacy
26
26
 
27
+ # @return [Bool] True if the domain Trustee service was requested.
28
+ attr_accessor :trustee_service
29
+
27
30
  # @return [String] When the domain renewal was created in DNSimple.
28
31
  attr_accessor :created_at
29
32
 
@@ -30,6 +30,12 @@ module Dnsimple
30
30
  # @return [Boolean] True if DNSimple supports inbound transfers for this TLD.
31
31
  attr_accessor :transfer_enabled
32
32
 
33
+ # @return [Boolean] True if Trustee service is enabled for this TLD.
34
+ attr_accessor :trustee_service_enabled
35
+
36
+ # @return [Boolean] True if Trustee service is required for this TLD.
37
+ attr_accessor :trustee_service_required
38
+
33
39
  # @return [String, nil] Type of data interface required for DNSSEC for this TLD.
34
40
  attr_accessor :dnssec_interface_type
35
41
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dnsimple
4
- VERSION = "12.1.1"
4
+ VERSION = "12.2.0"
5
5
  end
@@ -172,6 +172,7 @@ class DomainsTest < Minitest::Test
172
172
  assert_equal("registered", result.state)
173
173
  refute(result.auto_renew)
174
174
  refute(result.private_whois)
175
+ refute(result.trustee_service)
175
176
  assert_equal("2021-06-05T02:15:00Z", result.expires_at)
176
177
  assert_equal("2020-06-04T19:15:14Z", result.created_at)
177
178
  assert_equal("2020-06-04T19:15:21Z", result.updated_at)
@@ -62,6 +62,11 @@ class RegistrarTest < Minitest::Test
62
62
  assert_in_delta(20.0, result.registration_price)
63
63
  assert_in_delta(20.0, result.renewal_price)
64
64
  assert_in_delta(20.0, result.transfer_price)
65
+ if result.trustee_service_price.nil?
66
+ assert_nil result.trustee_service_price
67
+ else
68
+ assert_in_delta(20.0, result.trustee_service_price)
69
+ end
65
70
  end
66
71
 
67
72
  test "get domain prices when tld is not supported raises error" do
@@ -78,7 +83,7 @@ class RegistrarTest < Minitest::Test
78
83
  stub_request(:post, %r{/v2/#{@account_id}/registrar/domains/.+/registrations$})
79
84
  .to_return(read_http_fixture("registerDomain/success.http"))
80
85
 
81
- attributes = { registrant_id: "10" }
86
+ attributes = { registrant_id: "10", trustee_service: true }
82
87
  @subject.register_domain(@account_id, domain_name = "example.com", attributes)
83
88
 
84
89
  assert_requested(:post, "https://api.dnsimple.test/v2/#{@account_id}/registrar/domains/#{domain_name}/registrations",
@@ -100,6 +105,7 @@ class RegistrarTest < Minitest::Test
100
105
  assert_kind_of(Dnsimple::Struct::DomainRegistration, result)
101
106
  assert_kind_of(Integer, result.id)
102
107
  assert_kind_of(Integer, result.domain_id)
108
+ refute(result.trustee_service)
103
109
  end
104
110
 
105
111
  test "register domain when attributes are incomplete raises argument error" do
@@ -132,6 +138,7 @@ class RegistrarTest < Minitest::Test
132
138
  assert_kind_of(Dnsimple::Struct::DomainRegistration, result)
133
139
  assert_kind_of(Integer, result.id)
134
140
  assert_kind_of(Integer, result.domain_id)
141
+ refute(result.trustee_service)
135
142
  end
136
143
 
137
144
 
@@ -58,6 +58,8 @@ class TldsTest < Minitest::Test
58
58
  assert_kind_of(Dnsimple::Struct::Tld, result)
59
59
  assert_kind_of(Integer, result.tld_type)
60
60
  assert_kind_of(String, result.tld)
61
+ refute(result.trustee_service_enabled)
62
+ refute(result.trustee_service_required)
61
63
  end
62
64
  end
63
65
 
@@ -120,6 +122,8 @@ class TldsTest < Minitest::Test
120
122
  assert_equal("com", result.tld)
121
123
  assert_equal(1, result.tld_type)
122
124
  assert(result.whois_privacy)
125
+ refute(result.trustee_service_enabled)
126
+ refute(result.trustee_service_required)
123
127
  refute(result.auto_renew_only)
124
128
  assert(result.idn)
125
129
  assert_equal(1, result.minimum_registration)
@@ -13,4 +13,4 @@ x-request-id: e3c6fac1-a36d-42c3-8a04-d68f127add18
13
13
  x-runtime: 0.605907
14
14
  strict-transport-security: max-age=31536000
15
15
 
16
- {"data":{"domain":"ruby.codes","available":true,"premium":true}}
16
+ {"data":{"domain":"ruby.codes","available":true,"premium":true}}
@@ -17,4 +17,4 @@ x-download-options: noopen
17
17
  x-permitted-cross-domain-policies: none
18
18
  strict-transport-security: max-age=31536000
19
19
 
20
- {"data":{"id":181984,"account_id":1385,"registrant_id":2715,"name":"example-alpha.com","unicode_name":"example-alpha.com","state":"registered","auto_renew":false,"private_whois":false,"expires_on":"2021-06-05","expires_at":"2021-06-05T02:15:00Z","created_at":"2020-06-04T19:15:14Z","updated_at":"2020-06-04T19:15:21Z"}}
20
+ {"data":{"id":181984,"account_id":1385,"registrant_id":2715,"name":"example-alpha.com","unicode_name":"example-alpha.com","state":"registered","auto_renew":false,"private_whois":false,"trustee_service":false,"expires_on":"2021-06-05","expires_at":"2021-06-05T02:15:00Z","created_at":"2020-06-04T19:15:14Z","updated_at":"2020-06-04T19:15:21Z"}}
@@ -18,4 +18,4 @@ x-permitted-cross-domain-policies: none
18
18
  content-security-policy: frame-ancestors 'none'
19
19
  strict-transport-security: max-age=31536000
20
20
 
21
- {"data":{"domain":"bingo.pizza","premium":true,"registration_price":20.0,"renewal_price":20.0,"transfer_price":20.0,"restore_price":20.0}}
21
+ {"data":{"domain":"bingo.pizza","premium":true,"registration_price":20.0,"renewal_price":20.0,"transfer_price":20.0,"restore_price":20.0,"trustee_service_price":20.0}}
@@ -17,4 +17,4 @@ x-download-options: noopen
17
17
  x-permitted-cross-domain-policies: none
18
18
  strict-transport-security: max-age=31536000
19
19
 
20
- {"data":{"id":361,"domain_id":104040,"registrant_id":2715,"period":1,"state":"registering","auto_renew":false,"whois_privacy":false,"created_at":"2023-01-27T17:44:32Z","updated_at":"2023-01-27T17:44:40Z"}}
20
+ {"data":{"id":361,"domain_id":104040,"registrant_id":2715,"period":1,"state":"registering","auto_renew":false,"whois_privacy":false,"trustee_service":false,"created_at":"2023-01-27T17:44:32Z","updated_at":"2023-01-27T17:44:40Z"}}
@@ -17,4 +17,4 @@ x-permitted-cross-domain-policies: none
17
17
  x-xss-protection: 1; mode=block
18
18
  strict-transport-security: max-age=31536000
19
19
 
20
- {"data":{"tld":"com","tld_type":1,"whois_privacy":true,"auto_renew_only":false,"idn":true,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":true,"dnssec_interface_type":"ds","name_server_min":"2","name_server_max":"13"}}
20
+ {"data":{"tld":"com","tld_type":1,"whois_privacy":true,"auto_renew_only":false,"idn":true,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":true,"dnssec_interface_type":"ds","name_server_min":"2","name_server_max":"13","trustee_service_enabled":false,"trustee_service_required":false}}
@@ -17,4 +17,4 @@ x-permitted-cross-domain-policies: none
17
17
  x-xss-protection: 1; mode=block
18
18
  strict-transport-security: max-age=31536000
19
19
 
20
- {"data":[{"tld":"ac","tld_type":2,"whois_privacy":false,"auto_renew_only":true,"idn":false,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":false,"dnssec_interface_type":"ds","name_server_min":"2","name_server_max":"13"},{"tld":"academy","tld_type":3,"whois_privacy":true,"auto_renew_only":false,"idn":true,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":true,"dnssec_interface_type":"key","name_server_min":"2","name_server_max":"13"}],"pagination":{"current_page":1,"per_page":2,"total_entries":195,"total_pages":98}}
20
+ {"data":[{"tld":"ac","tld_type":2,"whois_privacy":false,"auto_renew_only":true,"idn":false,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":false,"dnssec_interface_type":"ds","name_server_min":"2","name_server_max":"13","trustee_service_enabled":false,"trustee_service_required":false},{"tld":"academy","tld_type":3,"whois_privacy":true,"auto_renew_only":false,"idn":true,"minimum_registration":1,"registration_enabled":true,"renewal_enabled":true,"transfer_enabled":true,"dnssec_interface_type":"key","name_server_min":"2","name_server_max":"13","trustee_service_enabled":false,"trustee_service_required":false}],"pagination":{"current_page":1,"per_page":2,"total_entries":195,"total_pages":98}}
@@ -17,4 +17,4 @@ x-permitted-cross-domain-policies: none
17
17
  x-xss-protection: 1; mode=block
18
18
  strict-transport-security: max-age=31536000
19
19
 
20
- {"data":{"id":1,"domain_id":999,"registrant_id":2,"period":1,"state":"new","auto_renew":false,"whois_privacy":false,"created_at":"2016-12-09T19:35:31Z","updated_at":"2016-12-09T19:35:31Z"}}
20
+ {"data":{"id":1,"domain_id":999,"registrant_id":2,"period":1,"state":"new","auto_renew":false,"whois_privacy":false,"trustee_service":false,"created_at":"2016-12-09T19:35:31Z","updated_at":"2016-12-09T19:35:31Z"}}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dnsimple
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.1.1
4
+ version: 12.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - DNSimple
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-11 00:00:00.000000000 Z
11
+ date: 2026-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty