pager_duty 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +17 -3
  4. data/Guardfile +30 -0
  5. data/README.md +258 -17
  6. data/fixtures/vcr_cassettes/abilities/index.yml +58 -0
  7. data/fixtures/vcr_cassettes/abilities/index_invalid.yml +48 -0
  8. data/fixtures/vcr_cassettes/abilities/show.yml +52 -0
  9. data/fixtures/vcr_cassettes/abilities/show_false.yml +56 -0
  10. data/fixtures/vcr_cassettes/addons/create_all_set.yml +58 -0
  11. data/fixtures/vcr_cassettes/addons/create_no_https_src.yml +57 -0
  12. data/fixtures/vcr_cassettes/addons/create_no_name.yml +57 -0
  13. data/fixtures/vcr_cassettes/addons/create_no_src.yml +57 -0
  14. data/fixtures/vcr_cassettes/addons/create_no_type.yml +57 -0
  15. data/fixtures/vcr_cassettes/addons/delete_P58BJWA.yml +56 -0
  16. data/fixtures/vcr_cassettes/addons/delete_P5R5GQ4.yml +52 -0
  17. data/fixtures/vcr_cassettes/addons/delete_no_id.yml +51 -0
  18. data/fixtures/vcr_cassettes/addons/get_by_id.yml +61 -0
  19. data/fixtures/vcr_cassettes/addons/get_deleted.yml +109 -0
  20. data/fixtures/vcr_cassettes/addons/index.yml +63 -0
  21. data/fixtures/vcr_cassettes/addons/index_with_services.yml +65 -0
  22. data/fixtures/vcr_cassettes/addons/index_with_services_by_service_id.yml +65 -0
  23. data/fixtures/vcr_cassettes/addons/index_with_services_filtered_to_full_page_addon.yml +60 -0
  24. data/fixtures/vcr_cassettes/addons/update_by_id.yml +119 -0
  25. data/fixtures/vcr_cassettes/addons/update_by_id_name_only.yml +119 -0
  26. data/fixtures/vcr_cassettes/escalation_policies/create_does_not_work.yml +61 -0
  27. data/fixtures/vcr_cassettes/escalation_policies/create_no_escalation_rule_targets.yml +57 -0
  28. data/fixtures/vcr_cassettes/escalation_policies/create_works.yml +67 -0
  29. data/fixtures/vcr_cassettes/escalation_policies/delete_P09984M_allowed.yml +163 -0
  30. data/fixtures/vcr_cassettes/escalation_policies/delete_P7N334Z.yml +56 -0
  31. data/fixtures/vcr_cassettes/escalation_policies/get_by_id.yml +61 -0
  32. data/fixtures/vcr_cassettes/escalation_policies/get_deleted.yml +56 -0
  33. data/fixtures/vcr_cassettes/escalation_policies/index_include_services.yml +76 -0
  34. data/fixtures/vcr_cassettes/escalation_policies/index_include_services_teams.yml +76 -0
  35. data/fixtures/vcr_cassettes/escalation_policies/index_include_services_teams_targets.yml +76 -0
  36. data/fixtures/vcr_cassettes/escalation_policies/index_multiple_user_ids.yml +72 -0
  37. data/fixtures/vcr_cassettes/escalation_policies/index_name_asc.yml +76 -0
  38. data/fixtures/vcr_cassettes/escalation_policies/index_name_desc.yml +76 -0
  39. data/fixtures/vcr_cassettes/escalation_policies/index_no_query.yml +76 -0
  40. data/fixtures/vcr_cassettes/escalation_policies/index_query.yml +65 -0
  41. data/fixtures/vcr_cassettes/escalation_policies/index_team_ids.yml +65 -0
  42. data/fixtures/vcr_cassettes/escalation_policies/index_user_id_has_five.yml +76 -0
  43. data/fixtures/vcr_cassettes/escalation_policies/index_user_id_has_four.yml +72 -0
  44. data/fixtures/vcr_cassettes/escalation_policies/index_user_id_has_one.yml +62 -0
  45. data/fixtures/vcr_cassettes/escalation_policies/index_user_id_nothing.yml +58 -0
  46. data/fixtures/vcr_cassettes/escalation_policies/update_description_only.yml +126 -0
  47. data/fixtures/vcr_cassettes/escalation_policies/update_escalation_rules_only.yml +125 -0
  48. data/fixtures/vcr_cassettes/escalation_policies/update_escalation_rules_user.yml +125 -0
  49. data/fixtures/vcr_cassettes/escalation_policies/update_name_only.yml +122 -0
  50. data/fixtures/vcr_cassettes/escalation_policies/update_no_name.yml +119 -0
  51. data/fixtures/vcr_cassettes/escalation_policies/update_num_loops_only.yml +125 -0
  52. data/fixtures/vcr_cassettes/escalation_policies/update_repeat_enabled_only.yml +125 -0
  53. data/fixtures/vcr_cassettes/escalation_policies/update_teams.yml +125 -0
  54. data/fixtures/vcr_cassettes/incidents/incident.yml +125 -0
  55. data/fixtures/vcr_cassettes/incidents/incident_alerts/P6M04C7.yml +61 -0
  56. data/fixtures/vcr_cassettes/incidents/incident_alerts/alert_key.yml +61 -0
  57. data/fixtures/vcr_cassettes/incidents/incident_alerts/status_resolved.yml +61 -0
  58. data/fixtures/vcr_cassettes/incidents/incident_log_entries/P6M04C7.yml +90 -0
  59. data/fixtures/vcr_cassettes/incidents/incident_log_entries/P6M04C7_include.yml +114 -0
  60. data/fixtures/vcr_cassettes/incidents/incident_log_entries/P6M04C7_is_overview.yml +69 -0
  61. data/fixtures/vcr_cassettes/incidents/incident_notes/P6M04C7.yml +58 -0
  62. data/fixtures/vcr_cassettes/incidents/incident_notes/P9XCW88.yml +60 -0
  63. data/fixtures/vcr_cassettes/incidents/index/acknowledged.yml +67 -0
  64. data/fixtures/vcr_cassettes/incidents/index/all_statuses.yml +182 -0
  65. data/fixtures/vcr_cassettes/incidents/index/created_at_asc.yml +181 -0
  66. data/fixtures/vcr_cassettes/incidents/index/created_at_desc.yml +181 -0
  67. data/fixtures/vcr_cassettes/incidents/index/date_range_all.yml +181 -0
  68. data/fixtures/vcr_cassettes/incidents/index/incident_key.yml +65 -0
  69. data/fixtures/vcr_cassettes/incidents/index/include_users.yml +181 -0
  70. data/fixtures/vcr_cassettes/incidents/index/include_users_services.yml +235 -0
  71. data/fixtures/vcr_cassettes/incidents/index/limited.yml +77 -0
  72. data/fixtures/vcr_cassettes/incidents/index/no_query.yml +181 -0
  73. data/fixtures/vcr_cassettes/incidents/index/resolved.yml +166 -0
  74. data/fixtures/vcr_cassettes/incidents/index/service_id_P407C9R.yml +168 -0
  75. data/fixtures/vcr_cassettes/incidents/index/service_id_P7WQ2DJ_P407C9R.yml +71 -0
  76. data/fixtures/vcr_cassettes/incidents/index/team_ids_P1HE60B.yml +79 -0
  77. data/fixtures/vcr_cassettes/incidents/index/team_ids_P1HE60B_P7XILUG.yml +79 -0
  78. data/fixtures/vcr_cassettes/incidents/index/team_ids_P7XILUG.yml +65 -0
  79. data/fixtures/vcr_cassettes/incidents/index/time_zone.yml +181 -0
  80. data/fixtures/vcr_cassettes/incidents/index/triggered.yml +73 -0
  81. data/fixtures/vcr_cassettes/incidents/index/urgencies_high.yml +181 -0
  82. data/fixtures/vcr_cassettes/incidents/index/urgencies_high_low.yml +181 -0
  83. data/fixtures/vcr_cassettes/incidents/index/urgencies_low.yml +58 -0
  84. data/fixtures/vcr_cassettes/incidents/index/user_ids_PDU9IB6.yml +65 -0
  85. data/fixtures/vcr_cassettes/incidents/index/user_ids_PDU9IB6_PGJLPE9.yml +65 -0
  86. data/fixtures/vcr_cassettes/incidents/index/user_ids_PGJLPE9.yml +66 -0
  87. data/fixtures/vcr_cassettes/incidents/merge_incidents/PD9WJA8_PZMITGO.yml +69 -0
  88. data/fixtures/vcr_cassettes/incidents/snooze_incident/PD9WJA8.yml +58 -0
  89. data/fixtures/vcr_cassettes/incidents/snooze_incident/PD9WJA8_acknowledged.yml +69 -0
  90. data/fixtures/vcr_cassettes/incidents/update_incidents/PD9WJA8.yml +67 -0
  91. data/fixtures/vcr_cassettes/unauthorized_nil_token.yml +48 -0
  92. data/lib/pager_duty.rb +14 -1
  93. data/lib/pager_duty/client.rb +29 -0
  94. data/lib/pager_duty/client/abilities.rb +33 -0
  95. data/lib/pager_duty/client/addons.rb +97 -0
  96. data/lib/pager_duty/client/escalation_policies.rb +148 -0
  97. data/lib/pager_duty/client/incidents.rb +228 -0
  98. data/lib/pager_duty/configurable.rb +32 -0
  99. data/lib/pager_duty/connection.rb +110 -0
  100. data/lib/pager_duty/default.rb +79 -0
  101. data/lib/pager_duty/error.rb +171 -0
  102. data/lib/pager_duty/response/raise_error.rb +21 -0
  103. data/lib/pager_duty/version.rb +1 -1
  104. data/output.yaml +7842 -0
  105. data/pager_duty.gemspec +11 -3
  106. data/script/bootstrap +5 -0
  107. data/script/console +11 -0
  108. data/script/test +13 -0
  109. metadata +239 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b9212305568b334fa041afcf98f3a1aef6f8102
