bugsnag-api 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +8 -0
  5. data/.yardopts +4 -0
  6. data/CHANGELOG.md +11 -0
  7. data/README.md +12 -4
  8. data/Rakefile +9 -0
  9. data/bugsnag-api.gemspec +5 -0
  10. data/lib/bugsnag/api.rb +20 -4
  11. data/lib/bugsnag/api/client.rb +47 -42
  12. data/lib/bugsnag/api/client/accounts.rb +8 -1
  13. data/lib/bugsnag/api/client/comments.rb +1 -1
  14. data/lib/bugsnag/api/client/errors.rb +1 -1
  15. data/lib/bugsnag/api/client/events.rb +3 -3
  16. data/lib/bugsnag/api/client/projects.rb +15 -4
  17. data/lib/bugsnag/api/client/users.rb +22 -4
  18. data/lib/bugsnag/api/configuration.rb +9 -6
  19. data/lib/bugsnag/api/error.rb +11 -1
  20. data/lib/bugsnag/api/version.rb +1 -1
  21. data/spec/bugsnag/api/client/accounts_spec.rb +45 -0
  22. data/spec/bugsnag/api/client/comments_spec.rb +58 -0
  23. data/spec/bugsnag/api/client/errors_spec.rb +69 -0
  24. data/spec/bugsnag/api/client/events_spec.rb +52 -0
  25. data/spec/bugsnag/api/client/projects_spec.rb +87 -0
  26. data/spec/bugsnag/api/client/users_spec.rb +105 -0
  27. data/spec/bugsnag/api/client_spec.rb +130 -0
  28. data/spec/bugsnag/api_spec.rb +44 -0
  29. data/spec/cassettes/Bugsnag_Api_Client/_get/handles_query_params.yml +56 -0
  30. data/spec/cassettes/Bugsnag_Api_Client/_last_response/caches_the_last_agent_response.yml +56 -0
  31. data/spec/cassettes/Bugsnag_Api_Client_Accounts/_account/returns_the_requested_account.yml +49 -0
  32. data/spec/cassettes/Bugsnag_Api_Client_Accounts/_account/when_using_account_credentials/returns_the_account.yml +51 -0
  33. data/spec/cassettes/Bugsnag_Api_Client_Accounts/_accounts/returns_all_accounts.yml +49 -0
  34. data/spec/cassettes/Bugsnag_Api_Client_Comments/_comments/returns_all_comments_on_an_error.yml +107 -0
  35. data/spec/cassettes/Bugsnag_Api_Client_Comments/_create_comment/created_a_comment.yml +51 -0
  36. data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_comment/returns_a_comment.yml +97 -0
  37. data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_delete_comment/deletes_an_existing_comment.yml +92 -0
  38. data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_update_comment/updates_an_existing_comment.yml +97 -0
  39. data/spec/cassettes/Bugsnag_Api_Client_Errors/_errors/returns_all_errors_on_an_project.yml +48 -0
  40. data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_error/returns_an_error.yml +48 -0
  41. data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_reopen_error/reopens_the_error.yml +48 -0
  42. data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_resolve_error/resolves_the_error.yml +48 -0
  43. data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_update_error/updates_the_error.yml +48 -0
  44. data/spec/cassettes/Bugsnag_Api_Client_Events/_error_events/returns_all_events_on_an_error.yml +64 -0
  45. data/spec/cassettes/Bugsnag_Api_Client_Events/_project_events/returns_all_events_on_a_project.yml +64 -0
  46. data/spec/cassettes/Bugsnag_Api_Client_Events/with_event/_event/returns_an_event.yml +56 -0
  47. data/spec/cassettes/Bugsnag_Api_Client_Projects/_account_projects/returns_all_projects_on_an_account.yml +61 -0
  48. data/spec/cassettes/Bugsnag_Api_Client_Projects/_account_projects/when_using_account_credentials/returns_all_projects.yml +63 -0
  49. data/spec/cassettes/Bugsnag_Api_Client_Projects/_create_project/creates_a_project_on_an_account.yml +50 -0
  50. data/spec/cassettes/Bugsnag_Api_Client_Projects/_user_projects/returns_all_projects_for_a_user.yml +61 -0
  51. data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_delete_project/deletes_an_existing_project.yml +91 -0
  52. data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_project/returns_a_project.yml +95 -0
  53. data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_update_project/updates_an_existing_project.yml +95 -0
  54. data/spec/cassettes/Bugsnag_Api_Client_Users/_account_users/returns_all_users_on_an_account.yml +49 -0
  55. data/spec/cassettes/Bugsnag_Api_Client_Users/_account_users/when_using_account_credentials/returns_all_users.yml +51 -0
  56. data/spec/cassettes/Bugsnag_Api_Client_Users/_invite_user/invites_a_user_to_an_account.yml +48 -0
  57. data/spec/cassettes/Bugsnag_Api_Client_Users/_project_users/returns_all_users_for_a_project.yml +49 -0
  58. data/spec/cassettes/Bugsnag_Api_Client_Users/_user/returns_a_user.yml +48 -0
  59. data/spec/cassettes/Bugsnag_Api_Client_Users/_user/when_using_user_credentials/returns_the_authed_user.yml +48 -0
  60. data/spec/cassettes/Bugsnag_Api_Client_Users/with_user/_remove_user/removes_a_user_from_an_account.yml +89 -0
  61. data/spec/cassettes/Bugsnag_Api_Client_Users/with_user/_update_user_permissions/updates_a_users_permissions.yml +93 -0
  62. data/spec/spec_helper.rb +122 -0
  63. metadata +161 -4
