pagerduty 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a22fab98bfd9b7ab4f99f8dd824b1ac10a6f7675
4
- data.tar.gz: 5eb0a9c4074cd4aed73987137a3a53f81389c65f
3
+ metadata.gz: 79dcf1ccf6b3223a64d07a152f55b8a0b6a99f26
4
+ data.tar.gz: bd86c131d6b99b475ffe82082a307defff905ec7
5
5
  SHA512:
6
- metadata.gz: 001b8bb1ed10ae2e54f315233bf55f30c7173141c584dfccbb04236e84a5a65b6157c7e088bd525bdb71b42e94481154214e019762c935ad8a2d004a536b99da
7
- data.tar.gz: a4f2bfb76c69a3bfe86aa32d45ee7cb285e1920ccc249f270af018ff4971fa8cf246901230302cc72ae9e8fc2aefcc3b492a8c64abf65ce331dfebadf9b9111b
6
+ metadata.gz: e2d66e8ea5d2d101c6d5c484c51b5bbc0d9f7b462f2ef2a449344f7e8dd8b0b0b411fb336f978f2e28bf1d42b0ef46d1801f7ff04b2b953e0e9b046a8d71891c
7
+ data.tar.gz: 0d6614d6104796bda5868fc529da1ac8b75de6688c67df41fda5aae39e3a386654ad49178304a375483465c9585935a41b33327ac2c6b48b92db15f378e30400
data/.travis.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.1
3
+ - 2.2.0
4
+ - 2.1.5
4
5
  - 2.0.0
5
6
  - 1.9.3
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # pagerduty
2
2
 