4
- data.tar.gz: 99f4a5c409cde8f9a072f361bfadd1eb46819563
3
+ metadata.gz: f5c7e9d697088cf476aa25e0e7c82f645b25b6f0
4
+ data.tar.gz: 6b294a232570d2537433ee9059f58362c66799d6
5
5
  SHA512:
6
- metadata.gz: f83fd1ddb820962e438dc32a77077444a2fa5e22154df5772a5193693ca424408a898a681325944564b33134f41ae97cf317eb5238834b62722463d56da33bef
7
- data.tar.gz: dd5640a3d2feef206d391ae69fcde9a4f51dba1644c7dcda30f06c8f9372b4295967b84769be8a7240468ccff0d4887de92e162068231a17537adba70b1047ed
6
+ metadata.gz: 81bc454c8fc420166338501b57c5d520026d1ce01e84bd56969c6a1705a0d53deebbd2b177c99e9582e005dfc98c06398a8e23bb08671b19a2450f6e98be6395
7
+ data.tar.gz: 29238ac01a3e4e194ecdeb5f2a179df9c0ea9cf05f0d6fdf01b3e01603f0b9314f1be9a1bdc442ca0f620b0f4d257bf73a256eeb2f4ea167ebeaaa9ddfef31c2
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ lib/pager_duty/client_gen
@@ -1,5 +1,19 @@
1
- sudo: false
2
1
  language: ruby
