bugsnag-api 1.0.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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