3
+
4
+ [![License MIT](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/envato/pagerduty/blob/master/LICENSE.txt)
3
5
  [![Gem Version](https://badge.fury.io/rb/pagerduty.svg)](http://badge.fury.io/rb/pagerduty)
4
6
  [![Build Status](https://travis-ci.org/envato/pagerduty.svg?branch=master)](https://travis-ci.org/envato/pagerduty)
5
7
 
@@ -54,6 +56,20 @@ pagerduty.trigger(
54
56
  )
55
57
  ```
56
58
 
59
+ ### Debugging Error Responses
60
+
61
+ The gem doesn't encapsulate HTTP error responses from PagerDuty. Here's how to go about debugging these unhappy cases:
62
+
63
+ ```ruby
64
+ begin
65
+ pagerduty.trigger("incident description")
66
+ rescue Net::HTTPServerException => error
67
+ error.response.code #=> "400"
68
+ error.response.message #=> "Bad Request"
69
+ error.response.body #=> "{\"status\":\"invalid event\",\"message\":\"Event object is invalid\",\"errors\":[\"Service key is the wrong length (should be 32 characters)\"]}"
70
+ end
71
+ ```
72
+
57
73
  ### Upgrading to Version 2.0.0
58
74
 
59
75
  The API has changed in three ways that you need to be aware of:
@@ -11,7 +11,7 @@ module Pagerduty::HttpTransport
11
11
  PORT = 443
12
12
  PATH = "/generic/2010-04-15/create_event.json"
13
13
 
14
- def send(payload = {})
14
+ def send_payload(payload = {})
15
15
  response = post payload.to_json
16
16
  response.error! unless transported?(response)
17
17
  JSON.parse(response.body)
@@ -1,3 +1,3 @@
1
1
  class Pagerduty
2
- VERSION = "2.0.0"
2
+ VERSION = "2.0.1"
3
3
  end
data/lib/pagerduty.rb CHANGED
@@ -74,7 +74,7 @@ protected
74
74
  :service_key => service_key,
75
75
  :event_type => event_type,
76
76
  )
77
- Pagerduty.transport.send(args)
77
+ Pagerduty.transport.send_payload(args)
78
78
  end
79
79
 
80
80
  def ensure_success(response)
data/pagerduty.gemspec CHANGED
@@ -24,7 +24,8 @@ https://github.com/envato/pagerduty#upgrading-to-version-200
24
24
  gem.require_paths = ["lib"]
25
25
 
26
26
  gem.add_runtime_dependency "json", ">= 1.7.7"
27
- gem.add_development_dependency "bundler", "~> 1.6"
27
+ gem.add_development_dependency "bundler", "~> 1.7"
28
28
  gem.add_development_dependency "rake"
29
+ gem.add_development_dependency "rspec"
29
30
  gem.add_development_dependency "rspec-given"
30
31
  end
@@ -5,12 +5,12 @@ describe Pagerduty::HttpTransport do
5
5
  Given(:http_transport) { Pagerduty::HttpTransport }
6
6
 
7
7
  Given(:http) { double.as_null_object }
8
- Given { http.stub(:request => standard_response) }
9
- Given { Net::HTTP.stub(:new => http) }
8
+ Given { allow(http).to receive(:request).and_return(standard_response) }
9
+ Given { allow(Net::HTTP).to receive(:new).and_return(http) }
10
10
  Given(:post) { double.as_null_object }
11
- Given { Net::HTTP::Post.stub(:new => post) }
11
+ Given { allow(Net::HTTP::Post).to receive(:new).and_return(post) }
12
12
 
13
- describe "::send" do
13
+ describe "::send_payload" do
14
14
  Given(:payload) { {
15
15
  event_type: "trigger",
16
16
  service_key: "test-srvc-key",
@@ -18,7 +18,7 @@ describe Pagerduty::HttpTransport do
18
18
  details: { key: "value" },
19
19
  } }
20
20
 
21
- When(:response) { http_transport.send(payload) }
21
+ When(:response) { http_transport.send_payload(payload) }
22
22
 
23
23
  describe "provides the correct request" do
24
24
  Then {
@@ -31,7 +31,7 @@ describe Pagerduty::HttpTransport do
31
31
  describe "handles all responses" do
32
32
 
33
33
  context "PagerDuty successfully creates the incident" do
34
- Given { http.stub(:request => response_with_body(<<-JSON)) }
34
+ Given { allow(http).to receive(:request).and_return(response_with_body(<<-JSON)) }
35
35
  {
36
36
  "status": "success",
37
37
  "incident_key": "My Incident Key",
@@ -43,7 +43,7 @@ describe Pagerduty::HttpTransport do
43
43
  end
44
44
 
45
45
  context "PagerDuty fails to create the incident" do
46
- Given { http.stub(:request => response_with_body(<<-JSON)) }
46
+ Given { allow(http).to receive(:request).and_return(response_with_body(<<-JSON)) }
47
47
  {
48
48
  "status": "failure",
49
49
  "message": "Event not processed"
@@ -54,7 +54,7 @@ describe Pagerduty::HttpTransport do
54
54
  end
55
55
 
56
56
  context "PagerDuty responds with HTTP bad request" do
57
- Given { http.stub(:request => bad_request) }
57
+ Given { allow(http).to receive(:request).and_return(bad_request) }
58
58
  Then { expect(response).to have_raised Net::HTTPServerException }
59
59
  end
60
60
  end
@@ -78,7 +78,7 @@ describe Pagerduty::HttpTransport do
78
78
 
79
79
  def response_with_body(body)
80
80
  response = Net::HTTPSuccess.new 1.1, "200", "OK"
81
- response.stub(:body => body)
81
+ allow(response).to receive(:body).and_return(body)
82
82
  response
83
83
  end
84
84
 
@@ -6,17 +6,17 @@ describe Pagerduty do
6
6
  Given(:service_key) { "a-test-service-key" }
7
7
 
8
8
  Given(:transport) { double.as_null_object }
9
- Given { Pagerduty.stub(:transport => transport) }
9
+ Given { allow(Pagerduty).to receive(:transport).and_return(transport) }
10
10
 
11
11
  describe "#trigger" do
12
12
 
13
13
  describe "provides the correct request" do
14
- Given { transport.stub(:send => standard_response) }
14
+ Given { allow(transport).to receive(:send_payload).and_return(standard_response) }
15
15
 
16
16
  context "no options" do
17
17
  When(:incident) { pagerduty.trigger("a-test-description") }
18
18
  Then {
19
- expect(transport).to have_received(:send).with(
19
+ expect(transport).to have_received(:send_payload).with(
20
20
  service_key: "a-test-service-key",
21
21
  event_type: "trigger",
22
22
  description: "a-test-description",
@@ -35,7 +35,7 @@ describe Pagerduty do
35
35
  )
36
36
  }
37
37
  Then {
38
- expect(transport).to have_received(:send).with(
38
+ expect(transport).to have_received(:send_payload).with(
39
39
  service_key: "a-test-service-key",
40
40
  event_type: "trigger",
41
41
  description: "a-test-description",
@@ -51,12 +51,11 @@ describe Pagerduty do
51
51
  describe "handles all responses" do
52
52
 
53
53
  context "PagerDuty successfully creates the incident" do
54
- Given {
55
- transport.stub(:send => {
54
+ Given { allow(transport).to receive(:send_payload).and_return(
56
55
  "status" => "success",
57
56
  "incident_key" => "My Incident Key",
58
57
  "message" => "Event processed",
59
- })
58
+ )
60
59
  }
61
60
  When(:incident) { pagerduty.trigger("description") }
62
61
  Then { expect(incident).to be_a PagerdutyIncident }
@@ -66,17 +65,17 @@ describe Pagerduty do
66
65
 
67
66
  context "PagerDuty fails to create the incident" do
68
67
  Given {
69
- transport.stub(:send => {
68
+ allow(transport).to receive(:send_payload).and_return(
70
69
  "status" => "failure",
71
- "message" => "Event not processed",
72
- })
70
+ "message" => "Event not processed"
71
+ )
73
72
  }
74
73
  When(:incident) { pagerduty.trigger("description") }
75
74
  Then { expect(incident).to have_raised PagerdutyException }
76
75
  end
77
76
 
78
77
  context "PagerDuty responds with HTTP bad request" do
79
- Given { transport.stub(:send).and_raise(Net::HTTPServerException.new(nil, nil)) }
78
+ Given { allow(transport).to receive(:send_payload).and_raise(Net::HTTPServerException.new(nil, nil)) }
80
79
  When(:incident) { pagerduty.trigger("description") }
81
80
  Then { expect(incident).to have_raised Net::HTTPServerException }
82
81
  end
@@ -98,12 +97,12 @@ describe Pagerduty do
98
97
  describe "#acknowledge" do
99
98
 
100
99
  describe "provides the correct request" do
101
- Given { transport.stub(:send => standard_response) }
100
+ Given { allow(transport).to receive(:send_payload).and_return(standard_response) }
102
101
 
103
102
  context "no args" do
104
103
  When(:acknowledge) { incident.acknowledge }
105
104
  Then {
106
- expect(transport).to have_received(:send).with(
105
+ expect(transport).to have_received(:send_payload).with(
107
106
  event_type: "acknowledge",
108
107
  service_key: "a-test-service-key",
109
108
  incident_key: "a-test-incident-key",
@@ -114,7 +113,7 @@ describe Pagerduty do
114
113
  context "a description" do
115
114
  When(:acknowledge) { incident.acknowledge("test-description") }
116
115
  Then {
117
- expect(transport).to have_received(:send).with(
116
+ expect(transport).to have_received(:send_payload).with(
118
117
  event_type: "acknowledge",
119
118
  service_key: "a-test-service-key",
120
119
  incident_key: "a-test-incident-key",
@@ -126,7 +125,7 @@ describe Pagerduty do
126
125
  context "a description and details" do
127
126
  When(:acknowledge) { incident.acknowledge("test-description", { my: "detail" }) }
128
127
  Then {
129
- expect(transport).to have_received(:send).with(
128
+ expect(transport).to have_received(:send_payload).with(
130
129
  event_type: "acknowledge",
131
130
  service_key: "a-test-service-key",
132
131
  incident_key: "a-test-incident-key",
@@ -141,11 +140,11 @@ describe Pagerduty do
141
140
 
142
141
  context "PagerDuty successfully acknowledges the incident" do
143
142
  Given {
144
- transport.stub(:send => {
143
+ allow(transport).to receive(:send_payload).and_return(
145
144
  "status" => "success",
146
145
  "incident_key" => "a-test-incident-key",
147
- "message" => "Event acknowledged",
148
- })
146
+ "message" => "Event acknowledged"
147
+ )
149
148
  }
150
149
  When(:acknowledge) { incident.acknowledge }
151
150
  Then { expect(acknowledge).to be incident}
@@ -153,18 +152,18 @@ describe Pagerduty do
153
152
 
154
153
  context "PagerDuty fails to acknowledge the incident" do
155
154
  Given {
156
- transport.stub(:send => {
155
+ allow(transport).to receive(:send_payload).and_return(
157
156
  "status" => "failure",
158
157
  "incident_key" => "a-test-incident-key",
159
158
  "message" => "Event not acknowledged",
160
- })
159
+ )
161
160
  }
162
161
  When(:acknowledge) { incident.acknowledge }
163
162
  Then { expect(acknowledge).to have_failed PagerdutyException }
164
163
  end
165
164
 
166
165
  context "PagerDuty responds with HTTP bad request" do
167
- Given { transport.stub(:send).and_raise(Net::HTTPServerException.new(nil, nil)) }
166
+ Given { allow(transport).to receive(:send_payload).and_raise(Net::HTTPServerException.new(nil, nil)) }
168
167
  When(:acknowledge) { incident.acknowledge }
169
168
  Then { expect(acknowledge).to have_failed Net::HTTPServerException }
170
169
  end
@@ -174,12 +173,12 @@ describe Pagerduty do
174
173
  describe "#resolve" do
175
174
 
176
175
  describe "provides the correct request" do
177
- Given { transport.stub(:send => standard_response) }
176
+ Given { allow(transport).to receive(:send_payload).and_return(standard_response) }
178
177
 
179
178
  context "no args" do
180
179
  When(:resolve) { incident.resolve }
181
180
  Then {
182
- expect(transport).to have_received(:send).with(
181
+ expect(transport).to have_received(:send_payload).with(
183
182
  event_type: "resolve",
184
183
  service_key: "a-test-service-key",
185
184
  incident_key: "a-test-incident-key",
@@ -190,7 +189,7 @@ describe Pagerduty do
190
189
  context "a description" do
191
190
  When(:resolve) { incident.resolve("test-description") }
192
191
  Then {
193
- expect(transport).to have_received(:send).with(
192
+ expect(transport).to have_received(:send_payload).with(
194
193
  event_type: "resolve",
195
194
  service_key: "a-test-service-key",
196
195
  incident_key: "a-test-incident-key",
@@ -202,7 +201,7 @@ describe Pagerduty do
202
201
  context "a description and details" do
203
202
  When(:resolve) { incident.resolve("test-description", { my: "detail" }) }
204
203
  Then {
205
- expect(transport).to have_received(:send).with(
204
+ expect(transport).to have_received(:send_payload).with(
206
205
  event_type: "resolve",
207
206
  service_key: "a-test-service-key",
208
207
  incident_key: "a-test-incident-key",
@@ -217,11 +216,11 @@ describe Pagerduty do
217
216
 
218
217
  context "PagerDuty successfully resolves the incident" do
219
218
  Given {
220
- transport.stub(:send => {
219
+ allow(transport).to receive(:send_payload).and_return(
221
220
  "status" => "success",
222
221
  "incident_key" => "a-test-incident-key",
223
- "message" => "Event resolved",
224
- })
222
+ "message" => "Event resolved"
223
+ )
225
224
  }
226
225
  When(:resolve) { incident.resolve }
227
226
  Then { expect(resolve).to be incident}
@@ -229,17 +228,17 @@ describe Pagerduty do
229
228
 
230
229
  context "PagerDuty fails to create the incident" do
231
230
  Given {
232
- transport.stub(:send => {
231
+ allow(transport).to receive(:send_payload).and_return(
233
232
  "status" => "failure",
234
- "message" => "Event not resolved",
235
- })
233
+ "message" => "Event not resolved"
234
+ )
236
235
  }
237
236
  When(:resolve) { incident.resolve }
238
237
  Then { expect(resolve).to have_failed PagerdutyException }
239
238
  end
240
239
 
241
240
  context "PagerDuty responds with HTTP bad request" do
242
- Given { transport.stub(:send).and_raise(Net::HTTPServerException.new(nil, nil)) }
241
+ Given { allow(transport).to receive(:send_payload).and_raise(Net::HTTPServerException.new(nil, nil)) }
243
242
  When(:resolve) { incident.resolve }
244
243
  Then { expect(resolve).to have_failed Net::HTTPServerException }
245
244
  end
@@ -248,13 +247,13 @@ describe Pagerduty do
248
247
 
249
248
  describe "#trigger" do
250
249
  describe "provides the correct request" do
251
- Given { transport.stub(:send => standard_response) }
250
+ Given { allow(transport).to receive(:send_payload).and_return(standard_response) }
252
251
 
253
252
  context "no options" do
254
253
  Given(:incident_key) { "instance incident_key" }
255
254
  When(:trigger) { incident.trigger("description") }
256
255
  Then {
257
- expect(transport).to have_received(:send).with(
256
+ expect(transport).to have_received(:send_payload).with(
258
257
  incident_key: "instance incident_key",
259
258
  service_key: "a-test-service-key",
260
259
  event_type: "trigger",
@@ -266,7 +265,7 @@ describe Pagerduty do
266
265
  context "with incident_key option" do
267
266
  When(:trigger) { incident.trigger("description", incident_key: "method param incident_key") }
268
267
  Then {
269
- expect(transport).to have_received(:send).with(
268
+ expect(transport).to have_received(:send_payload).with(
270
269
  incident_key: "method param incident_key",
271
270
  service_key: "a-test-service-key",
272
271
  event_type: "trigger",
data/spec/spec_helper.rb CHANGED
@@ -5,5 +5,5 @@ require "rspec/given"
5
5
  Dir[File.expand_path("../support/**/*.rb", __FILE__)].each { |f| require f }
6
6
 
7
7
  RSpec.configure do |config|
8
- config.color_enabled = true
8
+ config.color = true
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagerduty
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Somerville
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-26 00:00:00.000000000 Z
12
+ date: 2015-03-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '1.6'
34
+ version: '1.7'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.6'
41
+ version: '1.7'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rake
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -53,6 +53,20 @@ dependencies:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
56
70
  - !ruby/object:Gem::Dependency
57
71
  name: rspec-given
58
72
  requirement: !ruby/object:Gem::Requirement
@@ -112,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
126
  version: '0'
113
127
  requirements: []
114
128
  rubyforge_project:
115
- rubygems_version: 2.2.2
129
+ rubygems_version: 2.4.5
116
130
  signing_key:
117
131
  specification_version: 4
118
132
  summary: Pagerduty Integration API client library