2
+ cache: bundler
3
+
3
4
  rvm:
4
- - 2.4.1
5
- before_install: gem install bundler -v 1.14.6
5
+ - 2.3.3
6
+ - 2.4.0
7
+
8
+ notifications:
9
+ email:
10
+ recipients:
11
+ - patrick.veverka@gmail.com
12
+ on_success: always # default: change
13
+ on_failure: always # default: always
14
+
15
+ sudo: false
16
+
17
+ env:
18
+ global:
19
+ - TEST_API_TOKEN="y_NbAkKc66ryYTWUXYEu"
@@ -0,0 +1,30 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+ group :ruby do
18
+ guard :minitest do
19
+ # with Minitest::Unit
20
+ watch(%r{^lib/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
21
+ watch(%r{^test/.+_test\.rb$})
22
+ watch('test/test_helper.rb') { "test" }
23
+ watch('test/test_helper_integration.rb') { "test" }
24
+ end
25
+
26
+ end
27
+
28
+ guard 'yard' do
29
+ watch(%r{lib\/.+\.rb})
30
+ end
data/README.md CHANGED
@@ -1,41 +1,282 @@
1
1
  # PagerDuty
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/pager_duty`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ [![Build Status](https://travis-ci.org/veverkap/pager_duty.svg?branch=master)](https://travis-ci.org/veverkap/pager_duty)
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ [![codebeat badge](https://codebeat.co/badges/da87a6f5-34c2-445f-8cc6-62343c5e6acc)](https://codebeat.co/projects/github-com-veverkap-pager_duty-master)
6
6
 
7
- ## Installation
7
+ Ruby client for v2 of the [PagerDuty API](https://v2.developer.pagerduty.com/v2/page/api-reference)
8
8
 
9
- Add this line to your application's Gemfile:
9
+ ## Table of Contents
10
+
11
+ 1. [Philosophy](#philosophy)
12
+ 2. [Quick start](#quick-start)
13
+ 3. [Making requests](#making-requests)
14
+ 4. [Consuming resources](#consuming-resources)
15
+ 6. [Authentication](#authentication)
16
+ 1. [API tokens](#api-tokens)
17
+ 7. [Configuration and defaults](#configuration-and-defaults)
18
+ 1. [Configuring module defaults](#configuring-module-defaults)
19
+ 2. [Using ENV variables](#using-env-variables)
20
+ 8. [Advanced usage](#advanced-usage)
21
+ 1. [Debugging](#debugging)
22
+ 2. [Caching](#caching)
23
+ 9. [Hacking on PagerDuty](#hacking-on-pagerduty)
24
+ 1. [Running and writing new tests](#running-and-writing-new-tests)
25
+ 10. [Supported Ruby Versions](#supported-ruby-versions)
26
+ 11. [Versioning](#versioning)
27
+ 12. [License](#license)
28
+
29
+ ## Philosophy
30
+
31
+ This gem borrows liberally from the design philosophy of the
32
+ wonderful [octokit](https://github.com/octokit/octokit.rb) library.
33
+ Most methods have positional arguments for required input and an options hash
34
+ for optional parameters, headers, or other options:
35
+
36
+ ## Quick start
37
+
38
+ Install via Rubygems
39
+
40
+ gem install pager_duty
41
+
42
+ ... or add to your Gemfile
43
+
44
+ gem "pager_duty", "~> 0.1"
45
+
46
+ ### Making requests
47
+
48
+ [API methods][] are available as module methods (consuming module-level
49
+ configuration) or as client instance methods.
10
50
 
11
51
  ```ruby
12
- gem 'pager_duty'
52
+ # Provide authentication credentials
53
+ PagerDuty.configure do |c|
54
+ c.api_token = "XXXXXXXX"
55
+ end
56
+
57
+ # Fetch the current user
58
+ PagerDuty.abilities
13
59
  ```
60
+ or
14
61
 
15
- And then execute:
62
+ ```ruby
63
+ # Provide authentication credentials
64
+ client = PagerDuty::Client.new(api_token: "XXXXXXXX")
65
+ # Fetch the current user
66
+ client.abilities
67
+ ```
16
68
 
17
- $ bundle
69
+ [API methods]: http://veverkap.github.io/pager_duty/method_list.html
18
70
 
19
- Or install it yourself as:
71
+ ### Consuming resources
20
72
 
21
- $ gem install pager_duty
73
+ Most methods return a `Resource` object which provides dot notation and `[]`
74
+ access for fields returned in the API response.
22
75
 
23
- ## Usage
76
+ ```ruby
77
+ # Fetch a user
78
+ addon = PagerDuty.addon("P5R5GQ4")
79
+ puts addon.name
80
+ # => "Great Addon"
81
+ puts addon.fields
82
+ # => <Set: {:id, :type, :summary, :self, :html_url, :name, :src, :services}>
83
+ puts addon[:type]
84
+ # => "full_page_addon"
85
+ ```
86
+
87
+ ## Authentication
24
88
 
25
- TODO: Write usage instructions here
89
+ PagerDuty supports the API token method for authentication:
26
90
 
27
- ## Development
91
+ ### API Tokens
28
92
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
93
+ API tokens can be revoked, removing access for only that token without having to change your password everywhere.
30
94
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
95
+ To use an access token with the PagerDuty client, pass your token in the `:access_token` options parameter:
32
96
 
33
- ## Contributing
97
+ ```ruby
98
+ client = PagerDuty::Client.new(:access_token => "<your token>")
99
+ ```
100
+
101
+ You can create access tokens through your Account Settings which are typically at https://YOURSUBDOMAIN.pagerduty.com/api_keys
102
+
103
+ ### Using ENV variables
104
+
105
+ Default configuration values are specified in {PagerDuty::Default}. Many
106
+ attributes will look for a default value from the ENV before returning
107
+ PagerDuty's default.
108
+
109
+ ```ruby
110
+ # Given $PAGERDUTY_API_ENDPOINT is "http://api.pagerduty.dev"
111
+ PagerDuty.api_endpoint
112
+
113
+ # => "http://api.pagerduty.dev"
114
+ ```
115
+
116
+ ## Advanced usage
117
+
118
+ Since PagerDuty employs [Faraday][faraday] under the hood, some behavior can be
119
+ extended via middleware.
120
+
121
+ ### Debugging
122
+
123
+ Often, it helps to know what PagerDuty is doing under the hood. You can add a
124
+ logger to the middleware that enables you to peek into the underlying HTTP
125
+ traffic:
126
+
127
+ ```ruby
128
+ stack = Faraday::RackBuilder.new do |builder|
129
+ builder.response :logger
130
+ builder.use PagerDuty::Response::RaiseError
131
+ builder.adapter Faraday.default_adapter
132
+ end
133
+ PagerDuty.middleware = stack
134
+ PagerDuty.abilities
135
+ ```
136
+ ```
137
+ I, [2017-05-22T12:47:16.335959 #79147] INFO -- : GET https://api.pagerduty.com/abilities
138
+ D, [2017-05-22T12:47:16.336026 #79147] DEBUG -- : "Accept: application/vnd.pagerduty+json;version=2
139
+ User-Agent: PagerDuty Ruby Gem 0.1.0
140
+ Content-Type: application/json
141
+ Authorization: Token token=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\""
142
+ I, [2017-05-22T12:47:16.350493 #79147] INFO -- : HTTP 200
143
+ D, [2017-05-22T12:47:16.350568 #79147] DEBUG -- : "server: nginx
144
+ date: Fri, 19 May 2017 14:02:40 GMT
145
+ content-type: application/json; charset=utf-8
146
+ transfer-encoding: chunked
147
+ connection: keep-alive
148
+ status: 200 OK
149
+ access-control-allow-methods: GET, POST, PUT, DELETE, OPTIONS
150
+ access-control-max-age: 1728000
151
+ access-control-allow-origin: *
152
+ access-control-allow-headers: Authorization, Content-Type
153
+ x-ua-compatible: IE=Edge,chrome=1
154
+ etag: W/\"0da61ef0d8a5571c22d819a5ed89665e\"
155
+ cache-control: max-age=0, private, must-revalidate
156
+ x-request-id: 5f125e02489796ac002cf0f7a321fe88
157
+
158
+ {\"abilities\":[\"sso\",\"advanced_reports\",\"teams\",\"read_only_users\",\"team_responders\",\"service_support_hours\",\"urgencies\",\"manage_schedules\",\"manage_api_keys\",\"coordinated_responding\",\"event_rules\",\"beta_custom_actions\",\"coordinated_responding_preview\",\"preview_incident_alert_split\",\"permissions_service\",\"on_call_selfie\",\"features_in_use_preventing_downgrade_to\",\"feature_to_plan_map\"]}"
159
+ ...
160
+ ```
34
161
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/pager_duty. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
162
+ See the [Faraday README][faraday] for more middleware magic.
36
163
 
164
+ ### Caching
165
+
166
+ If you want to boost performance, stretch your API rate limit, or avoid paying
167
+ the hypermedia tax, you can use [Faraday Http Cache][cache].
168
+
169
+ Add the gem to your Gemfile
170
+
171
+ gem 'faraday-http-cache'
172
+
173
+ Next, construct your own Faraday middleware:
174
+
175
+ ```ruby
176
+ stack = Faraday::RackBuilder.new do |builder|
177
+ builder.use Faraday::HttpCache, serializer: Marshal, shared_cache: false
178
+ builder.use PagerDuty::Response::RaiseError
179
+ builder.adapter Faraday.default_adapter
180
+ end
181
+ PagerDuty.middleware = stack
182
+ ```
183
+
184
+ Once configured, the middleware will store responses in cache based on ETag
185
+ fingerprint and serve those back up for future `304` responses for the same
186
+ resource. See the [project README][cache] for advanced usage.
187
+
188
+
189
+ [cache]: https://github.com/plataformatec/faraday-http-cache
190
+ [faraday]: https://github.com/lostisland/faraday
191
+
192
+ ## Hacking on PagerDuty
193
+
194
+ If you want to hack on PagerDuty locally, we try to make [bootstrapping the
195
+ project][bootstrapping] as painless as possible. To start hacking, clone and run:
196
+
197
+ script/bootstrap
198
+
199
+ This will install project dependencies and get you up and running. If you want
200
+ to run a Ruby console to poke on PagerDuty, you can crank one up with:
201
+
202
+ script/console
203
+
204
+ Using the scripts in `./scripts` instead of `bundle exec rspec`, `bundle
205
+ console`, etc. ensures your dependencies are up-to-date.
206
+
207
+ ### Running and writing new tests
208
+
209
+ PagerDuty uses [VCR][] for recording and playing back API fixtures during test
210
+ runs. These cassettes (fixtures) are part of the Git project in the `spec/cassettes`
211
+ folder. If you're not recording new cassettes you can run the specs with existing
212
+ cassettes with:
213
+
214
+ script/test
215
+
216
+ [bootstrapping]: http://wynnnetherland.com/linked/2013012801/bootstrapping-consistency
217
+ [VCR]: https://github.com/vcr/vcr
218
+
219
+ ## Supported Ruby Versions
220
+
221
+ This library aims to support and is [tested against][travis] the following Ruby
222
+ implementations:
223
+
224
+ * Ruby 2.3
225
+ * Ruby 2.4
226
+
227
+ If something doesn't work on one of these Ruby versions, it's a bug.
228
+
229
+ This library may inadvertently work (or seem to work) on other Ruby
230
+ implementations, but support will only be provided for the versions listed
231
+ above.
232
+
233
+ If you would like this library to support another Ruby version, you may
234
+ volunteer to be a maintainer. Being a maintainer entails making sure all tests
235
+ run and pass on that implementation. When something breaks on your
236
+ implementation, you will be responsible for providing patches in a timely
237
+ fashion. If critical issues for a particular implementation exist at the time
238
+ of a major release, support for that Ruby version may be dropped.
239
+
240
+ [travis]: https://travis-ci.org/veverkap/pager_duty
241
+
242
+ ## Versioning
243
+
244
+ This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations
245
+ of this scheme should be reported as bugs. Specifically, if a minor or patch
246
+ version is released that breaks backward compatibility, that version should be
247
+ immediately yanked and/or a new version should be immediately released that
248
+ restores compatibility. Breaking changes to the public API will only be
249
+ introduced with new major versions. As a result of this policy, you can (and
250
+ should) specify a dependency on this gem using the [Pessimistic Version
251
+ Constraint][pvc] with two digits of precision. For example:
252
+
253
+ spec.add_dependency 'pager_duty', '~> 3.0'
254
+
255
+ The changes made between versions can be seen on the [project releases page][releases].
256
+
257
+ [semver]: http://semver.org/
258
+ [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
259
+ [releases]: https://github.com/veverkap/pager_duty/releases
37
260
 
38
261
  ## License
39
262
 
40
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
263
+ Copyright (c) 2017 Patrick Veverka
264
+
265
+ Permission is hereby granted, free of charge, to any person obtaining
266
+ a copy of this software and associated documentation files (the
267
+ "Software"), to deal in the Software without restriction, including
268
+ without limitation the rights to use, copy, modify, merge, publish,
269
+ distribute, sublicense, and/or sell copies of the Software, and to
270
+ permit persons to whom the Software is furnished to do so, subject to
271
+ the following conditions:
272
+
273
+ The above copyright notice and this permission notice shall be
274
+ included in all copies or substantial portions of the Software.
41
275
 
276
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
277
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
278
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
279
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
280
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
281
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
282
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,58 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.pagerduty.com/abilities
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/vnd.pagerduty+json;version=2
12
+ User-Agent:
13
+ - PagerDuty Ruby Gem 0.1.0
14
+ Content-Type:
15
+ - application/json
16
+ Authorization:
17
+ - Token token="y_NbAkKc66ryYTWUXYEu"
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Date:
28
+ - Fri, 19 May 2017 14:02:40 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - keep-alive
35
+ Status:
36
+ - 200 OK
37
+ Access-Control-Allow-Methods:
38
+ - GET, POST, PUT, DELETE, OPTIONS
39
+ Access-Control-Max-Age:
40
+ - '1728000'
41
+ Access-Control-Allow-Origin:
42
+ - "*"
43
+ Access-Control-Allow-Headers:
44
+ - Authorization, Content-Type
45
+ X-Ua-Compatible:
46
+ - IE=Edge,chrome=1
47
+ Etag:
48
+ - W/"0da61ef0d8a5571c22d819a5ed89665e"
49
+ Cache-Control:
50
+ - max-age=0, private, must-revalidate
51
+ X-Request-Id:
52
+ - 5f125e02489796ac002cf0f7a321fe88
53
+ body:
54
+ encoding: ASCII-8BIT
55
+ string: '{"abilities":["sso","advanced_reports","teams","read_only_users","team_responders","service_support_hours","urgencies","manage_schedules","manage_api_keys","coordinated_responding","event_rules","beta_custom_actions","coordinated_responding_preview","preview_incident_alert_split","permissions_service","on_call_selfie","features_in_use_preventing_downgrade_to","feature_to_plan_map"]}'
56
+ http_version:
57
+ recorded_at: Fri, 19 May 2017 14:02:43 GMT
58
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.pagerduty.com/abilities
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/vnd.pagerduty+json;version=2
12
+ User-Agent:
13
+ - PagerDuty Ruby Gem 0.1.0
14
+ Content-Type:
15
+ - application/json
16
+ Authorization:
17
+ - Token token="y_NbAkKc66ryYTWUYzEu"
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ response:
21
+ status:
22
+ code: 401
23
+ message: Unauthorized
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Date:
28
+ - Mon, 22 May 2017 16:21:20 GMT
29
+ Content-Type:
30
+ - text/html; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ Connection:
34
+ - keep-alive
35
+ Status:
36
+ - 401 Unauthorized
37
+ X-Ua-Compatible:
38
+ - IE=Edge,chrome=1
39
+ Cache-Control:
40
+ - no-cache
41
+ X-Request-Id:
42
+ - 9795a47c574d50138040d4c6e83b3e34
43
+ body:
44
+ encoding: UTF-8
45
+ string: " "
46
+ http_version:
47
+ recorded_at: Mon, 22 May 2017 16:21:20 GMT
48
+ recorded_with: VCR 3.0.3