bugsnag-api 1.0.3 → 2.0.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.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +14 -3
  3. data/CHANGELOG.md +32 -0
  4. data/CONTRIBUTING.md +40 -0
  5. data/README.md +126 -111
  6. data/bugsnag-api.gemspec +4 -3
  7. data/lib/bugsnag/api/client.rb +18 -9
  8. data/lib/bugsnag/api/client/collaborators.rb +87 -0
  9. data/lib/bugsnag/api/client/comments.rb +31 -40
  10. data/lib/bugsnag/api/client/currentuser.rb +33 -0
  11. data/lib/bugsnag/api/client/errors.rb +45 -51
  12. data/lib/bugsnag/api/client/eventfields.rb +50 -0
  13. data/lib/bugsnag/api/client/events.rb +38 -32
  14. data/lib/bugsnag/api/client/organizations.rb +46 -0
  15. data/lib/bugsnag/api/client/pivots.rb +43 -0
  16. data/lib/bugsnag/api/client/projects.rb +37 -63
  17. data/lib/bugsnag/api/client/trends.rb +38 -0
  18. data/lib/bugsnag/api/error.rb +4 -0
  19. data/lib/bugsnag/api/version.rb +1 -1
  20. data/spec/bugsnag/api/client/collaborators_spec.rb +101 -0
  21. data/spec/bugsnag/api/client/comments_spec.rb +42 -30
  22. data/spec/bugsnag/api/client/currentuser_spec.rb +57 -0
  23. data/spec/bugsnag/api/client/errors_spec.rb +44 -41
  24. data/spec/bugsnag/api/client/eventfields_spec.rb +56 -0
  25. data/spec/bugsnag/api/client/events_spec.rb +41 -29
  26. data/spec/bugsnag/api/client/organizations_spec.rb +53 -0
  27. data/spec/bugsnag/api/client/pivots_spec.rb +49 -0
  28. data/spec/bugsnag/api/client/projects_spec.rb +35 -59
  29. data/spec/bugsnag/api/client/trends_spec.rb +44 -0
  30. data/spec/bugsnag/api/client_spec.rb +8 -3
  31. data/spec/cassettes/Bugsnag_Api_Client/_get/handles_query_params.yml +45 -27
  32. data/spec/cassettes/Bugsnag_Api_Client/_last_response/caches_the_last_agent_response.yml +45 -27
  33. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/_invitecollaborator/creates_and_returns_a_collaborator.yml +80 -0
  34. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/_invitecollaborator/invites_multiple_collaborators.yml +80 -0
  35. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_collaborator/returns_a_collaborator.yml +157 -0
  36. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_collaborators/returns_a_list_of_all_organization_collaborators.yml +160 -0
  37. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_collaborators/returns_a_list_of_all_project_collaborators.yml +160 -0
  38. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_collaborators/throws_an_argument_error_if_neither_org_id_or_project_id_are_provided.yml +80 -0
  39. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_delete_collaborator/deletes_a_collaborator.yml +80 -0
  40. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_update_collaborator_permissions/updates_and_returns_the_collaborator.yml +157 -0
  41. data/spec/cassettes/Bugsnag_Api_Client_Collaborators/given_a_collaborator_exists/_view_collaborator_projects/returns_a_list_of_projects_belonging_to_the_collaborator.yml +159 -0
  42. data/spec/cassettes/Bugsnag_Api_Client_Comments/_create_comment/creates_a_comment_on_the_error.yml +82 -0
  43. data/spec/cassettes/Bugsnag_Api_Client_Comments/given_a_comment_has_been_created/_comment/retrieves_the_comment_specified.yml +159 -0
  44. data/spec/cassettes/Bugsnag_Api_Client_Comments/given_a_comment_has_been_created/_comments/retrieves_all_comments_on_an_error.yml +161 -0
  45. data/spec/cassettes/Bugsnag_Api_Client_Comments/given_a_comment_has_been_created/_delete_comment/deletes_the_comment_and_returns_true.yml +82 -0
  46. data/spec/cassettes/Bugsnag_Api_Client_Comments/given_a_comment_has_been_created/_update_comment/updates_the_message_on_a_comment.yml +159 -0
  47. data/spec/cassettes/Bugsnag_Api_Client_CurrentUser/_list_organizations/when_using_auth_token/returns_the_organization_the_auth_token_belongs_to.yml +81 -0
  48. data/spec/cassettes/Bugsnag_Api_Client_CurrentUser/_list_organizations/when_using_user_credentials/returns_users_organizations.yml +85 -0
  49. data/spec/cassettes/Bugsnag_Api_Client_CurrentUser/_list_projects/when_using_auth_token/lists_current_user_s_projects_in_the_organization.yml +82 -0
  50. data/spec/cassettes/Bugsnag_Api_Client_CurrentUser/_list_projects/when_using_user_credentials/lists_current_user_s_projects_in_the_organization.yml +86 -0
  51. data/spec/cassettes/Bugsnag_Api_Client_Errors/_error/returns_a_single_error.yml +82 -0
  52. data/spec/cassettes/Bugsnag_Api_Client_Errors/_errors/returns_errors_on_the_project.yml +84 -0
  53. data/spec/cassettes/Bugsnag_Api_Client_Errors/_update_errors/updates_and_returns_the_updated_errors.yml +80 -0
  54. data/spec/cassettes/Bugsnag_Api_Client_Events/_error_events/lists_all_error_events.yml +84 -0
  55. data/spec/cassettes/Bugsnag_Api_Client_Events/_event/returns_the_specified_event.yml +253 -0
  56. data/spec/cassettes/Bugsnag_Api_Client_Events/_events/returns_the_a_list_of_project_errors.yml +84 -0
  57. data/spec/cassettes/Bugsnag_Api_Client_Events/_latest_event/returns_the_last_event_on_an_error.yml +253 -0
  58. data/spec/cassettes/Bugsnag_Api_Client_Organizations/_create_organization/creates_a_new_organization.yml +84 -0
  59. data/spec/cassettes/Bugsnag_Api_Client_Organizations/with_organization/_delete_organization/deletes_the_organization.yml +159 -0
  60. data/spec/cassettes/Bugsnag_Api_Client_Organizations/with_organization/_organization/returns_the_requested_organization.yml +165 -0
  61. data/spec/cassettes/Bugsnag_Api_Client_Organizations/with_organization/_update_organization/updates_and_returns_the_organization.yml +165 -0
  62. data/spec/cassettes/Bugsnag_Api_Client_Projects/_create_project/creates_a_new_project.yml +80 -0
  63. data/spec/cassettes/Bugsnag_Api_Client_Projects/given_a_project/_delete_project/deletes_the_project.yml +151 -0
  64. data/spec/cassettes/Bugsnag_Api_Client_Projects/given_a_project/_project/returns_the_requested_project.yml +157 -0
  65. data/spec/cassettes/Bugsnag_Api_Client_Projects/given_a_project/_regenerate_api_key/removes_the_current_api_key_and_replaces_it_with_a_new_api_key.yml +157 -0
  66. data/spec/cassettes/Bugsnag_Api_Client_Projects/given_a_project/_update_project/updates_and_returns_the_project.yml +157 -0
  67. data/spec/cassettes/Bugsnag_Api_Client_Trends/_trends_buckets/returns_a_list_of_error_trends_in_bucket_form.yml +80 -0
  68. data/spec/cassettes/Bugsnag_Api_Client_Trends/_trends_buckets/returns_a_list_of_project_trends_in_bucket_form.yml +80 -0
  69. data/spec/cassettes/Bugsnag_Api_Client_Trends/_trends_resolution/returns_a_list_of_project_trends_in_resolution_form.yml +80 -0
  70. data/spec/cassettes/Bugsnag_Api_Client_Trends/_trends_resolution/returns_a_list_of_trends_in_resolution_form.yml +80 -0
  71. data/spec/spec_helper.rb +29 -27
  72. metadata +124 -83
  73. data/lib/bugsnag/api/client/accounts.rb +0 -44
  74. data/lib/bugsnag/api/client/users.rb +0 -99
  75. data/spec/bugsnag/api/client/accounts_spec.rb +0 -45
  76. data/spec/bugsnag/api/client/users_spec.rb +0 -105
  77. data/spec/cassettes/Bugsnag_Api_Client_Accounts/_account/returns_the_requested_account.yml +0 -49
  78. data/spec/cassettes/Bugsnag_Api_Client_Accounts/_account/when_using_account_credentials/returns_the_account.yml +0 -51
  79. data/spec/cassettes/Bugsnag_Api_Client_Accounts/_accounts/returns_all_accounts.yml +0 -49
  80. data/spec/cassettes/Bugsnag_Api_Client_Comments/_comments/returns_all_comments_on_an_error.yml +0 -107
  81. data/spec/cassettes/Bugsnag_Api_Client_Comments/_create_comment/created_a_comment.yml +0 -51
  82. data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_comment/returns_a_comment.yml +0 -97
  83. data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_delete_comment/deletes_an_existing_comment.yml +0 -92
  84. data/spec/cassettes/Bugsnag_Api_Client_Comments/with_comment/_update_comment/updates_an_existing_comment.yml +0 -97
  85. data/spec/cassettes/Bugsnag_Api_Client_Errors/_errors/returns_all_errors_on_an_project.yml +0 -48
  86. data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_error/returns_an_error.yml +0 -48
  87. data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_reopen_error/reopens_the_error.yml +0 -48
  88. data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_resolve_error/resolves_the_error.yml +0 -48
  89. data/spec/cassettes/Bugsnag_Api_Client_Errors/with_error/_update_error/updates_the_error.yml +0 -48
  90. data/spec/cassettes/Bugsnag_Api_Client_Events/_error_events/returns_all_events_on_an_error.yml +0 -64
  91. data/spec/cassettes/Bugsnag_Api_Client_Events/_project_events/returns_all_events_on_a_project.yml +0 -64
  92. data/spec/cassettes/Bugsnag_Api_Client_Events/with_event/_event/returns_an_event.yml +0 -56
  93. data/spec/cassettes/Bugsnag_Api_Client_Projects/_account_projects/returns_all_projects_on_an_account.yml +0 -61
  94. data/spec/cassettes/Bugsnag_Api_Client_Projects/_account_projects/when_using_account_credentials/returns_all_projects.yml +0 -63
  95. data/spec/cassettes/Bugsnag_Api_Client_Projects/_create_project/creates_a_project_on_an_account.yml +0 -50
  96. data/spec/cassettes/Bugsnag_Api_Client_Projects/_user_projects/returns_all_projects_for_a_user.yml +0 -61
  97. data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_delete_project/deletes_an_existing_project.yml +0 -91
  98. data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_project/returns_a_project.yml +0 -95
  99. data/spec/cassettes/Bugsnag_Api_Client_Projects/with_project/_update_project/updates_an_existing_project.yml +0 -95
  100. data/spec/cassettes/Bugsnag_Api_Client_Users/_account_users/returns_all_users_on_an_account.yml +0 -49
  101. data/spec/cassettes/Bugsnag_Api_Client_Users/_account_users/when_using_account_credentials/returns_all_users.yml +0 -51
  102. data/spec/cassettes/Bugsnag_Api_Client_Users/_invite_user/invites_a_user_to_an_account.yml +0 -48
  103. data/spec/cassettes/Bugsnag_Api_Client_Users/_project_users/returns_all_users_for_a_project.yml +0 -49
  104. data/spec/cassettes/Bugsnag_Api_Client_Users/_user/returns_a_user.yml +0 -48
  105. data/spec/cassettes/Bugsnag_Api_Client_Users/_user/when_using_user_credentials/returns_the_authed_user.yml +0 -48
  106. data/spec/cassettes/Bugsnag_Api_Client_Users/with_user/_remove_user/removes_a_user_from_an_account.yml +0 -89
  107. data/spec/cassettes/Bugsnag_Api_Client_Users/with_user/_update_user_permissions/updates_a_users_permissions.yml +0 -93
