statuspageio 0.1.5 → 0.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 +4 -4
- data/.rspec +1 -0
- data/.travis.yml +3 -0
- data/Gemfile.lock +59 -7
- data/README.md +63 -4
- data/lib/statuspageio/client/incident.rb +77 -14
- data/lib/statuspageio/client/subscriber.rb +26 -16
- data/lib/statuspageio/client.rb +14 -5
- data/lib/statuspageio/configuration.rb +5 -3
- data/lib/statuspageio/response_error.rb +21 -16
- data/lib/statuspageio/version.rb +1 -1
- data/lib/statuspageio.rb +3 -0
- data/rubocop.yml +43 -0
- data/statuspageio.gemspec +6 -4
- metadata +70 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f43cbc28350fdc2b5afccd05f3d1e2019afd66628194aebee9be946f8fdca91f
|
4
|
+
data.tar.gz: '095dd6153b9dab01037d0158b1baeb7e52dfb71d8b3d040d1284d8ad42ad2536'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ac50e89b3f18e9ba6eb5715889fb5320057f1496811509b8942fa15b568f3dfa24e1b931a29b73ecd52de0df3dd150593e879906d0fb556505bb378091a4d11
|
7
|
+
data.tar.gz: d992c244e59e3f4eed5e086e4fbe4ff59d2e7b0687654b431283d134d558fa9de010848df6f6b07940e36ab0c172ce90f624f917e685250cb4cbea8c785c14a1
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--require spec_helper
|
data/.travis.yml
ADDED
data/Gemfile.lock
CHANGED
@@ -1,24 +1,76 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
statuspageio (0.
|
5
|
-
httparty (~> 0.
|
4
|
+
statuspageio (0.2.0)
|
5
|
+
httparty (~> 0.17)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
|
10
|
+
addressable (2.8.1)
|
11
|
+
public_suffix (>= 2.0.2, < 6.0)
|
12
|
+
ast (2.4.2)
|
13
|
+
crack (0.4.5)
|
14
|
+
rexml
|
15
|
+
diff-lcs (1.4.4)
|
16
|
+
hashdiff (1.0.1)
|
17
|
+
httparty (0.18.1)
|
18
|
+
mime-types (~> 3.0)
|
11
19
|
multi_xml (>= 0.5.2)
|
20
|
+
mime-types (3.3.1)
|
21
|
+
mime-types-data (~> 3.2015)
|
22
|
+
mime-types-data (3.2021.0901)
|
12
23
|
multi_xml (0.6.0)
|
13
|
-
|
24
|
+
parallel (1.20.1)
|
25
|
+
parser (3.0.1.1)
|
26
|
+
ast (~> 2.4.1)
|
27
|
+
public_suffix (5.0.0)
|
28
|
+
rainbow (3.0.0)
|
29
|
+
rake (12.3.3)
|
30
|
+
regexp_parser (2.1.1)
|
31
|
+
rexml (3.2.5)
|
32
|
+
rspec (3.10.0)
|
33
|
+
rspec-core (~> 3.10.0)
|
34
|
+
rspec-expectations (~> 3.10.0)
|
35
|
+
rspec-mocks (~> 3.10.0)
|
36
|
+
rspec-core (3.10.1)
|
37
|
+
rspec-support (~> 3.10.0)
|
38
|
+
rspec-expectations (3.10.1)
|
39
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
40
|
+
rspec-support (~> 3.10.0)
|
41
|
+
rspec-mocks (3.10.2)
|
42
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
43
|
+
rspec-support (~> 3.10.0)
|
44
|
+
rspec-support (3.10.2)
|
45
|
+
rubocop (1.18.2)
|
46
|
+
parallel (~> 1.10)
|
47
|
+
parser (>= 3.0.0.0)
|
48
|
+
rainbow (>= 2.2.2, < 4.0)
|
49
|
+
regexp_parser (>= 1.8, < 3.0)
|
50
|
+
rexml
|
51
|
+
rubocop-ast (>= 1.7.0, < 2.0)
|
52
|
+
ruby-progressbar (~> 1.7)
|
53
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
54
|
+
rubocop-ast (1.7.0)
|
55
|
+
parser (>= 3.0.1.1)
|
56
|
+
ruby-progressbar (1.11.0)
|
57
|
+
unicode-display_width (2.0.0)
|
58
|
+
webmock (3.13.0)
|
59
|
+
addressable (>= 2.3.6)
|
60
|
+
crack (>= 0.3.2)
|
61
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
14
62
|
|
15
63
|
PLATFORMS
|
16
64
|
ruby
|
65
|
+
x86_64-darwin-19
|
17
66
|
|
18
67
|
DEPENDENCIES
|
19
|
-
bundler (~> 1.
|
20
|
-
rake (~>
|
68
|
+
bundler (~> 2.1, >= 2.1.0)
|
69
|
+
rake (~> 12.3, >= 12.3.3)
|
70
|
+
rspec (~> 3.10.0)
|
71
|
+
rubocop (~> 1.18)
|
21
72
|
statuspageio!
|
73
|
+
webmock (~> 3.13.0)
|
22
74
|
|
23
75
|
BUNDLED WITH
|
24
|
-
|
76
|
+
2.2.17
|
data/README.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
[](https://travis-ci.com/dasnixon/statuspageio)
|
2
|
+
[](https://codeclimate.com/github/dasnixon/statuspageio/maintainability)
|
3
|
+
|
1
4
|
# Statuspageio
|
2
5
|
|
3
6
|
Ruby gem for the [Statuspage REST API](https://developer.statuspage.io).
|
@@ -20,14 +23,70 @@ Or install it yourself as:
|
|
20
23
|
|
21
24
|
## Usage
|
22
25
|
|
23
|
-
|
26
|
+
#### Initializing a client
|
24
27
|
|
25
28
|
```ruby
|
26
29
|
client = Statuspageio::Client.new(api_key: '<your_api_key>', page_id: '<your_page_id>')
|
27
|
-
|
30
|
+
|
31
|
+
client.incidents
|
32
|
+
```
|
33
|
+
|
34
|
+
#### Incidents
|
35
|
+
|
36
|
+
```ruby
|
37
|
+
# get a list of all your incidents
|
38
|
+
client.incidents
|
39
|
+
|
40
|
+
# get incidents scoped by their status
|
41
|
+
client.incidents(:active_maintenance)
|
42
|
+
client.incidents(:scheduled)
|
43
|
+
client.incidents(:unresolved)
|
44
|
+
client.incidents(:upcoming)
|
45
|
+
|
46
|
+
# pagination support
|
47
|
+
client.incidents(limit: 20, page: 2)
|
48
|
+
|
49
|
+
# query support
|
50
|
+
client.incidents(query: 'AWS is down')
|
51
|
+
|
52
|
+
# fetch an incident
|
53
|
+
client.incident(<incident_id>)
|
54
|
+
|
55
|
+
# create an incident (see https://developer.statuspage.io for payload options)
|
56
|
+
client.create_incident(<incident payload>)
|
57
|
+
|
58
|
+
# update an incident
|
59
|
+
client.update_incident(<incident_id>, payload)
|
60
|
+
|
61
|
+
# delete an incident
|
62
|
+
client.delete_incident(<incident_id>)
|
63
|
+
|
64
|
+
```
|
65
|
+
|
66
|
+
#### Subscribers
|
67
|
+
|
68
|
+
```ruby
|
69
|
+
# get a list of all your subscribers
|
70
|
+
client.subscribers
|
71
|
+
|
72
|
+
# get a list of all your subscribers per incident
|
73
|
+
client.subscribers(incident_id: <incident_id>)
|
74
|
+
|
75
|
+
# query support
|
76
|
+
client.subscribers(query: 'Albert Einstein')
|
77
|
+
|
78
|
+
# create a subscriber (see https://developer.statuspage.io for payload options)
|
79
|
+
client.create_subscriber(<subscriber payload>)
|
80
|
+
|
81
|
+
# delete a subscriber
|
82
|
+
client.delete_subscriber(<subscriber_id>)
|
83
|
+
|
84
|
+
# delete a subscriber for an incident
|
85
|
+
client.delete_subscriber(<subscriber_id>, incident_id: <incident_id>)
|
86
|
+
|
28
87
|
```
|
29
88
|
|
30
|
-
|
89
|
+
#### In Rails you can configure using an initializer
|
31
90
|
|
32
91
|
`config/intializers/statuspage.rb`
|
33
92
|
|
@@ -46,7 +105,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
46
105
|
|
47
106
|
## Contributing
|
48
107
|
|
49
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
108
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/dasnixon/statuspageio.
|
50
109
|
|
51
110
|
## License
|
52
111
|
|
@@ -1,22 +1,85 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# https://developer.statuspage.io/#tag/incidents
|
1
4
|
module Statuspageio
|
2
5
|
class Client
|
3
6
|
module Incident
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
7
|
+
extend Gem::Deprecate
|
8
|
+
|
9
|
+
INCIDENT_TYPES = %w[
|
10
|
+
active_maintenance
|
11
|
+
scheduled
|
12
|
+
unresolved
|
13
|
+
upcoming
|
14
|
+
].freeze
|
15
|
+
|
16
|
+
VALID_INCIDENT_OPTIONS = %i[
|
17
|
+
auto_transition_deliver_notifications_at_end
|
18
|
+
auto_transition_deliver_notifications_at_start
|
19
|
+
auto_transition_to_maintenance_state
|
20
|
+
auto_transition_to_operational_state
|
21
|
+
auto_tweet_at_beginning
|
22
|
+
auto_tweet_on_completion
|
23
|
+
auto_tweet_on_creation
|
24
|
+
auto_tweet_one_hour_before
|
25
|
+
backfill_date
|
26
|
+
backfilled
|
27
|
+
body
|
28
|
+
components
|
29
|
+
component_ids
|
30
|
+
deliver_notifications
|
31
|
+
impact_override
|
32
|
+
metadata
|
33
|
+
name
|
34
|
+
status
|
35
|
+
scheduled_auto_completed
|
36
|
+
scheduled_auto_transition
|
37
|
+
scheduled_auto_in_progress
|
38
|
+
scheduled_for
|
39
|
+
scheduled_remind_prior
|
40
|
+
scheduled_until
|
41
|
+
].freeze
|
42
|
+
|
43
|
+
def incidents(scope = :all, limit: 100, page: 1, query: nil)
|
44
|
+
query_opts = { limit: limit, page: page, query: query }.compact
|
45
|
+
|
46
|
+
return get("/pages/#{page_id}/incidents/#{scope}", query_opts) if INCIDENT_TYPES.include?(scope&.to_s)
|
47
|
+
|
48
|
+
get("/pages/#{page_id}/incidents", query_opts)
|
15
49
|
end
|
16
50
|
|
17
|
-
def
|
18
|
-
|
19
|
-
|
51
|
+
def incident(incident_id)
|
52
|
+
get("/pages/#{page_id}/incidents/#{incident_id}")
|
53
|
+
end
|
54
|
+
|
55
|
+
def search_incidents(query)
|
56
|
+
incidents(query: query)
|
57
|
+
end
|
58
|
+
|
59
|
+
deprecate :search_incidents, :incidents, 2021, 7
|
60
|
+
|
61
|
+
def delete_incident(incident_id)
|
62
|
+
delete("/pages/#{page_id}/incidents/#{incident_id}")
|
63
|
+
end
|
64
|
+
|
65
|
+
def create_incident(opts = {})
|
66
|
+
create_opts = allowlist_opts(symbolize_keys(opts))
|
67
|
+
|
68
|
+
raise ArgumentError, 'name is required' if create_opts[:name].nil? || create_opts[:name].empty?
|
69
|
+
|
70
|
+
post("/pages/#{page_id}/incidents", incident: create_opts)
|
71
|
+
end
|
72
|
+
|
73
|
+
def update_incident(incident_id, opts = {})
|
74
|
+
update_opts = allowlist_opts(symbolize_keys(opts))
|
75
|
+
|
76
|
+
put("/pages/#{page_id}/incidents/#{incident_id}", incident: update_opts)
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def allowlist_opts(opts)
|
82
|
+
opts.slice(*VALID_INCIDENT_OPTIONS)
|
20
83
|
end
|
21
84
|
end
|
22
85
|
end
|
@@ -1,51 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# https://developer.statuspage.io/#tag/subscribers
|
1
4
|
module Statuspageio
|
2
5
|
class Client
|
3
6
|
module Subscriber
|
4
|
-
|
7
|
+
extend Gem::Deprecate
|
8
|
+
|
9
|
+
SUBSCRIBER_OPTIONS = %i[
|
10
|
+
component_ids
|
5
11
|
email
|
6
12
|
endpoint
|
13
|
+
page_access_user
|
7
14
|
phone_country
|
8
15
|
phone_number
|
9
16
|
skip_confirmation_notification
|
10
|
-
|
11
|
-
|
12
|
-
)
|
17
|
+
].freeze
|
18
|
+
|
19
|
+
def subscribers(incident_id: nil, query: nil)
|
20
|
+
query_opts = { q: query }.compact
|
13
21
|
|
14
|
-
def subscribers(incident_id: nil)
|
15
22
|
if incident_id
|
16
|
-
get("/pages/#{
|
23
|
+
get("/pages/#{page_id}/incidents/#{incident_id}/subscribers", query_opts)
|
17
24
|
else
|
18
|
-
get("/pages/#{
|
25
|
+
get("/pages/#{page_id}/subscribers", query_opts)
|
19
26
|
end
|
20
27
|
end
|
21
28
|
|
22
|
-
def search_subscribers(
|
23
|
-
|
24
|
-
get("/pages/#{self.page_id}/subscribers", { q: q })
|
29
|
+
def search_subscribers(query)
|
30
|
+
subscribers(query: query)
|
25
31
|
end
|
26
32
|
|
33
|
+
deprecate :search_subscribers, :subscribers, 2021, 7
|
34
|
+
|
27
35
|
def create_subscriber(options)
|
28
|
-
create_options = options.
|
36
|
+
create_options = symbolize_keys(options).slice(*SUBSCRIBER_OPTIONS)
|
29
37
|
|
30
38
|
if valid_for_subscribing?(create_options)
|
31
|
-
post("/pages/#{
|
39
|
+
post("/pages/#{page_id}/subscribers", subscriber: create_options)
|
32
40
|
else
|
33
|
-
raise ArgumentError, 'An email address or phone number with the two digit country code
|
41
|
+
raise ArgumentError, 'An email address or phone number with the two digit country code '\
|
42
|
+
'is required'
|
34
43
|
end
|
35
44
|
end
|
36
45
|
|
37
46
|
def delete_subscriber(subscriber_id, incident_id: nil)
|
38
47
|
if incident_id
|
39
|
-
delete("/pages/#{
|
48
|
+
delete("/pages/#{page_id}/incidents/#{incident_id}/subscribers/#{subscriber_id}")
|
40
49
|
else
|
41
|
-
delete("/pages/#{
|
50
|
+
delete("/pages/#{page_id}/subscribers/#{subscriber_id}")
|
42
51
|
end
|
43
52
|
end
|
44
53
|
|
45
54
|
private
|
46
55
|
|
47
56
|
def valid_for_subscribing?(options)
|
48
|
-
!(options[:email].empty? &&
|
57
|
+
!(options[:email].empty? &&
|
58
|
+
(options[:phone_country].empty? || options[:phone_number].empty?))
|
49
59
|
end
|
50
60
|
end
|
51
61
|
end
|
data/lib/statuspageio/client.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'httparty'
|
2
4
|
require 'statuspageio/configuration'
|
3
5
|
require 'statuspageio/response_error'
|
@@ -31,9 +33,8 @@ module Statuspageio
|
|
31
33
|
end
|
32
34
|
|
33
35
|
def self.bad_response(response)
|
34
|
-
if response.
|
35
|
-
|
36
|
-
end
|
36
|
+
raise ResponseError, response if response.instance_of?(HTTParty::Response)
|
37
|
+
|
37
38
|
raise StandardError, 'Unknown error'
|
38
39
|
end
|
39
40
|
|
@@ -55,10 +56,18 @@ module Statuspageio
|
|
55
56
|
|
56
57
|
private
|
57
58
|
|
59
|
+
def symbolize_keys(opts)
|
60
|
+
opts.transform_keys do |key|
|
61
|
+
key.to_sym
|
62
|
+
rescue StandardError
|
63
|
+
key
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
58
67
|
def headers
|
59
68
|
{
|
60
|
-
'Authorization' => "OAuth #{
|
61
|
-
'Content-Type'
|
69
|
+
'Authorization' => "OAuth #{api_key}",
|
70
|
+
'Content-Type' => 'application/json'
|
62
71
|
}
|
63
72
|
end
|
64
73
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Statuspageio
|
2
4
|
module Configuration
|
3
5
|
# An array of valid keys in the options hash when configuring a {Gems::Client}
|
4
|
-
VALID_OPTIONS_KEYS = [
|
5
|
-
|
6
|
-
|
6
|
+
VALID_OPTIONS_KEYS = %i[
|
7
|
+
api_key
|
8
|
+
page_id
|
7
9
|
].freeze
|
8
10
|
|
9
11
|
attr_accessor(*VALID_OPTIONS_KEYS)
|
@@ -1,35 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Statuspageio
|
2
4
|
class ResponseError < StandardError
|
3
|
-
|
4
|
-
attr_reader :response, :code, :errors
|
5
|
+
attr_accessor :response, :code, :errors
|
5
6
|
|
6
7
|
def initialize(res)
|
7
|
-
|
8
|
-
|
8
|
+
self.response = res.response
|
9
|
+
self.code = res.code
|
9
10
|
begin
|
10
|
-
|
11
|
+
self.errors = parse_errors(res.parsed_response)
|
11
12
|
rescue JSON::ParserError
|
12
|
-
|
13
|
+
self.errors = [res.response.body]
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
16
17
|
def to_s
|
17
|
-
|
18
|
+
[code.to_s, response.msg, inlined_errors].compact.map(&:strip).join(' ')
|
18
19
|
end
|
19
20
|
|
20
21
|
private
|
21
22
|
|
22
23
|
def parse_errors(errors)
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
case errors
|
25
|
+
when Hash
|
26
|
+
errors.collect { |k, v| "#{k}: #{v}" }
|
27
|
+
when String
|
28
|
+
[errors]
|
29
|
+
when Array
|
30
|
+
errors
|
31
|
+
else
|
32
|
+
[]
|
32
33
|
end
|
33
34
|
end
|
35
|
+
|
36
|
+
def inlined_errors
|
37
|
+
errors&.join(', ')
|
38
|
+
end
|
34
39
|
end
|
35
40
|
end
|
data/lib/statuspageio/version.rb
CHANGED
data/lib/statuspageio.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'statuspageio/client'
|
2
4
|
require 'statuspageio/configuration'
|
3
5
|
|
@@ -11,6 +13,7 @@ module Statuspageio
|
|
11
13
|
|
12
14
|
def method_missing(method, *args, &block)
|
13
15
|
return super unless new.respond_to?(method)
|
16
|
+
|
14
17
|
new.send(method, *args, &block)
|
15
18
|
end
|
16
19
|
|
data/rubocop.yml
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# This explicitly enables all new cops
|
2
|
+
# We should just have to adjust where we deviate from the defaults
|
3
|
+
AllCops:
|
4
|
+
NewCops: enable
|
5
|
+
SuggestExtensions: false
|
6
|
+
|
7
|
+
Layout/HashAlignment:
|
8
|
+
EnforcedColonStyle: table
|
9
|
+
EnforcedHashRocketStyle: table
|
10
|
+
|
11
|
+
Metrics/BlockLength:
|
12
|
+
Exclude:
|
13
|
+
- '*.gemspec'
|
14
|
+
- 'Rakefile'
|
15
|
+
- '**/*.rake'
|
16
|
+
- 'spec/**/*.rb'
|
17
|
+
- 'test/**/*.rb'
|
18
|
+
|
19
|
+
Layout/LineLength:
|
20
|
+
Max: 100
|
21
|
+
|
22
|
+
Style/Documentation:
|
23
|
+
Enabled: false
|
24
|
+
|
25
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
26
|
+
AllowAliasSyntax: true
|
27
|
+
Enabled: true
|
28
|
+
|
29
|
+
Lint/EmptyConditionalBody:
|
30
|
+
AllowComments: true
|
31
|
+
Enabled: true
|
32
|
+
|
33
|
+
Lint/RaiseException:
|
34
|
+
AllowedImplicitNamespaces: true
|
35
|
+
Enabled: true
|
36
|
+
|
37
|
+
Style/ExponentialNotation:
|
38
|
+
EnforcedStyle: scientific
|
39
|
+
Enabled: true
|
40
|
+
|
41
|
+
Style/HashAsLastArrayItem:
|
42
|
+
Enabled: true
|
43
|
+
EnforcedStyle: braces
|
data/statuspageio.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
lib = File.expand_path("../lib", __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require "statuspageio/version"
|
@@ -29,8 +28,11 @@ Gem::Specification.new do |spec|
|
|
29
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
30
29
|
spec.require_paths = ["lib"]
|
31
30
|
|
32
|
-
spec.add_dependency "httparty", "~> 0.
|
31
|
+
spec.add_dependency "httparty", "~> 0.17"
|
33
32
|
|
34
|
-
spec.add_development_dependency
|
35
|
-
spec.add_development_dependency
|
33
|
+
spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.1.0'
|
34
|
+
spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
|
35
|
+
spec.add_development_dependency 'rspec', '~> 3.10.0'
|
36
|
+
spec.add_development_dependency 'rubocop', '~> 1.18'
|
37
|
+
spec.add_development_dependency 'webmock', '~> 3.13.0'
|
36
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statuspageio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Nixon
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -16,43 +16,97 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.17'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: '0.17'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1
|
33
|
+
version: '2.1'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 2.1.0
|
34
37
|
type: :development
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
41
|
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1
|
43
|
+
version: '2.1'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 2.1.0
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: rake
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
53
|
+
version: '12.3'
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 12.3.3
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '12.3'
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 12.3.3
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: rspec
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 3.10.0
|
74
|
+
type: :development
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - "~>"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 3.10.0
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rubocop
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '1.18'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - "~>"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '1.18'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: webmock
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 3.13.0
|
48
102
|
type: :development
|
49
103
|
prerelease: false
|
50
104
|
version_requirements: !ruby/object:Gem::Requirement
|
51
105
|
requirements:
|
52
106
|
- - "~>"
|
53
107
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
description:
|
108
|
+
version: 3.13.0
|
109
|
+
description:
|
56
110
|
email:
|
57
111
|
- chris.d.nixon@gmail.com
|
58
112
|
executables: []
|
@@ -60,6 +114,8 @@ extensions: []
|
|
60
114
|
extra_rdoc_files: []
|
61
115
|
files:
|
62
116
|
- ".gitignore"
|
117
|
+
- ".rspec"
|
118
|
+
- ".travis.yml"
|
63
119
|
- Gemfile
|
64
120
|
- Gemfile.lock
|
65
121
|
- LICENSE.txt
|
@@ -74,12 +130,13 @@ files:
|
|
74
130
|
- lib/statuspageio/configuration.rb
|
75
131
|
- lib/statuspageio/response_error.rb
|
76
132
|
- lib/statuspageio/version.rb
|
133
|
+
- rubocop.yml
|
77
134
|
- statuspageio.gemspec
|
78
135
|
homepage: https://github.com/dasnixon/statuspageio
|
79
136
|
licenses:
|
80
137
|
- MIT
|
81
138
|
metadata: {}
|
82
|
-
post_install_message:
|
139
|
+
post_install_message:
|
83
140
|
rdoc_options: []
|
84
141
|
require_paths:
|
85
142
|
- lib
|
@@ -94,8 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
151
|
- !ruby/object:Gem::Version
|
95
152
|
version: '0'
|
96
153
|
requirements: []
|
97
|
-
rubygems_version: 3.
|
98
|
-
signing_key:
|
154
|
+
rubygems_version: 3.4.18
|
155
|
+
signing_key:
|
99
156
|
specification_version: 4
|
100
157
|
summary: Ruby API wrapper for Statuspage.io.
|
101
158
|
test_files: []
|