@@ -0,0 +1,130 @@
1
+ require "json"
2
+
3
+ describe Bugsnag::Api::Client do
4
+ before do
5
+ Bugsnag::Api.reset!
6
+ end
7
+
8
+ after do
9
+ Bugsnag::Api.reset!
10
+ end
11
+
12
+ describe "initializer" do
13
+ it "should accept valid configuration options" do
14
+ client = Bugsnag::Api::Client.new(:endpoint => "http://example.com")
15
+ expect(client.configuration.endpoint).to eq("http://example.com")
16
+ end
17
+
18
+ it "should ignore junk configuration options" do
19
+ Bugsnag::Api::Client.new(:junk => "junk")
20
+ end
21
+ end
22
+
23
+ describe ".configure" do
24
+ it "accepts block-level configuration options" do
25
+ client = Bugsnag::Api::Client.new
26
+ client.configure do |config|
27
+ config.auth_token = "123456"
28
+ end
29
+
30
+ expect(client.configuration.auth_token).to eq("123456")
31
+ end
32
+ end
33
+
34
+ describe ".configuration" do
35
+ it "exposes the client's configuration" do
36
+ client = Bugsnag::Api::Client.new
37
+ expect(client.configuration).to be_kind_of(Bugsnag::Api::Configuration)
38
+ end
39
+ end
40
+
41
+ describe ".get" do
42
+ before(:each) do
43
+ Bugsnag::Api.reset!
44
+ end
45
+
46
+ it "handles query params", :vcr do
47
+ Bugsnag::Api.get "/", :foo => "bar"
48
+ assert_requested :get, "https://api.bugsnag.com?foo=bar"
49
+ end
50
+
51
+ it "handles headers" do
52
+ request = stub_get("/zen").
53
+ with(:query => {:foo => "bar"}, :headers => {:accept => "text/plain"})
54
+ Bugsnag::Api.get "/zen", :foo => "bar", :accept => "text/plain"
55
+ assert_requested request
56
+ end
57
+ end
58
+
59
+ describe ".last_response", :vcr do
60
+ it "caches the last agent response" do
61
+ Bugsnag::Api.reset!
62
+ client = Bugsnag::Api.client
63
+ expect(client.last_response).to be_nil
64
+
65
+ client.get "/"
66
+ expect(client.last_response.status).to eq(200)
67
+ end
68
+ end
69
+
70
+ describe ".basic_authenticated?" do
71
+ it "knows when basic auth is being used" do
72
+ client = Bugsnag::Api::Client.new(:email => "example@example.com", :password => "123456")
73
+ expect(client.basic_authenticated?).to be true
74
+ end
75
+ end
76
+
77
+ describe ".token_authenticated?" do
78
+ it "knows when token auth is being used" do
79
+ client = Bugsnag::Api::Client.new(:auth_token => "example")
80
+ expect(client.token_authenticated?).to be true
81
+ end
82
+ end
83
+
84
+ context "error handling" do
85
+ it "raises on 404" do
86
+ stub_get('/booya').to_return(:status => 404)
87
+ expect { Bugsnag::Api.get('/booya') }.to raise_error(Bugsnag::Api::NotFound)
88
+ end
89
+
90
+ it "raises on 500" do
91
+ stub_get('/boom').to_return(:status => 500)
92
+ expect { Bugsnag::Api.get('/boom') }.to raise_error(Bugsnag::Api::InternalServerError)
93
+ end
94
+
95
+ it "includes an error" do
96
+ stub_get('/boom').
97
+ to_return \
98
+ :status => 422,
99
+ :headers => {
100
+ :content_type => "application/json",
101
+ },
102
+ :body => {:error => "Comments must contain a message"}.to_json
103
+ begin
104
+ Bugsnag::Api.get('/boom')
105
+ rescue Bugsnag::Api::UnprocessableEntity => e
106
+ expect(e.message).to include("Error: Comments must contain a message")
107
+ end
108
+ end
109
+
110
+ it "raises on unknown client errors" do
111
+ stub_get('/user').to_return \
112
+ :status => 418,
113
+ :headers => {
114
+ :content_type => "application/json",
115
+ },
116
+ :body => {:message => "I'm a teapot"}.to_json
117
+ expect { Bugsnag::Api.get('/user') }.to raise_error(Bugsnag::Api::ClientError)
118
+ end
119
+
120
+ it "raises on unknown server errors" do
121
+ stub_get('/user').to_return \
122
+ :status => 509,
123
+ :headers => {
124
+ :content_type => "application/json",
125
+ },
126
+ :body => {:message => "Bandwidth exceeded"}.to_json
127
+ expect { Bugsnag::Api.get('/user') }.to raise_error(Bugsnag::Api::ServerError)
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,44 @@
1
+ describe Bugsnag::Api do
2
+ before do
3
+ Bugsnag::Api.reset!
4
+ end
5
+
6
+ after do
7
+ Bugsnag::Api.reset!
8
+ end
9
+
10
+ describe ".configure" do
11
+ Bugsnag::Api::Configuration::KEYS.each do |key|
12
+ it "sets the #{key.to_s.gsub('_', ' ')}" do
13
+ Bugsnag::Api.configure do |config|
14
+ config.send("#{key}=", key)
15
+ end
16
+ expect(Bugsnag::Api.configuration.instance_variable_get(:"@#{key}")).to eq(key)
17
+ end
18
+ end
19
+ end
20
+
21
+ describe ".configuration" do
22
+ it "exposes the client's configuration" do
23
+ expect(Bugsnag::Api.configuration).to eq(Bugsnag::Api.client.configuration)
24
+ end
25
+ end
26
+
27
+ describe ".client" do
28
+ it "creates a static Bugsnag::Api::Client" do
29
+ expect(Bugsnag::Api.client).to be_kind_of(Bugsnag::Api::Client)
30
+ end
31
+
32
+ it "caches the static client" do
33
+ expect(Bugsnag::Api.client).to be(Bugsnag::Api.client)
34
+ end
35
+ end
36
+
37
+ describe ".reset" do
38
+ it "should reset the static client" do
39
+ client = Bugsnag::Api.client
40
+ Bugsnag::Api.reset!
41
+ expect(client).not_to eq(Bugsnag::Api.client)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,56 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.bugsnag.com/?foo=bar
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - max-age=0, private, must-revalidate
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Date:
28
+ - Tue, 02 Sep 2014 02:49:29 GMT
29
+ Server:
30
+ - nginx + Phusion Passenger
31
+ Status:
32
+ - 200 OK
33
+ Strict-Transport-Security:
34
+ - max-age=31536000
35
+ X-Content-Type-Options:
36
+ - nosniff
37
+ X-Frame-Options:
38
+ - SAMEORIGIN
39
+ X-Powered-By:
40
+ - Phusion Passenger
41
+ X-Request-Id:
42
+ - d5805f6d-7f5f-4513-af4d-3a4a259a1707
43
+ X-Runtime:
44
+ - '0.004698'
45
+ X-Xss-Protection:
46
+ - 1; mode=block
47
+ Content-Length:
48
+ - '96'
49
+ Connection:
50
+ - keep-alive
51
+ body:
52
+ encoding: UTF-8
53
+ string: '{"projects_url":"https://api.bugsnag.com/account/projects","users_url":"https://api.bugsnag.com/account/users"}'
54
+ http_version:
55
+ recorded_at: Tue, 02 Sep 2014 02:49:29 GMT
56
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,56 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.bugsnag.com/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - max-age=0, private, must-revalidate
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Date:
28
+ - Tue, 02 Sep 2014 02:49:29 GMT
29
+ Server:
30
+ - nginx + Phusion Passenger
31
+ Status:
32
+ - 200 OK
33
+ Strict-Transport-Security:
34
+ - max-age=31536000
35
+ X-Content-Type-Options:
36
+ - nosniff
37
+ X-Frame-Options:
38
+ - SAMEORIGIN
39
+ X-Powered-By:
40
+ - Phusion Passenger
41
+ X-Request-Id:
42
+ - 87d16308-f667-4a49-a5f8-9dc6dd7ef1ed
43
+ X-Runtime:
44
+ - '0.005029'
45
+ X-Xss-Protection:
46
+ - 1; mode=block
47
+ Content-Length:
48
+ - '96'
49
+ Connection:
50
+ - keep-alive
51
+ body:
52
+ encoding: UTF-8
53
+ string: '{"projects_url":"https://api.bugsnag.com/account/projects","users_url":"https://api.bugsnag.com/account/users"}'
54
+ http_version:
55
+ recorded_at: Tue, 02 Sep 2014 02:49:29 GMT
56
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,49 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://<BUGSNAG_LOGIN>:<BUGSNAG_PASSWORD>@api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ X-Frame-Options:
24
+ - SAMEORIGIN
25
+ X-Xss-Protection:
26
+ - 1; mode=block
27
+ X-Content-Type-Options:
28
+ - nosniff
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Etag:
32
+ - '"136bb571d51e95fd6e6ca40fa15fc208"'
33
+ Cache-Control:
34
+ - max-age=0, private, must-revalidate
35
+ X-Request-Id:
36
+ - 3e9612da-5cfa-4e25-9e30-b86009293f72
37
+ X-Runtime:
38
+ - '0.136797'
39
+ Date:
40
+ - Tue, 02 Sep 2014 02:49:32 GMT
41
+ Connection:
42
+ - close
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"id":"<BUGSNAG_ACCOUNT_ID>","name":"Test Account","created_at":"2014-09-01T20:52:32.048Z","updated_at":"2014-09-02T02:49:28.397Z","url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>","users_url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>/users","projects_url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>/projects","account_creator":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
46
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"billing_contact":null}'
47
+ http_version:
48
+ recorded_at: Tue, 02 Sep 2014 02:49:32 GMT
49
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,51 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.bugsnag.com/account
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.0
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - token <BUGSNAG_AUTH_TOKEN>
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ X-Frame-Options:
26
+ - SAMEORIGIN
27
+ X-Xss-Protection:
28
+ - 1; mode=block
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ Etag:
34
+ - '"c6db01ee327d41c21dbb6512228f7988"'
35
+ Cache-Control:
36
+ - max-age=0, private, must-revalidate
37
+ X-Request-Id:
38
+ - 1e44b666-09b0-49bd-992c-c4fc4adfb82d
39
+ X-Runtime:
40
+ - '0.072676'
41
+ Date:
42
+ - Tue, 02 Sep 2014 02:49:32 GMT
43
+ Connection:
44
+ - close
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"id":"<BUGSNAG_ACCOUNT_ID>","name":"Test Account","created_at":"2014-09-01T20:52:32.048Z","updated_at":"2014-09-02T02:49:28.397Z","url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>","users_url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>/users","projects_url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>/projects","account_creator":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
48
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","account_admin":true,"url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects","html_url":"http://bugsnag.dev/accounts/test-account/collaborators/<BUGSNAG_USER_ID>/edit"},"billing_contact":null}'
49
+ http_version:
50
+ recorded_at: Tue, 02 Sep 2014 02:49:32 GMT
51
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,49 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://<BUGSNAG_LOGIN>:<BUGSNAG_PASSWORD>@api.bugsnag.com/accounts
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ X-Frame-Options:
24
+ - SAMEORIGIN
25
+ X-Xss-Protection:
26
+ - 1; mode=block
27
+ X-Content-Type-Options:
28
+ - nosniff
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Etag:
32
+ - '"facc21368ac38d65f0dd83a86c6a9e79"'
33
+ Cache-Control:
34
+ - max-age=0, private, must-revalidate
35
+ X-Request-Id:
36
+ - 50bb562e-3faf-4c58-a870-a1db0bce5655
37
+ X-Runtime:
38
+ - '0.140110'
39
+ Date:
40
+ - Tue, 02 Sep 2014 02:49:32 GMT
41
+ Connection:
42
+ - close
43
+ body:
44
+ encoding: UTF-8
45
+ string: '[{"id":"<BUGSNAG_ACCOUNT_ID>","name":"Test Account","created_at":"2014-09-01T20:52:32.048Z","updated_at":"2014-09-02T02:49:28.397Z","url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>","users_url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>/users","projects_url":"https://api.bugsnag.com/accounts/<BUGSNAG_ACCOUNT_ID>/projects","account_creator":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
46
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"billing_contact":null}]'
47
+ http_version:
48
+ recorded_at: Tue, 02 Sep 2014 02:49:32 GMT
49
+ recorded_with: VCR 2.9.2
@@ -0,0 +1,107 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://<BUGSNAG_LOGIN>:<BUGSNAG_PASSWORD>@api.bugsnag.com/errors/<BUGSNAG_ERROR_ID>/comments
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.0
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ X-Frame-Options:
24
+ - SAMEORIGIN
25
+ X-Xss-Protection:
26
+ - 1; mode=block
27
+ X-Content-Type-Options:
28
+ - nosniff
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Etag:
32
+ - '"b023536ee59617c0e586759e14540f19"'
33
+ Cache-Control:
34
+ - max-age=0, private, must-revalidate
35
+ X-Request-Id:
36
+ - 8b325731-6390-4799-ab8a-072fd2483ec8
37
+ X-Runtime:
38
+ - '0.818630'
39
+ Date:
40
+ - Tue, 02 Sep 2014 02:49:32 GMT
41
+ Connection:
42
+ - close
43
+ body:
44
+ encoding: UTF-8
45
+ string: '[{"id":"5405303b646573a559000019","message":"Comment message","created_at":"2014-09-02T02:49:31.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
46
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5405303b646573a559000019"},{"id":"5405303a646573a559000017","message":"Example
47
+ new message","created_at":"2014-09-02T02:49:30.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
48
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5405303a646573a559000017"},{"id":"5405303a646573a559000016","message":"Comment
49
+ message","created_at":"2014-09-02T02:49:30.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
50
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5405303a646573a559000016"},{"id":"54053019646573a559000010","message":"Comment
51
+ message","created_at":"2014-09-02T02:48:57.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
52
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/54053019646573a559000010"},{"id":"54053018646573a55900000f","message":"Example
53
+ new message","created_at":"2014-09-02T02:48:56.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
54
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/54053018646573a55900000f"},{"id":"54053018646573a55900000e","message":"Comment
55
+ message","created_at":"2014-09-02T02:48:56.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
56
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/54053018646573a55900000e"},{"id":"5405022364657392d2000065","message":"Comment
57
+ message","created_at":"2014-09-01T23:32:51.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
58
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5405022364657392d2000065"},{"id":"5405022264657392d2000064","message":"Example
59
+ new message","created_at":"2014-09-01T23:32:50.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
60
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5405022264657392d2000064"},{"id":"5405022264657392d2000062","message":"Comment
61
+ message","created_at":"2014-09-01T23:32:50.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
62
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5405022264657392d2000062"},{"id":"540500ac64657392d200004e","message":"Comment
63
+ message","created_at":"2014-09-01T23:26:36.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
64
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/540500ac64657392d200004e"},{"id":"540500ac64657392d200004d","message":"Example
65
+ new message","created_at":"2014-09-01T23:26:36.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
66
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/540500ac64657392d200004d"},{"id":"540500ab64657392d200004c","message":"Comment
67
+ message","created_at":"2014-09-01T23:26:35.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
68
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/540500ab64657392d200004c"},{"id":"5404fe8264657392d2000043","message":"Comment
69
+ message","created_at":"2014-09-01T23:17:22.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
70
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe8264657392d2000043"},{"id":"5404fe8164657392d2000042","message":"Example
71
+ new message","created_at":"2014-09-01T23:17:21.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
72
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe8164657392d2000042"},{"id":"5404fe8164657392d2000041","message":"Comment
73
+ message","created_at":"2014-09-01T23:17:21.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
74
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe8164657392d2000041"},{"id":"5404fe6364657392d2000032","message":"Comment
75
+ message","created_at":"2014-09-01T23:16:51.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
76
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe6364657392d2000032"},{"id":"5404fe6264657392d2000031","message":"Comment
77
+ message","created_at":"2014-09-01T23:16:50.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
78
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe6264657392d2000031"},{"id":"5404fe6264657392d2000030","message":"Example
79
+ new message","created_at":"2014-09-01T23:16:50.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
80
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe6264657392d2000030"},{"id":"5404fe3064657392d200001c","message":"Comment
81
+ message","created_at":"2014-09-01T23:16:00.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
82
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe3064657392d200001c"},{"id":"5404fe2f64657392d200001b","message":"Comment
83
+ message","created_at":"2014-09-01T23:15:59.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
84
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe2f64657392d200001b"},{"id":"5404fe2f64657392d200001a","message":"Example
85
+ new message","created_at":"2014-09-01T23:15:59.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
86
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fe2f64657392d200001a"},{"id":"5404fdcf64657392d2000008","message":"Comment
87
+ message","created_at":"2014-09-01T23:14:23.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
88
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fdcf64657392d2000008"},{"id":"5404fdce64657392d2000007","message":"Comment
89
+ message","created_at":"2014-09-01T23:14:22.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
90
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fdce64657392d2000007"},{"id":"5404fdce64657392d2000006","message":"Example
91
+ new message","created_at":"2014-09-01T23:14:22.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
92
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404fdce64657392d2000006"},{"id":"5404f09464657377ae0000a1","message":"Comment
93
+ message","created_at":"2014-09-01T22:17:56.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
94
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404f09464657377ae0000a1"},{"id":"5404f09464657377ae0000a0","message":"Example
95
+ new message","created_at":"2014-09-01T22:17:56.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
96
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404f09464657377ae0000a0"},{"id":"5404f09364657377ae00009f","message":"Comment
97
+ message","created_at":"2014-09-01T22:17:55.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
98
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404f09364657377ae00009f"},{"id":"5404e96764657377ae00008e","message":"Comment
99
+ message","created_at":"2014-09-01T21:47:19.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
100
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404e96764657377ae00008e"},{"id":"5404e0f064657377ae00000e","message":"Here''s
101
+ another comment","created_at":"2014-09-01T21:11:12.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
102
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/5404e0f064657377ae00000e"},{"id":"<BUGSNAG_COMMENT_ID>","message":"This
103
+ is a comment","created_at":"2014-09-01T21:11:06.000Z","user":{"id":"<BUGSNAG_USER_ID>","email":"<BUGSNAG_EMAIL>","name":"James
104
+ Smith","gravatar_id":"8cbca651e77dc253a98e545590ed3387","gravatar_url":"https://secure.gravatar.com/avatar/8cbca651e77dc253a98e545590ed3387","url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>","projects_url":"https://api.bugsnag.com/users/<BUGSNAG_USER_ID>/projects"},"url":"https://api.bugsnag.com/comments/<BUGSNAG_COMMENT_ID>"}]'
105
+ http_version:
106
+ recorded_at: Tue, 02 Sep 2014 02:49:32 GMT
107
+ recorded_with: VCR 2.9.2