@@ -0,0 +1,84 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.bugsnag.com/projects/BUGSNAG_PROJECT_ID/events
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.3
12
+ Content-Type:
13
+ - application/json
14
+ X-Version:
15
+ - '2'
16
+ Authorization:
17
+ - token BUGSNAG_AUTH_TOKEN
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Accept:
21
+ - "*/*"
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Server:
28
+ - nginx
29
+ Date:
30
+ - Tue, 10 Oct 2017 07:45:09 GMT
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ X-Total-Count:
34
+ - '1'
35
+ Etag:
36
+ - W/"bf2feb969a8cf69c47e1491e2aec2a78"
37
+ Cache-Control:
38
+ - max-age=0, private, must-revalidate
39
+ X-Request-Id:
40
+ - 68b47bfb-3bb0-4f40-810f-b2adf7770456
41
+ X-Runtime:
42
+ - '0.237505'
43
+ Vary:
44
+ - Origin
45
+ X-Ratelimit-Limit:
46
+ - '10'
47
+ X-Ratelimit-Remaining:
48
+ - '9'
49
+ Content-Security-Policy:
50
+ - 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
51
+ connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
52
+ https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
53
+ ''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
54
+ script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
55
+ https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
56
+ https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
57
+ X-Content-Type-Options:
58
+ - nosniff
59
+ X-Download-Options:
60
+ - noopen
61
+ X-Frame-Options:
62
+ - DENY
63
+ X-Permitted-Cross-Domain-Policies:
64
+ - none
65
+ X-Xss-Protection:
66
+ - 1; mode=block
67
+ X-Robots-Tag:
68
+ - noindex, nofollow
69
+ Strict-Transport-Security:
70
+ - max-age=31536000
71
+ Via:
72
+ - 1.1 google
73
+ Alt-Svc:
74
+ - clear
75
+ Transfer-Encoding:
76
+ - chunked
77
+ body:
78
+ encoding: ASCII-8BIT
79
+ string: '[{"id":"BUGSNAG_EVENT_ID","url":"https://api.bugsnag.com/events/BUGSNAG_EVENT_ID","project_url":"https://api.bugsnag.com/projects/BUGSNAG_PROJECT_ID","is_full_report":false,"error_id":"BUGSNAG_ERROR_ID","receivedAt":"2017-10-09T14:18:25.000Z","exceptions":[{"errorClass":"RuntimeError","message":"Bugsnag
80
+ Padrino demo says: It crashed! Go check bugsnag.com for a new notification!"}],"severity":"error","context":"GET
81
+ /crash","unhandled":true,"app":{"releaseStage":"development"}}]'
82
+ http_version:
83
+ recorded_at: Tue, 10 Oct 2017 07:45:07 GMT
84
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,253 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.bugsnag.com/errors/BUGSNAG_ERROR_ID/latest_event
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.3
12
+ Content-Type:
13
+ - application/json
14
+ X-Version:
15
+ - '2'
16
+ Authorization:
17
+ - token BUGSNAG_AUTH_TOKEN
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Accept:
21
+ - "*/*"
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Server:
28
+ - nginx
29
+ Date:
30
+ - Mon, 09 Oct 2017 14:20:06 GMT
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ Etag:
34
+ - W/"0401f7a63d242024c1b50e1c30154845"
35
+ Cache-Control:
36
+ - max-age=0, private, must-revalidate
37
+ X-Request-Id:
38
+ - 68494c24-9200-4616-9c8d-0ec855a62347
39
+ X-Runtime:
40
+ - '0.307119'
41
+ Vary:
42
+ - Origin
43
+ X-Ratelimit-Limit:
44
+ - '10'
45
+ X-Ratelimit-Remaining:
46
+ - '1'
47
+ Content-Security-Policy:
48
+ - 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
49
+ connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
50
+ https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
51
+ ''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
52
+ script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
53
+ https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
54
+ https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
55
+ X-Content-Type-Options:
56
+ - nosniff
57
+ X-Download-Options:
58
+ - noopen
59
+ X-Frame-Options:
60
+ - DENY
61
+ X-Permitted-Cross-Domain-Policies:
62
+ - none
63
+ X-Xss-Protection:
64
+ - 1; mode=block
65
+ X-Robots-Tag:
66
+ - noindex, nofollow
67
+ Strict-Transport-Security:
68
+ - max-age=31536000
69
+ Via:
70
+ - 1.1 google
71
+ Alt-Svc:
72
+ - clear
73
+ Transfer-Encoding:
74
+ - chunked
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: '{"id":"BUGSNAG_EVENT_ID","url":"https://api.bugsnag.com/events/BUGSNAG_EVENT_ID","project_url":"https://api.bugsnag.com/projects/BUGSNAG_PROJECT_ID","is_full_report":true,"error_id":"BUGSNAG_ERROR_ID","received_at":"2017-10-09T14:18:25.000Z","exceptions":[{"error_class":"RuntimeError","message":"Bugsnag
78
+ Padrino demo says: It crashed! Go check bugsnag.com for a new notification!","stacktrace":[{"column_number":null,"in_project":null,"line_number":74,"method":"block
79
+ in \u003cclass:App\u003e","file":"/Users/amoinet/Desktop/libraries/bugsnag-ruby/example/padrino/app/app.rb","code":{"71":" end","72":"","73":" get
80
+ ''/crash'' do","74":" raise RuntimeError.new(''Bugsnag Padrino demo says:
81
+ It crashed! Go check '' +","75":" ''bugsnag.com for a new notification!'')","76":" end","77":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":735,"method":"call","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"732":"","733":" block
82
+ = block.arity != 0 ?","734":" proc { |a,p| unbound_method.bind(a).call(*p)
83
+ } :","735":" proc { |a,p| unbound_method.bind(a).call }","736":"","737":" invoke_hook(:route_added,
84
+ verb, path, block)","738":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":735,"method":"block
85
+ in route","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"732":"","733":" block
86
+ = block.arity != 0 ?","734":" proc { |a,p| unbound_method.bind(a).call(*p)
87
+ } :","735":" proc { |a,p| unbound_method.bind(a).call }","736":"","737":" invoke_hook(:route_added,
88
+ verb, path, block)","738":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"[]","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
89
+ - settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
90
+ = path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
91
+ { |block| pass if block.bind(self).call == false }","62":" halt_response =
92
+ catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
93
+ = halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
94
+ true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"block
95
+ (3 levels) in process_destination_path","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
96
+ - settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
97
+ = path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
98
+ { |block| pass if block.bind(self).call == false }","62":" halt_response =
99
+ catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
100
+ = halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
101
+ true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":994,"method":"route_eval","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"991":"","992":" #
102
+ Run a route block and throw :halt with the result.","993":" def route_eval","994":" throw
103
+ :halt, yield","995":" end","996":"","997":" # If the current request
104
+ matches pattern and conditions, fill params"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"block
105
+ (2 levels) in process_destination_path","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
106
+ - settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
107
+ = path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
108
+ { |block| pass if block.bind(self).call == false }","62":" halt_response =
109
+ catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
110
+ = halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
111
+ true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"catch","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
112
+ - settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
113
+ = path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
114
+ { |block| pass if block.bind(self).call == false }","62":" halt_response =
115
+ catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
116
+ = halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
117
+ true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":62,"method":"block
118
+ in process_destination_path","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"59":" (@route.before_filters
119
+ - settings.filters[:before]).each { |block| instance_eval(\u0026block) }","60":" @layout
120
+ = path.route.use_layout if path.route.use_layout","61":" @route.custom_conditions.each
121
+ { |block| pass if block.bind(self).call == false }","62":" halt_response =
122
+ catch(:halt) { route_eval { @route.dest[self, @block_params] } }","63":" @_response_buffer
123
+ = halt_response.is_a?(Array) ? halt_response.last : halt_response","64":" successful =
124
+ true","65":" halt halt_response"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":37,"method":"instance_eval","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"34":" def
125
+ rewrite_path_info(env, request); end","35":"","36":" def process_destination_path(path,
126
+ env)","37":" Thread.current[''padrino.instance''].instance_eval do","38":" request.route_obj
127
+ = path.route","39":" @_response_buffer = nil","40":" @route =
128
+ path.route"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":37,"method":"process_destination_path","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"34":" def
129
+ rewrite_path_info(env, request); end","35":"","36":" def process_destination_path(path,
130
+ env)","37":" Thread.current[''padrino.instance''].instance_eval do","38":" request.route_obj
131
+ = path.route","39":" @_response_buffer = nil","40":" @route =
132
+ path.route"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":77,"method":"block
133
+ in call","file":"(eval)","code":null,"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":66,"method":"catch","file":"(eval)","code":null,"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":66,"method":"call","file":"(eval)","code":null,"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":288,"method":"raw_call","file":"gems/http_router-0.11.2/lib/http_router.rb","code":{"285":" @root.call(request,
134
+ \u0026blk)","286":" request","287":" else","288":" @root.call(request)
135
+ or no_response(request, env)","289":" end","290":" end","291":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1169,"method":"route!","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"1166":"","1167":" def
136
+ route!(base=settings, pass_block=nil)","1168":" Thread.current[''padrino.instance'']
137
+ = self","1169":" if base.compiled_router and match = base.compiled_router.call(@request.env)","1170":" if
138
+ match.respond_to?(:each)","1171":" route_eval do","1172":" match[1].each
139
+ { |k,v| response[k] = v }"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1154,"method":"block
140
+ in dispatch!","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"1151":" def
141
+ dispatch!","1152":" invoke do","1153":" static! if settings.static?
142
+ \u0026\u0026 (request.get? || request.head?)","1154":" route!","1155":" end","1156":" rescue
143
+ ::Exception =\u003e boom","1157":" filter! :before if boom.kind_of?
144
+ ::Sinatra::NotFound"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"block
145
+ in invoke","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
146
+ Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
147
+ invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
148
+ if Integer === res or String === res","1069":" if Array === res and Integer
149
+ === res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"catch","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
150
+ Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
151
+ invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
152
+ if Integer === res or String === res","1069":" if Array === res and Integer
153
+ === res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"invoke","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
154
+ Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
155
+ invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
156
+ if Integer === res or String === res","1069":" if Array === res and Integer
157
+ === res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1152,"method":"dispatch!","file":"gems/padrino-core-0.12.2/lib/padrino-core/application/routing.rb","code":{"1149":" end","1150":"","1151":" def
158
+ dispatch!","1152":" invoke do","1153":" static! if settings.static?
159
+ \u0026\u0026 (request.get? || request.head?)","1154":" route!","1155":" end"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":907,"method":"block
160
+ in call!","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"904":" force_encoding(@params)","905":"","906":" @response[''Content-Type'']
161
+ = nil","907":" invoke { dispatch! }","908":" invoke { error_block!(response.status)
162
+ } unless @env[''sinatra.error'']","909":"","910":" unless @response[''Content-Type'']"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"block
163
+ in invoke","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
164
+ Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
165
+ invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
166
+ if Integer === res or String === res","1069":" if Array === res and Integer
167
+ === res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"catch","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
168
+ Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
169
+ invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
170
+ if Integer === res or String === res","1069":" if Array === res and Integer
171
+ === res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1067,"method":"invoke","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1064":"","1065":" #
172
+ Run the block with ''throw :halt'' support and apply result to the response.","1066":" def
173
+ invoke","1067":" res = catch(:halt) { yield }","1068":" res = [res]
174
+ if Integer === res or String === res","1069":" if Array === res and Integer
175
+ === res.first","1070":" res = res.dup"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":907,"method":"call!","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"904":" force_encoding(@params)","905":"","906":" @response[''Content-Type'']
176
+ = nil","907":" invoke { dispatch! }","908":" invoke { error_block!(response.status)
177
+ } unless @env[''sinatra.error'']","909":"","910":" unless @response[''Content-Type'']"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":895,"method":"call","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"892":"","893":" #
178
+ Rack call interface.","894":" def call(env)","895":" dup.call!(env)","896":" end","897":"","898":" def
179
+ call!(env) # :nodoc:"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
180
+ env","47":" result = react env","48":" end","49":" result
181
+ or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":18,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb","code":{"15":" default_options
182
+ :xss_mode =\u003e :block, :nosniff =\u003e true","16":"","17":" def call(env)","18":" status,
183
+ headers, body = @app.call(env)","19":" headers[''X-XSS-Protection''] ||=
184
+ \"1; mode=#{options[:xss_mode]}\" if html? headers","20":" headers[''X-Content-Type-Options'']
185
+ ||= ''nosniff'' if options[:nosniff]","21":" [status,
186
+ headers, body]"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
187
+ env","47":" result = react env","48":" end","49":" result
188
+ or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
189
+ env","47":" result = react env","48":" end","49":" result
190
+ or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":18,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb","code":{"15":"","16":" def
191
+ call(env)","17":" request = Request.new(env)","18":" status,
192
+ headers, body = app.call(env)","19":"","20":" if has_vector? request,
193
+ headers","21":" warn env, \"attack prevented by #{self.class}\""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
194
+ env","47":" result = react env","48":" end","49":" result
195
+ or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":49,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/base.rb","code":{"46":" instrument
196
+ env","47":" result = react env","48":" end","49":" result
197
+ or app.call(env)","50":" end","51":"","52":" def react(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":31,"method":"call","file":"gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb","code":{"28":" end","29":"","30":" def
198
+ call(env)","31":" status, headers, body = @app.call(env)","32":" headers[''X-Frame-Options'']
199
+ ||= frame_options if html? headers","33":" [status, headers, body]","34":" end"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":13,"method":"call","file":"gems/rack-1.6.8/lib/rack/head.rb","code":{"10":" end","11":"","12":" def
200
+ call(env)","13":" status, headers, body = @app.call(env)","14":"","15":" if
201
+ env[REQUEST_METHOD] == HEAD","16":" ["},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":22,"method":"call","file":"gems/rack-1.6.8/lib/rack/methodoverride.rb","code":{"19":" end","20":" end","21":"","22":" @app.call(env)","23":" end","24":"","25":" def
202
+ method_override(env)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":22,"method":"call","file":"gems/padrino-core-0.12.2/lib/padrino-core/reloader/rack.rb","code":{"19":" Thread.list.size
203
+ \u003e 1 ? Thread.exclusive { Padrino.reload! } : Padrino.reload!","20":" @last
204
+ = Time.now","21":" end","22":" @app.call(env)","23":" end","24":" end","25":" end"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":420,"method":"call","file":"gems/padrino-core-0.12.2/lib/padrino-core/logger.rb","code":{"417":" def
205
+ call(env)","418":" env[''rack.logger''] = Padrino.logger","419":" began_at
206
+ = Time.now","420":" status, header, body = @app.call(env)","421":" log(env,
207
+ status, header, began_at) if logger.debug?","422":" [status, header,
208
+ body]","423":" end"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":225,"method":"context","file":"gems/rack-1.6.8/lib/rack/session/abstract/id.rb","code":{"222":"","223":" def
209
+ context(env, app=@app)","224":" prepare_session(env)","225":" status,
210
+ headers, body = app.call(env)","226":" commit_session(env, status,
211
+ headers, body)","227":" end","228":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":220,"method":"call","file":"gems/rack-1.6.8/lib/rack/session/abstract/id.rb","code":{"217":" end","218":"","219":" def
212
+ call(env)","220":" context(env)","221":" end","222":"","223":" def
213
+ context(env, app=@app)"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":2013,"method":"call","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"2010":" end","2011":"","2012":" def
214
+ call(env)","2013":" @stack.call(env)","2014":" end","2015":"","2016":" def
215
+ inspect"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1487,"method":"block
216
+ in call","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1484":" end","1485":"","1486":" def
217
+ call(env)","1487":" synchronize { prototype.call(env) }","1488":" end","1489":"","1490":" #
218
+ Like Kernel#caller but excluding certain magic entries and without"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1787,"method":"synchronize","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1784":" if
219
+ lock?","1785":" @@mutex.synchronize(\u0026block)","1786":" else","1787":" yield","1788":" end","1789":" end","1790":""},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":1487,"method":"call","file":"gems/sinatra-1.4.8/lib/sinatra/base.rb","code":{"1484":" end","1485":"","1486":" def
220
+ call(env)","1487":" synchronize { prototype.call(env) }","1488":" end","1489":"","1490":" #
221
+ Like Kernel#caller but excluding certain magic entries and without"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":84,"method":"block
222
+ in call","file":"gems/padrino-core-0.12.2/lib/padrino-core/router.rb","code":{"81":"","82":" env[''SCRIPT_NAME'']
223
+ = script_name + path","83":" env[''PATH_INFO''] = rest","84":" last_result
224
+ = app.call(env)","85":"","86":" cascade_setting = app.respond_to?(:cascade)
225
+ ? app.cascade : true","87":" cascade_statuses = cascade_setting.respond_to?(:include?)
226
+ ? cascade_setting : Mounter::DEFAULT_CASCADE"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":75,"method":"each","file":"gems/padrino-core-0.12.2/lib/padrino-core/router.rb","code":{"72":" http_host
227
+ = env[''HTTP_HOST'']","73":" last_result = nil","74":"","75":" @mapping.each
228
+ do |host, path, match, app|","76":" next unless host.nil? || http_host
229
+ =~ host","77":" next unless path_info =~ match \u0026\u0026 rest =
230
+ $1","78":" next unless rest.empty? || rest[0] == ?/"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":75,"method":"call","file":"gems/padrino-core-0.12.2/lib/padrino-core/router.rb","code":{"72":" http_host
231
+ = env[''HTTP_HOST'']","73":" last_result = nil","74":"","75":" @mapping.each
232
+ do |host, path, match, app|","76":" next unless host.nil? || http_host
233
+ =~ host","77":" next unless path_info =~ match \u0026\u0026 rest =
234
+ $1","78":" next unless rest.empty? || rest[0] == ?/"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":88,"method":"service","file":"gems/rack-1.6.8/lib/rack/handler/webrick.rb","code":{"85":" end","86":" env[\"REQUEST_PATH\"]
235
+ ||= [env[\"SCRIPT_NAME\"], env[PATH_INFO]].join","87":"","88":" status,
236
+ headers, body = @app.call(env)","89":" begin","90":" res.status
237
+ = status.to_i","91":" headers.each { |k, vs|"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":138,"method":"service","file":"/Users/amoinet/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb","code":{"135":" req.path_info
238
+ = path_info","136":" si = servlet.get_instance(self, *options)","137":" @logger.debug(format(\"%s
239
+ is invoked.\", si.class.name))","138":" si.service(req, res)","139":" end","140":"","141":" ##"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":94,"method":"run","file":"/Users/amoinet/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb","code":{"91":" @logger.warn(msg)","92":" callback.call(req,
240
+ res)","93":" end","94":" server.service(req, res)","95":" rescue
241
+ HTTPStatus::EOFError, HTTPStatus::RequestTimeout =\u003e ex","96":" res.set_error(ex)","97":" rescue
242
+ HTTPStatus::Error =\u003e ex"},"macho_uuid":null,"source_control_link":null,"source_control_name":null},{"column_number":null,"in_project":null,"line_number":294,"method":"block
243
+ in start_thread","file":"/Users/amoinet/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/server.rb","code":{"291":" raise","292":" end","293":" call_callback(:AcceptCallback,
244
+ sock)","294":" block ? block.call(sock) : run(sock)","295":" rescue
245
+ Errno::ENOTCONN","296":" @logger.debug \"Errno::ENOTCONN raised\"","297":" rescue
246
+ ServerError =\u003e ex"},"macho_uuid":null,"source_control_link":null,"source_control_name":null}]}],"threads":[],"metaData":{"request":{"referer":null},"session":{"csrf":"6baa4072450acdd3cfbb968468124847","session_id":"97833d48752db206ba510e4497dd102fc02c432b6db242633c8e23c97a10e5a8","tracking":{"HTTP_USER_AGENT":"12a00762794c42b4c1ad20036160ad0eb7f7f6db","HTTP_ACCEPT_LANGUAGE":"3aafc5dab3eb0b9a53b22430a9c6325546c8ae04"}}},"customDiagnostics":{},"request":{"clientIp":"127.0.0.1","headers":{"Host":"localhost:3000","Connection":"keep-alive","User-Agent":"Mozilla/5.0
247
+ (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko)
248
+ Chrome/61.0.3163.100 Safari/537.36","Upgrade-Insecure-Requests":"1","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","Accept-Encoding":"gzip,
249
+ deflate, br","Accept-Language":"en-GB,en-US;q=0.8,en;q=0.6","Cookie":"[FILTERED]","Version":"HTTP/1.1"},"httpMethod":"GET","params":{},"url":"http://localhost:3000/crash"},"app":{"releaseStage":"development","type":"rack"},"device":{"hostname":"Alexanders-MacBook-Pro.local"},"user":{"id":"127.0.0.1"},"breadcrumbs":[],"context":"GET
250
+ /crash","severity":"error","unhandled":true,"derived":{"deploy":null}}'
251
+ http_version:
252
+ recorded_at: Mon, 09 Oct 2017 14:20:05 GMT
253
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,84 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.bugsnag.com/organizations
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"name":"testOrg"}'
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.3
12
+ Content-Type:
13
+ - application/json
14
+ X-Version:
15
+ - '2'
16
+ Authorization:
17
+ - Basic YWxleCt0ZXN0QGJ1Z3NuYWcuY29tOkNvc21vcG9saXRhblBlYXNlbnQ=
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Accept:
21
+ - "*/*"
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Server:
28
+ - nginx
29
+ Date:
30
+ - Mon, 09 Oct 2017 14:20:19 GMT
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ Etag:
34
+ - W/"f6a5e1aba0dca338af03930ea73fc4e7"
35
+ Cache-Control:
36
+ - max-age=0, private, must-revalidate
37
+ Set-Cookie:
38
+ - _bugsnag_session_2=V3dySUxNQVpBY2ljdmM0WjhZaXlrd0ZOTFJxb05RSXliUFV2Sk91R3lFWG9UOEdWVXFqMHI5cjJCZUh6Rjg3dUdtdU9jejNlRHRTenlyRkxYaVpiczhIL0pQNlczVmg4cy9QMjBrd0g3NkhBRjdwTVZqUG9MckpwNE9wUmJ5N0FtYkJ0RThMaDBIbnVTNGN1TGJwVFJZd25qZGhJdERLZ3RJTFRIZlhJb0pLS2g5dTc1K0ZVVWZFbXlzNUtWNng0MWhUU2JtSGNkY1ZTbzg5MmFkcyt6QT09LS1uL2ZVWWZXRUd0c25wTVRGM1ZaeHJBPT0%3D--f082920eb5d3142c6afcf653f919b10a90334a1e;
39
+ domain=.bugsnag.com; path=/; expires=Tue, 09 Oct 2018 14:20:19 -0000; secure;
40
+ HttpOnly; SameSite=Lax
41
+ X-Request-Id:
42
+ - 3bdd5289-931b-4fb9-b417-45a415dbd6ed
43
+ X-Runtime:
44
+ - '1.689303'
45
+ Vary:
46
+ - Origin
47
+ X-Ratelimit-Limit:
48
+ - '10'
49
+ X-Ratelimit-Remaining:
50
+ - '1'
51
+ Content-Security-Policy:
52
+ - 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
53
+ connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
54
+ https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
55
+ ''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
56
+ script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
57
+ https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
58
+ https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
59
+ X-Content-Type-Options:
60
+ - nosniff
61
+ X-Download-Options:
62
+ - noopen
63
+ X-Frame-Options:
64
+ - DENY
65
+ X-Permitted-Cross-Domain-Policies:
66
+ - none
67
+ X-Xss-Protection:
68
+ - 1; mode=block
69
+ X-Robots-Tag:
70
+ - noindex, nofollow
71
+ Strict-Transport-Security:
72
+ - max-age=31536000
73
+ Via:
74
+ - 1.1 google
75
+ Alt-Svc:
76
+ - clear
77
+ Transfer-Encoding:
78
+ - chunked
79
+ body:
80
+ encoding: ASCII-8BIT
81
+ string: '{"id":"59db85a2562ced001d108664","name":"testOrg","slug":"testorg-29","creator":{"id":"59ae67b68a0558001a351bcb","name":"AlexTestsM","email":"BUGSNAG_USER_EMAIL"},"created_at":"2017-10-09T14:20:18.150Z","updated_at":"2017-10-09T14:20:18.315Z","auto_upgrade":true,"upgrade_url":"https://api.bugsnag.com/settings/testorg-29/plans-billing?plansBilling%5Bstep%5D=collaborators-and-events","billing_emails":["BUGSNAG_USER_EMAIL"]}'
82
+ http_version:
83
+ recorded_at: Mon, 09 Oct 2017 14:20:18 GMT
84
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,159 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.bugsnag.com/organizations
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"name":"testOrg"}'
9
+ headers:
10
+ User-Agent:
11
+ - Bugsnag API Ruby Gem 1.0.3
12
+ Content-Type:
13
+ - application/json
14
+ X-Version:
15
+ - '2'
16
+ Authorization:
17
+ - Basic YWxleCt0ZXN0QGJ1Z3NuYWcuY29tOkNvc21vcG9saXRhblBlYXNlbnQ=
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Accept:
21
+ - "*/*"
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Server:
28
+ - nginx
29
+ Date:
30
+ - Mon, 09 Oct 2017 14:20:16 GMT
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ Etag:
34
+ - W/"90306d8a4f8fd3a64a09698514dd967f"
35
+ Cache-Control:
36
+ - max-age=0, private, must-revalidate
37
+ Set-Cookie:
38
+ - _bugsnag_session_2=OE1XeGR4eWZ4QnYxRFpubVJHa04wTFJJaGxHdllpRnp0YXBWMFQvdGhpK24yb3lqYlZpYmFkcmNRNVVmdFRNVnp1RDU2cHZXYUxZb2RKOHhzRklxb2pjbW9JTVdRcVhaQnVPei9yQ1F5M042dGY1c08wQXZMQ2ljVktTVUtJcm5hYjlaNGlCZitKbGZhbkxxRXpXekU0V0lmVVlDM1RqZ2hSUWpVV0o1YUVvQnlDSDNiM2JHdlY1VlpNb2RQYlpnc2NDdGR1N2VqNGdOY1dENW1MM1k1dz09LS03YTRYM05nUnpUY3lUckU4ZnZuYTR3PT0%3D--3708aa7a4bd61f08076303ea9cff69737a010248;
39
+ domain=.bugsnag.com; path=/; expires=Tue, 09 Oct 2018 14:20:16 -0000; secure;
40
+ HttpOnly; SameSite=Lax
41
+ X-Request-Id:
42
+ - f621f4cc-3d54-4338-b7f4-509858c41f07
43
+ X-Runtime:
44
+ - '1.181246'
45
+ Vary:
46
+ - Origin
47
+ X-Ratelimit-Limit:
48
+ - '10'
49
+ X-Ratelimit-Remaining:
50
+ - '3'
51
+ Content-Security-Policy:
52
+ - 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
53
+ connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
54
+ https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
55
+ ''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
56
+ script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
57
+ https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
58
+ https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
59
+ X-Content-Type-Options:
60
+ - nosniff
61
+ X-Download-Options:
62
+ - noopen
63
+ X-Frame-Options:
64
+ - DENY
65
+ X-Permitted-Cross-Domain-Policies:
66
+ - none
67
+ X-Xss-Protection:
68
+ - 1; mode=block
69
+ X-Robots-Tag:
70
+ - noindex, nofollow
71
+ Strict-Transport-Security:
72
+ - max-age=31536000
73
+ Via:
74
+ - 1.1 google
75
+ Alt-Svc:
76
+ - clear
77
+ Transfer-Encoding:
78
+ - chunked
79
+ body:
80
+ encoding: ASCII-8BIT
81
+ string: '{"id":"59db85a0901da000201ed575","name":"testOrg","slug":"testorg-28","creator":{"id":"59ae67b68a0558001a351bcb","name":"AlexTestsM","email":"BUGSNAG_USER_EMAIL"},"created_at":"2017-10-09T14:20:16.064Z","updated_at":"2017-10-09T14:20:16.173Z","auto_upgrade":true,"upgrade_url":"https://api.bugsnag.com/settings/testorg-28/plans-billing?plansBilling%5Bstep%5D=collaborators-and-events","billing_emails":["BUGSNAG_USER_EMAIL"]}'
82
+ http_version:
83
+ recorded_at: Mon, 09 Oct 2017 14:20:16 GMT
84
+ - request:
85
+ method: delete
86
+ uri: https://api.bugsnag.com/organizations/59db85a0901da000201ed575
87
+ body:
88
+ encoding: UTF-8
89
+ string: "{}"
90
+ headers:
91
+ User-Agent:
92
+ - Bugsnag API Ruby Gem 1.0.3
93
+ Content-Type:
94
+ - application/json
95
+ X-Version:
96
+ - '2'
97
+ Authorization:
98
+ - Basic YWxleCt0ZXN0QGJ1Z3NuYWcuY29tOkNvc21vcG9saXRhblBlYXNlbnQ=
99
+ Accept-Encoding:
100
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
101
+ Accept:
102
+ - "*/*"
103
+ response:
104
+ status:
105
+ code: 204
106
+ message: No Content
107
+ headers:
108
+ Server:
109
+ - nginx
110
+ Date:
111
+ - Mon, 09 Oct 2017 14:20:17 GMT
112
+ Cache-Control:
113
+ - no-cache
114
+ Set-Cookie:
115
+ - _bugsnag_session_2=L1luZCt6S0NtV3Ixb01HNEI1bnozc0pkSk9xK2FpY2RScld2QW1xbmFuR0JXVG1xVlowdkx3eGc3eXJPV05zOWVhK0hnaGxRaSs3TnFXU3RHRDRHVFVDbnMzd0EyTm9HVkRCN00vQ29vYytsak51NG1OcDZ1ckFwSDRURWQzZXR0OHR0Nk1Bd0VuQWpub0duL2Y1ZnZUNExJOThRSHc2dlNvWEpHVWJESGRQd1pKWWd2dHRLMDAwL2hhREdaRkVQOHYrcGh4S0RVeXM0cjVEQi90eHZoZz09LS1zejhiY3pHb1k5eWdqcFV3ekVTSi9BPT0%3D--0ac36e30bf4802a7c3421ca1bd4241b47280095c;
116
+ domain=.bugsnag.com; path=/; expires=Tue, 09 Oct 2018 14:20:17 -0000; secure;
117
+ HttpOnly; SameSite=Lax
118
+ X-Request-Id:
119
+ - 75741f24-0241-4ef1-a428-edb3939612a3
120
+ X-Runtime:
121
+ - '0.311295'
122
+ Vary:
123
+ - Origin
124
+ X-Ratelimit-Limit:
125
+ - '10'
126
+ X-Ratelimit-Remaining:
127
+ - '2'
128
+ Content-Security-Policy:
129
+ - 'default-src ''self''; child-src https://*.stripe.com headway-widget.net;
130
+ connect-src ''self'' https://api.bugsnag.com https://*.stripe.com https://bugsnag.zendesk.com
131
+ https://api.lever.co; font-src ''self'' https://maxcdn.bootstrapcdn.com; img-src
132
+ ''self'' data: https://notify.bugsnag.com https://*.stripe.com https://maxcdn.bootstrapcdn.com;
133
+ script-src ''self'' https://d2wy8f7a9ursnm.cloudfront.net https://*.stripe.com
134
+ https://maxcdn.bootstrapcdn.com https://code.jquery.com https://assets.zendesk.com
135
+ https://cdn.headwayapp.co; style-src ''self'' ''unsafe-inline'' https://maxcdn.bootstrapcdn.com'
136
+ X-Content-Type-Options:
137
+ - nosniff
138
+ X-Download-Options:
139
+ - noopen
140
+ X-Frame-Options:
141
+ - DENY
142
+ X-Permitted-Cross-Domain-Policies:
143
+ - none
144
+ X-Xss-Protection:
145
+ - 1; mode=block
146
+ X-Robots-Tag:
147
+ - noindex, nofollow
148
+ Strict-Transport-Security:
149
+ - max-age=31536000
150
+ Via:
151
+ - 1.1 google
152
+ Alt-Svc:
153
+ - clear
154
+ body:
155
+ encoding: UTF-8
156
+ string: ''
157
+ http_version:
158
+ recorded_at: Mon, 09 Oct 2017 14:20:16 GMT
159
+ recorded_with: VCR 2.9.3