porkbun 0.3.1 → 0.5.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 +4 -4
- data/Gemfile +8 -9
- data/README.md +4 -0
- data/bin/porkbun +19 -0
- data/lib/porkbun/version.rb +1 -1
- data/lib/porkbun.rb +16 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55966f08e27676143e86c9a7e8d20e93ab18f18072484a9212d4102706532d93
|
4
|
+
data.tar.gz: c75016c446c7e25d57be8c0faaf996df401494df87ac66b614a067e202a14fb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a600d3705630e2062507e211dd6c3f000994463e60bdab46592aa6761d74d9704b1b3ca188fa5a76150948b36016442c3dda17189f9d2eb76781ca7b4b80556
|
7
|
+
data.tar.gz: f299259861ccb74e64f1d05d0eb8eecc9c22e9918ca7b243560604663e55ff06986cea57afc34d78530361b6cb73eabe3fac6e483e78b483db751b184a2a9d7a
|
data/Gemfile
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
source
|
3
|
+
source 'https://rubygems.org'
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in porkbun.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
|
8
|
+
group :development do
|
9
|
+
# gem "rake", "~> 13.0", :group => :test
|
10
|
+
gem 'pry', '~> 0.14.2', group: :test
|
11
|
+
gem 'rspec', '~> 3.12', group: :test
|
12
|
+
gem 'webmock', '~> 3.19', group: :test
|
13
|
+
end
|
9
14
|
|
10
|
-
gem
|
11
|
-
|
12
|
-
gem "webmock", "~> 3.19", :group => :test
|
13
|
-
|
14
|
-
gem "pry", "~> 0.14.2", :group => :test
|
15
|
-
|
16
|
-
gem "thor", "~> 1.2"
|
15
|
+
gem 'thor', '~> 1.2'
|
data/README.md
CHANGED
@@ -58,6 +58,10 @@ The gem also comes with a CLI
|
|
58
58
|
porkbun retrieve <domain> [<id>] # List all records for a domain
|
59
59
|
|
60
60
|
|
61
|
+
be sure to set the environmental variables for it to work
|
62
|
+
|
63
|
+
export PORKBUN_API_KEY = YOUR_API_KEY
|
64
|
+
export PORKBUN_SECRET_API_KEY = YOUR_SECRET_API_KEY
|
61
65
|
|
62
66
|
## Development
|
63
67
|
|
data/bin/porkbun
CHANGED
@@ -36,6 +36,12 @@ class CLI < Thor
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
desc 'env', 'Print environment variables'
|
40
|
+
def env
|
41
|
+
puts 'PORKBUN_API_KEY: ' + ENV['PORKBUN_API_KEY'].to_s
|
42
|
+
puts 'BUN_SECRET_API_KEY: ' + ENV['PORKBUN_SECRET_API_KEY'].to_s
|
43
|
+
end
|
44
|
+
|
39
45
|
desc 'delete_all <domain>', 'deletes all records for a domain. this is destructive. use with caution'
|
40
46
|
def delete_all(domain, id = '')
|
41
47
|
records = get_all(domain, id)
|
@@ -47,6 +53,19 @@ class CLI < Thor
|
|
47
53
|
end
|
48
54
|
end
|
49
55
|
|
56
|
+
desc 'create', 'Create a new record'
|
57
|
+
option :type, required: true, desc: 'The record type: A, AAAA, CNAME, MX, TXT, SRV, NS, SOA'
|
58
|
+
option :domain, required: true, desc: 'The domain name: google.com'
|
59
|
+
option :name, required: true, desc: 'The hostname: www'
|
60
|
+
option :content, required: true, desc: 'The content: hostname, or IP address'
|
61
|
+
option :ttl, default: 600, type: :numeric, desc: 'The TTL in seconds'
|
62
|
+
option :prio, default: 0, type: :numeric, desc: 'The priority for MX records'
|
63
|
+
def create
|
64
|
+
record = Porkbun::DNS.create(options)
|
65
|
+
puts record
|
66
|
+
puts record.message
|
67
|
+
end
|
68
|
+
|
50
69
|
desc 'dyndns <hostname.domain> [<ip>]', 'Update a dynamic dns record. example: porkbun dyndns home.example.com'
|
51
70
|
long_desc 'If no IP is provided, the current public IP is used.'
|
52
71
|
def dyndns(hostname, ip = nil)
|
data/lib/porkbun/version.rb
CHANGED
data/lib/porkbun.rb
CHANGED
@@ -7,6 +7,10 @@ module Porkbun
|
|
7
7
|
class Error < StandardError; end
|
8
8
|
|
9
9
|
def self.porkbun(path, options = {})
|
10
|
+
pp options
|
11
|
+
if ENV.fetch('PORKBUN_API_KEY', nil).nil? || ENV.fetch('PORKBUN_SECRET_API_KEY', nil).nil?
|
12
|
+
abort 'PORKBUN_API_KEY and PORKBUN_SECRET_API_KEY must be set'
|
13
|
+
end
|
10
14
|
res = HTTP.post File.join('https://porkbun.com/api/json/v3', path), json: {
|
11
15
|
secretapikey: ENV.fetch('PORKBUN_SECRET_API_KEY', nil),
|
12
16
|
apikey: ENV.fetch('PORKBUN_API_KEY', nil)
|
@@ -102,6 +106,18 @@ module Porkbun
|
|
102
106
|
"#{name}. #{ttl} IN #{type} #{prio_str} #{content_str}".tr_s(' ', ' ')
|
103
107
|
end
|
104
108
|
|
109
|
+
def to_h
|
110
|
+
{
|
111
|
+
name: name,
|
112
|
+
content: content,
|
113
|
+
type: type,
|
114
|
+
ttl: ttl,
|
115
|
+
prio: prio,
|
116
|
+
domain: domain,
|
117
|
+
id: id
|
118
|
+
}
|
119
|
+
end
|
120
|
+
|
105
121
|
def create
|
106
122
|
res = Porkbun.porkbun File.join('dns/create', domain), get_options
|
107
123
|
parse_response res
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: porkbun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Bretoi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
requirements: []
|
76
|
-
rubygems_version: 3.
|
76
|
+
rubygems_version: 3.5.3
|
77
77
|
signing_key:
|
78
78
|
specification_version: 4
|
79
79
|
summary: Porkbun API wrapper for Ruby.
|