bugsnag 6.14.0 → 6.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (646) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +11 -0
  3. data/CHANGELOG.md +74 -0
  4. data/VERSION +1 -1
  5. data/bugsnag.gemspec +1 -1
  6. data/lib/bugsnag.rb +116 -17
  7. data/lib/bugsnag/breadcrumbs/breadcrumb.rb +1 -1
  8. data/lib/bugsnag/breadcrumbs/validator.rb +0 -22
  9. data/lib/bugsnag/code_extractor.rb +137 -0
  10. data/lib/bugsnag/configuration.rb +209 -24
  11. data/lib/bugsnag/delivery/synchronous.rb +1 -1
  12. data/lib/bugsnag/delivery/thread_queue.rb +18 -3
  13. data/lib/bugsnag/helpers.rb +17 -4
  14. data/lib/bugsnag/integrations/delayed_job.rb +13 -1
  15. data/lib/bugsnag/integrations/mailman.rb +2 -1
  16. data/lib/bugsnag/integrations/que.rb +2 -1
  17. data/lib/bugsnag/integrations/rack.rb +3 -1
  18. data/lib/bugsnag/integrations/railtie.rb +17 -5
  19. data/lib/bugsnag/integrations/rake.rb +4 -2
  20. data/lib/bugsnag/integrations/resque.rb +12 -5
  21. data/lib/bugsnag/integrations/shoryuken.rb +2 -1
  22. data/lib/bugsnag/integrations/sidekiq.rb +1 -2
  23. data/lib/bugsnag/middleware/delayed_job.rb +1 -0
  24. data/lib/bugsnag/middleware_stack.rb +38 -3
  25. data/lib/bugsnag/on_error_callbacks.rb +33 -0
  26. data/lib/bugsnag/report.rb +85 -3
  27. data/lib/bugsnag/session_tracker.rb +3 -3
  28. data/lib/bugsnag/stacktrace.rb +25 -68
  29. metadata +6 -620
  30. data/.buildkite/pipeline.yml +0 -470
  31. data/.github/PULL_REQUEST_TEMPLATE.md +0 -84
  32. data/.gitignore +0 -55
  33. data/.rdoc_options +0 -27
  34. data/.rspec +0 -3
  35. data/.rubocop.yml +0 -57
  36. data/.rubocop_todo.yml +0 -1049
  37. data/CONTRIBUTING.md +0 -64
  38. data/Gemfile +0 -50
  39. data/Rakefile +0 -37
  40. data/TESTING.md +0 -81
  41. data/UPGRADING.md +0 -91
  42. data/docker-compose.yml +0 -46
  43. data/dockerfiles/Dockerfile.jruby-unit-tests +0 -13
  44. data/dockerfiles/Dockerfile.ruby-maze-runner +0 -26
  45. data/dockerfiles/Dockerfile.ruby-unit-tests +0 -12
  46. data/features/.gitignore +0 -1
  47. data/features/delayed_job.feature +0 -36
  48. data/features/fixtures/delayed_job/Dockerfile +0 -15
  49. data/features/fixtures/delayed_job/app/.gitignore +0 -21
  50. data/features/fixtures/delayed_job/app/Gemfile +0 -57
  51. data/features/fixtures/delayed_job/app/README.md +0 -24
  52. data/features/fixtures/delayed_job/app/Rakefile +0 -24
  53. data/features/fixtures/delayed_job/app/app/assets/config/manifest.js +0 -3
  54. data/features/fixtures/delayed_job/app/app/assets/images/.keep +0 -0
  55. data/features/fixtures/delayed_job/app/app/assets/javascripts/application.js +0 -16
  56. data/features/fixtures/delayed_job/app/app/assets/javascripts/cable.js +0 -13
  57. data/features/fixtures/delayed_job/app/app/assets/javascripts/channels/.keep +0 -0
  58. data/features/fixtures/delayed_job/app/app/assets/stylesheets/application.css +0 -15
  59. data/features/fixtures/delayed_job/app/app/channels/application_cable/channel.rb +0 -4
  60. data/features/fixtures/delayed_job/app/app/channels/application_cable/connection.rb +0 -4
  61. data/features/fixtures/delayed_job/app/app/controllers/application_controller.rb +0 -3
  62. data/features/fixtures/delayed_job/app/app/controllers/concerns/.keep +0 -0
  63. data/features/fixtures/delayed_job/app/app/helpers/application_helper.rb +0 -2
  64. data/features/fixtures/delayed_job/app/app/jobs/application_job.rb +0 -2
  65. data/features/fixtures/delayed_job/app/app/mailers/application_mailer.rb +0 -4
  66. data/features/fixtures/delayed_job/app/app/models/application_record.rb +0 -3
  67. data/features/fixtures/delayed_job/app/app/models/concerns/.keep +0 -0
  68. data/features/fixtures/delayed_job/app/app/models/test_model.rb +0 -10
  69. data/features/fixtures/delayed_job/app/app/views/layouts/application.html.erb +0 -14
  70. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.html.erb +0 -13
  71. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.text.erb +0 -1
  72. data/features/fixtures/delayed_job/app/config.ru +0 -5
  73. data/features/fixtures/delayed_job/app/config/application.rb +0 -15
  74. data/features/fixtures/delayed_job/app/config/boot.rb +0 -3
  75. data/features/fixtures/delayed_job/app/config/cable.yml +0 -9
  76. data/features/fixtures/delayed_job/app/config/database.yml +0 -25
  77. data/features/fixtures/delayed_job/app/config/environment.rb +0 -5
  78. data/features/fixtures/delayed_job/app/config/environments/development.rb +0 -54
  79. data/features/fixtures/delayed_job/app/config/environments/production.rb +0 -86
  80. data/features/fixtures/delayed_job/app/config/environments/test.rb +0 -42
  81. data/features/fixtures/delayed_job/app/config/initializers/application_controller_renderer.rb +0 -8
  82. data/features/fixtures/delayed_job/app/config/initializers/assets.rb +0 -11
  83. data/features/fixtures/delayed_job/app/config/initializers/backtrace_silencers.rb +0 -7
  84. data/features/fixtures/delayed_job/app/config/initializers/bugsnag.rb +0 -14
  85. data/features/fixtures/delayed_job/app/config/initializers/cookies_serializer.rb +0 -5
  86. data/features/fixtures/delayed_job/app/config/initializers/delayed_job.rb +0 -3
  87. data/features/fixtures/delayed_job/app/config/initializers/filter_parameter_logging.rb +0 -4
  88. data/features/fixtures/delayed_job/app/config/initializers/inflections.rb +0 -16
  89. data/features/fixtures/delayed_job/app/config/initializers/mime_types.rb +0 -4
  90. data/features/fixtures/delayed_job/app/config/initializers/new_framework_defaults.rb +0 -26
  91. data/features/fixtures/delayed_job/app/config/initializers/session_store.rb +0 -3
  92. data/features/fixtures/delayed_job/app/config/initializers/wrap_parameters.rb +0 -14
  93. data/features/fixtures/delayed_job/app/config/locales/en.yml +0 -23
  94. data/features/fixtures/delayed_job/app/config/puma.rb +0 -47
  95. data/features/fixtures/delayed_job/app/config/routes.rb +0 -3
  96. data/features/fixtures/delayed_job/app/config/secrets.yml +0 -22
  97. data/features/fixtures/delayed_job/app/config/spring.rb +0 -6
  98. data/features/fixtures/delayed_job/app/db/migrate/20181024232549_create_delayed_jobs.rb +0 -22
  99. data/features/fixtures/delayed_job/app/db/migrate/20181024232817_create_test_models.rb +0 -8
  100. data/features/fixtures/delayed_job/app/db/schema.rb +0 -30
  101. data/features/fixtures/delayed_job/app/db/seeds.rb +0 -7
  102. data/features/fixtures/delayed_job/app/lib/assets/.keep +0 -0
  103. data/features/fixtures/delayed_job/app/lib/tasks/.keep +0 -0
  104. data/features/fixtures/delayed_job/app/log/.keep +0 -0
  105. data/features/fixtures/delayed_job/app/public/404.html +0 -67
  106. data/features/fixtures/delayed_job/app/public/422.html +0 -67
  107. data/features/fixtures/delayed_job/app/public/500.html +0 -66
  108. data/features/fixtures/delayed_job/app/public/apple-touch-icon-precomposed.png +0 -0
  109. data/features/fixtures/delayed_job/app/public/apple-touch-icon.png +0 -0
  110. data/features/fixtures/delayed_job/app/public/favicon.ico +0 -0
  111. data/features/fixtures/delayed_job/app/public/robots.txt +0 -5
  112. data/features/fixtures/delayed_job/app/test/controllers/.keep +0 -0
  113. data/features/fixtures/delayed_job/app/test/fixtures/.keep +0 -0
  114. data/features/fixtures/delayed_job/app/test/fixtures/files/.keep +0 -0
  115. data/features/fixtures/delayed_job/app/test/fixtures/test_models.yml +0 -11
  116. data/features/fixtures/delayed_job/app/test/helpers/.keep +0 -0
  117. data/features/fixtures/delayed_job/app/test/integration/.keep +0 -0
  118. data/features/fixtures/delayed_job/app/test/mailers/.keep +0 -0
  119. data/features/fixtures/delayed_job/app/test/models/.keep +0 -0
  120. data/features/fixtures/delayed_job/app/test/models/test_model_test.rb +0 -7
  121. data/features/fixtures/delayed_job/app/test/test_helper.rb +0 -10
  122. data/features/fixtures/delayed_job/app/tmp/.keep +0 -0
  123. data/features/fixtures/docker-compose.yml +0 -299
  124. data/features/fixtures/expected_breadcrumbs/active_job.json +0 -9
  125. data/features/fixtures/expected_breadcrumbs/mongo_failed.json +0 -15
  126. data/features/fixtures/expected_breadcrumbs/mongo_filtered_request.json +0 -15
  127. data/features/fixtures/expected_breadcrumbs/mongo_filtered_result.json +0 -15
  128. data/features/fixtures/expected_breadcrumbs/mongo_success.json +0 -14
  129. data/features/fixtures/expected_breadcrumbs/request.json +0 -13
  130. data/features/fixtures/expected_breadcrumbs/sql_with_bindings.json +0 -12
  131. data/features/fixtures/expected_breadcrumbs/sql_without_bindings.json +0 -11
  132. data/features/fixtures/plain/.dockerignore +0 -2
  133. data/features/fixtures/plain/Dockerfile +0 -11
  134. data/features/fixtures/plain/app/Gemfile +0 -3
  135. data/features/fixtures/plain/app/app.rb +0 -38
  136. data/features/fixtures/plain/app/configuration/api_key.rb +0 -9
  137. data/features/fixtures/plain/app/configuration/proxy.rb +0 -14
  138. data/features/fixtures/plain/app/configuration/send_handled.rb +0 -7
  139. data/features/fixtures/plain/app/configuration/send_unhandled.rb +0 -9
  140. data/features/fixtures/plain/app/delivery/fork_threadpool.rb +0 -27
  141. data/features/fixtures/plain/app/delivery/synchronous.rb +0 -14
  142. data/features/fixtures/plain/app/delivery/threadpool.rb +0 -14
  143. data/features/fixtures/plain/app/exception_data/crash.rb +0 -34
  144. data/features/fixtures/plain/app/exception_data/handled_context.rb +0 -10
  145. data/features/fixtures/plain/app/exception_data/handled_hash.rb +0 -10
  146. data/features/fixtures/plain/app/exception_data/handled_meta_data.rb +0 -10
  147. data/features/fixtures/plain/app/exception_data/handled_user_id.rb +0 -10
  148. data/features/fixtures/plain/app/exception_data/unhandled_context.rb +0 -7
  149. data/features/fixtures/plain/app/exception_data/unhandled_hash.rb +0 -7
  150. data/features/fixtures/plain/app/exception_data/unhandled_meta_data.rb +0 -7
  151. data/features/fixtures/plain/app/exception_data/unhandled_user_id.rb +0 -7
  152. data/features/fixtures/plain/app/filters/additional_filters.rb +0 -11
  153. data/features/fixtures/plain/app/filters/default_filters.rb +0 -15
  154. data/features/fixtures/plain/app/handled/block_metadata.rb +0 -15
  155. data/features/fixtures/plain/app/handled/ignore_exception.rb +0 -12
  156. data/features/fixtures/plain/app/handled/notify_exception.rb +0 -9
  157. data/features/fixtures/plain/app/handled/notify_string.rb +0 -9
  158. data/features/fixtures/plain/app/ignore_classes/handled.rb +0 -8
  159. data/features/fixtures/plain/app/ignore_classes/ignore_error.rb +0 -8
  160. data/features/fixtures/plain/app/ignore_classes/unhandled.rb +0 -4
  161. data/features/fixtures/plain/app/report_modification/add_tab.rb +0 -16
  162. data/features/fixtures/plain/app/report_modification/add_tab_existing.rb +0 -22
  163. data/features/fixtures/plain/app/report_modification/add_tab_override.rb +0 -19
  164. data/features/fixtures/plain/app/report_modification/ignore_report.rb +0 -9
  165. data/features/fixtures/plain/app/report_modification/initiators/handled_before_notify.rb +0 -10
  166. data/features/fixtures/plain/app/report_modification/initiators/handled_block.rb +0 -8
  167. data/features/fixtures/plain/app/report_modification/initiators/unhandled_before_notify.rb +0 -11
  168. data/features/fixtures/plain/app/report_modification/modify_api_key.rb +0 -9
  169. data/features/fixtures/plain/app/report_modification/modify_severity.rb +0 -9
  170. data/features/fixtures/plain/app/report_modification/remove_user_details.rb +0 -14
  171. data/features/fixtures/plain/app/report_modification/set_custom_user_details.rb +0 -16
  172. data/features/fixtures/plain/app/report_modification/set_user_details.rb +0 -13
  173. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_before_notify.rb +0 -29
  174. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_block.rb +0 -24
  175. data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_before_notify.rb +0 -26
  176. data/features/fixtures/plain/app/stack_frame_modification/mark_frames_in_project.rb +0 -13
  177. data/features/fixtures/plain/app/stack_frame_modification/remove_stack_frame.rb +0 -9
  178. data/features/fixtures/plain/app/unhandled/bad_syntax.rb +0 -1
  179. data/features/fixtures/plain/app/unhandled/custom_error.rb +0 -9
  180. data/features/fixtures/plain/app/unhandled/interrupt.rb +0 -6
  181. data/features/fixtures/plain/app/unhandled/load_error.rb +0 -6
  182. data/features/fixtures/plain/app/unhandled/local_jump_error.rb +0 -10
  183. data/features/fixtures/plain/app/unhandled/name_error.rb +0 -6
  184. data/features/fixtures/plain/app/unhandled/no_method_error.rb +0 -6
  185. data/features/fixtures/plain/app/unhandled/runtime_error.rb +0 -6
  186. data/features/fixtures/plain/app/unhandled/syntax_error.rb +0 -6
  187. data/features/fixtures/plain/app/unhandled/system_call_error.rb +0 -6
  188. data/features/fixtures/plain/app/unhandled/system_exit.rb +0 -6
  189. data/features/fixtures/plain/json/delivery_fork.json +0 -4
  190. data/features/fixtures/plain/json/delivery_synchronous.json +0 -4
  191. data/features/fixtures/plain/json/delivery_threadpool.json +0 -4
  192. data/features/fixtures/plain/json/filters_default_metadata_filters.json +0 -9
  193. data/features/fixtures/rack1/.dockerignore +0 -1
  194. data/features/fixtures/rack1/Dockerfile +0 -13
  195. data/features/fixtures/rack1/Gemfile +0 -4
  196. data/features/fixtures/rack1/app.rb +0 -8
  197. data/features/fixtures/rack2/.dockerignore +0 -1
  198. data/features/fixtures/rack2/Dockerfile +0 -13
  199. data/features/fixtures/rack2/Gemfile +0 -4
  200. data/features/fixtures/rack2/app.rb +0 -8
  201. data/features/fixtures/rails3/.dockerignore +0 -1
  202. data/features/fixtures/rails3/Dockerfile +0 -15
  203. data/features/fixtures/rails3/app/.gitignore +0 -15
  204. data/features/fixtures/rails3/app/Gemfile +0 -17
  205. data/features/fixtures/rails3/app/Rakefile +0 -7
  206. data/features/fixtures/rails3/app/app/assets/images/rails.png +0 -0
  207. data/features/fixtures/rails3/app/app/assets/javascripts/application.js +0 -15
  208. data/features/fixtures/rails3/app/app/assets/stylesheets/application.css +0 -13
  209. data/features/fixtures/rails3/app/app/controllers/api_key_controller.rb +0 -20
  210. data/features/fixtures/rails3/app/app/controllers/app_type_controller.rb +0 -20
  211. data/features/fixtures/rails3/app/app/controllers/app_version_controller.rb +0 -25
  212. data/features/fixtures/rails3/app/app/controllers/application_controller.rb +0 -7
  213. data/features/fixtures/rails3/app/app/controllers/auto_notify_controller.rb +0 -31
  214. data/features/fixtures/rails3/app/app/controllers/before_notify_controller.rb +0 -44
  215. data/features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb +0 -19
  216. data/features/fixtures/rails3/app/app/controllers/handled_controller.rb +0 -26
  217. data/features/fixtures/rails3/app/app/controllers/ignore_classes_controller.rb +0 -23
  218. data/features/fixtures/rails3/app/app/controllers/metadata_filters_controller.rb +0 -16
  219. data/features/fixtures/rails3/app/app/controllers/project_root_controller.rb +0 -25
  220. data/features/fixtures/rails3/app/app/controllers/release_stage_controller.rb +0 -20
  221. data/features/fixtures/rails3/app/app/controllers/send_code_controller.rb +0 -20
  222. data/features/fixtures/rails3/app/app/controllers/send_environment_controller.rb +0 -12
  223. data/features/fixtures/rails3/app/app/controllers/session_tracking_controller.rb +0 -24
  224. data/features/fixtures/rails3/app/app/controllers/unhandled_controller.rb +0 -11
  225. data/features/fixtures/rails3/app/app/controllers/warden_controller.rb +0 -30
  226. data/features/fixtures/rails3/app/app/helpers/application_helper.rb +0 -2
  227. data/features/fixtures/rails3/app/app/mailers/.gitkeep +0 -0
  228. data/features/fixtures/rails3/app/app/models/.gitkeep +0 -0
  229. data/features/fixtures/rails3/app/app/models/user.rb +0 -6
  230. data/features/fixtures/rails3/app/app/views/layouts/application.html.erb +0 -14
  231. data/features/fixtures/rails3/app/config.ru +0 -4
  232. data/features/fixtures/rails3/app/config/application.rb +0 -67
  233. data/features/fixtures/rails3/app/config/boot.rb +0 -6
  234. data/features/fixtures/rails3/app/config/database.yml +0 -31
  235. data/features/fixtures/rails3/app/config/environment.rb +0 -5
  236. data/features/fixtures/rails3/app/config/environments/development.rb +0 -37
  237. data/features/fixtures/rails3/app/config/environments/production.rb +0 -67
  238. data/features/fixtures/rails3/app/config/environments/rails_env.rb +0 -37
  239. data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +0 -21
  240. data/features/fixtures/rails3/app/config/initializers/secret_token.rb +0 -7
  241. data/features/fixtures/rails3/app/config/initializers/session_store.rb +0 -8
  242. data/features/fixtures/rails3/app/config/initializers/warden.rb +0 -3
  243. data/features/fixtures/rails3/app/config/initializers/wrap_parameters.rb +0 -14
  244. data/features/fixtures/rails3/app/config/locales/en.yml +0 -5
  245. data/features/fixtures/rails3/app/config/routes.rb +0 -19
  246. data/features/fixtures/rails3/app/db/migrate/20180423142727_create_users.rb +0 -45
  247. data/features/fixtures/rails3/app/db/schema.rb +0 -37
  248. data/features/fixtures/rails3/app/db/seeds.rb +0 -7
  249. data/features/fixtures/rails3/app/lib/assets/.gitkeep +0 -0
  250. data/features/fixtures/rails3/app/lib/strategies/token_strategy.rb +0 -12
  251. data/features/fixtures/rails3/app/lib/tasks/.gitkeep +0 -0
  252. data/features/fixtures/rails3/app/log/.gitkeep +0 -0
  253. data/features/fixtures/rails3/app/public/404.html +0 -26
  254. data/features/fixtures/rails3/app/public/422.html +0 -26
  255. data/features/fixtures/rails3/app/public/500.html +0 -25
  256. data/features/fixtures/rails3/app/public/favicon.ico +0 -0
  257. data/features/fixtures/rails3/app/public/index.html +0 -241
  258. data/features/fixtures/rails3/app/public/robots.txt +0 -5
  259. data/features/fixtures/rails3/app/script/rails +0 -6
  260. data/features/fixtures/rails4/.dockerignore +0 -1
  261. data/features/fixtures/rails4/Dockerfile +0 -17
  262. data/features/fixtures/rails4/app/.gitignore +0 -16
  263. data/features/fixtures/rails4/app/Gemfile +0 -46
  264. data/features/fixtures/rails4/app/README.rdoc +0 -28
  265. data/features/fixtures/rails4/app/Rakefile +0 -6
  266. data/features/fixtures/rails4/app/app/assets/images/.keep +0 -0
  267. data/features/fixtures/rails4/app/app/assets/javascripts/application.js +0 -16
  268. data/features/fixtures/rails4/app/app/assets/stylesheets/application.css +0 -13
  269. data/features/fixtures/rails4/app/app/controllers/api_key_controller.rb +0 -20
  270. data/features/fixtures/rails4/app/app/controllers/app_type_controller.rb +0 -20
  271. data/features/fixtures/rails4/app/app/controllers/app_version_controller.rb +0 -25
  272. data/features/fixtures/rails4/app/app/controllers/application_controller.rb +0 -7
  273. data/features/fixtures/rails4/app/app/controllers/auto_notify_controller.rb +0 -31
  274. data/features/fixtures/rails4/app/app/controllers/before_notify_controller.rb +0 -44
  275. data/features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb +0 -26
  276. data/features/fixtures/rails4/app/app/controllers/concerns/.keep +0 -0
  277. data/features/fixtures/rails4/app/app/controllers/devise_controller.rb +0 -32
  278. data/features/fixtures/rails4/app/app/controllers/handled_controller.rb +0 -26
  279. data/features/fixtures/rails4/app/app/controllers/ignore_classes_controller.rb +0 -23
  280. data/features/fixtures/rails4/app/app/controllers/metadata_filters_controller.rb +0 -16
  281. data/features/fixtures/rails4/app/app/controllers/mongo_controller.rb +0 -23
  282. data/features/fixtures/rails4/app/app/controllers/project_root_controller.rb +0 -25
  283. data/features/fixtures/rails4/app/app/controllers/release_stage_controller.rb +0 -20
  284. data/features/fixtures/rails4/app/app/controllers/send_code_controller.rb +0 -20
  285. data/features/fixtures/rails4/app/app/controllers/send_environment_controller.rb +0 -12
  286. data/features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb +0 -24
  287. data/features/fixtures/rails4/app/app/controllers/unhandled_controller.rb +0 -11
  288. data/features/fixtures/rails4/app/app/helpers/application_helper.rb +0 -2
  289. data/features/fixtures/rails4/app/app/jobs/application_job.rb +0 -2
  290. data/features/fixtures/rails4/app/app/jobs/notify_job.rb +0 -5
  291. data/features/fixtures/rails4/app/app/mailers/.keep +0 -0
  292. data/features/fixtures/rails4/app/app/models/.keep +0 -0
  293. data/features/fixtures/rails4/app/app/models/concerns/.keep +0 -0
  294. data/features/fixtures/rails4/app/app/models/mongo_model.rb +0 -6
  295. data/features/fixtures/rails4/app/app/models/user.rb +0 -6
  296. data/features/fixtures/rails4/app/app/views/layouts/application.html.erb +0 -14
  297. data/features/fixtures/rails4/app/config.ru +0 -4
  298. data/features/fixtures/rails4/app/config/application.rb +0 -23
  299. data/features/fixtures/rails4/app/config/boot.rb +0 -4
  300. data/features/fixtures/rails4/app/config/database.yml +0 -31
  301. data/features/fixtures/rails4/app/config/environment.rb +0 -5
  302. data/features/fixtures/rails4/app/config/environments/development.rb +0 -31
  303. data/features/fixtures/rails4/app/config/environments/production.rb +0 -81
  304. data/features/fixtures/rails4/app/config/environments/rails_env.rb +0 -30
  305. data/features/fixtures/rails4/app/config/environments/test.rb +0 -31
  306. data/features/fixtures/rails4/app/config/initializers/backtrace_silencers.rb +0 -7
  307. data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +0 -21
  308. data/features/fixtures/rails4/app/config/initializers/devise.rb +0 -283
  309. data/features/fixtures/rails4/app/config/initializers/filter_parameter_logging.rb +0 -5
  310. data/features/fixtures/rails4/app/config/initializers/inflections.rb +0 -16
  311. data/features/fixtures/rails4/app/config/initializers/mime_types.rb +0 -5
  312. data/features/fixtures/rails4/app/config/initializers/secret_token.rb +0 -12
  313. data/features/fixtures/rails4/app/config/initializers/session_store.rb +0 -3
  314. data/features/fixtures/rails4/app/config/initializers/wrap_parameters.rb +0 -14
  315. data/features/fixtures/rails4/app/config/locales/devise.en.yml +0 -64
  316. data/features/fixtures/rails4/app/config/locales/en.yml +0 -23
  317. data/features/fixtures/rails4/app/config/mongoid.yml +0 -22
  318. data/features/fixtures/rails4/app/config/routes.rb +0 -21
  319. data/features/fixtures/rails4/app/db/migrate/20180420160315_devise_create_users.rb +0 -47
  320. data/features/fixtures/rails4/app/db/seeds.rb +0 -7
  321. data/features/fixtures/rails4/app/lib/assets/.keep +0 -0
  322. data/features/fixtures/rails4/app/lib/tasks/.keep +0 -0
  323. data/features/fixtures/rails4/app/log/.keep +0 -0
  324. data/features/fixtures/rails4/app/public/404.html +0 -58
  325. data/features/fixtures/rails4/app/public/422.html +0 -58
  326. data/features/fixtures/rails4/app/public/500.html +0 -57
  327. data/features/fixtures/rails4/app/public/favicon.ico +0 -0
  328. data/features/fixtures/rails4/app/public/robots.txt +0 -5
  329. data/features/fixtures/rails4/app/test/controllers/.keep +0 -0
  330. data/features/fixtures/rails4/app/test/fixtures/.keep +0 -0
  331. data/features/fixtures/rails4/app/test/helpers/.keep +0 -0
  332. data/features/fixtures/rails4/app/test/integration/.keep +0 -0
  333. data/features/fixtures/rails4/app/test/mailers/.keep +0 -0
  334. data/features/fixtures/rails4/app/test/models/.keep +0 -0
  335. data/features/fixtures/rails4/app/test/test_helper.rb +0 -15
  336. data/features/fixtures/rails5/.dockerignore +0 -1
  337. data/features/fixtures/rails5/Dockerfile +0 -17
  338. data/features/fixtures/rails5/app/.gitignore +0 -21
  339. data/features/fixtures/rails5/app/Gemfile +0 -52
  340. data/features/fixtures/rails5/app/README.md +0 -24
  341. data/features/fixtures/rails5/app/Rakefile +0 -6
  342. data/features/fixtures/rails5/app/app/assets/config/manifest.js +0 -3
  343. data/features/fixtures/rails5/app/app/assets/images/.keep +0 -0
  344. data/features/fixtures/rails5/app/app/assets/javascripts/application.js +0 -16
  345. data/features/fixtures/rails5/app/app/assets/javascripts/cable.js +0 -13
  346. data/features/fixtures/rails5/app/app/assets/javascripts/channels/.keep +0 -0
  347. data/features/fixtures/rails5/app/app/assets/stylesheets/application.css +0 -15
  348. data/features/fixtures/rails5/app/app/channels/application_cable/channel.rb +0 -4
  349. data/features/fixtures/rails5/app/app/channels/application_cable/connection.rb +0 -4
  350. data/features/fixtures/rails5/app/app/controllers/api_key_controller.rb +0 -16
  351. data/features/fixtures/rails5/app/app/controllers/app_type_controller.rb +0 -16
  352. data/features/fixtures/rails5/app/app/controllers/app_version_controller.rb +0 -21
  353. data/features/fixtures/rails5/app/app/controllers/application_controller.rb +0 -7
  354. data/features/fixtures/rails5/app/app/controllers/auto_notify_controller.rb +0 -27
  355. data/features/fixtures/rails5/app/app/controllers/before_notify_controller.rb +0 -40
  356. data/features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb +0 -24
  357. data/features/fixtures/rails5/app/app/controllers/clearance_controller.rb +0 -33
  358. data/features/fixtures/rails5/app/app/controllers/concerns/.keep +0 -0
  359. data/features/fixtures/rails5/app/app/controllers/handled_controller.rb +0 -22
  360. data/features/fixtures/rails5/app/app/controllers/ignore_classes_controller.rb +0 -19
  361. data/features/fixtures/rails5/app/app/controllers/metadata_filters_controller.rb +0 -12
  362. data/features/fixtures/rails5/app/app/controllers/mongo_controller.rb +0 -22
  363. data/features/fixtures/rails5/app/app/controllers/project_root_controller.rb +0 -21
  364. data/features/fixtures/rails5/app/app/controllers/release_stage_controller.rb +0 -16
  365. data/features/fixtures/rails5/app/app/controllers/send_code_controller.rb +0 -16
  366. data/features/fixtures/rails5/app/app/controllers/send_environment_controller.rb +0 -8
  367. data/features/fixtures/rails5/app/app/controllers/session_tracking_controller.rb +0 -20
  368. data/features/fixtures/rails5/app/app/controllers/unhandled_controller.rb +0 -7
  369. data/features/fixtures/rails5/app/app/helpers/application_helper.rb +0 -2
  370. data/features/fixtures/rails5/app/app/jobs/application_job.rb +0 -2
  371. data/features/fixtures/rails5/app/app/jobs/notify_job.rb +0 -5
  372. data/features/fixtures/rails5/app/app/mailers/application_mailer.rb +0 -4
  373. data/features/fixtures/rails5/app/app/models/application_record.rb +0 -3
  374. data/features/fixtures/rails5/app/app/models/concerns/.keep +0 -0
  375. data/features/fixtures/rails5/app/app/models/mongo_model.rb +0 -6
  376. data/features/fixtures/rails5/app/app/models/user.rb +0 -3
  377. data/features/fixtures/rails5/app/app/views/layouts/application.html.erb +0 -14
  378. data/features/fixtures/rails5/app/app/views/layouts/mailer.html.erb +0 -13
  379. data/features/fixtures/rails5/app/app/views/layouts/mailer.text.erb +0 -1
  380. data/features/fixtures/rails5/app/config.ru +0 -5
  381. data/features/fixtures/rails5/app/config/application.rb +0 -15
  382. data/features/fixtures/rails5/app/config/boot.rb +0 -3
  383. data/features/fixtures/rails5/app/config/cable.yml +0 -9
  384. data/features/fixtures/rails5/app/config/database.yml +0 -29
  385. data/features/fixtures/rails5/app/config/environment.rb +0 -5
  386. data/features/fixtures/rails5/app/config/environments/development.rb +0 -55
  387. data/features/fixtures/rails5/app/config/environments/production.rb +0 -87
  388. data/features/fixtures/rails5/app/config/environments/rails_env.rb +0 -55
  389. data/features/fixtures/rails5/app/config/environments/test.rb +0 -55
  390. data/features/fixtures/rails5/app/config/initializers/assets.rb +0 -11
  391. data/features/fixtures/rails5/app/config/initializers/backtrace_silencers.rb +0 -7
  392. data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +0 -21
  393. data/features/fixtures/rails5/app/config/initializers/clearance.rb +0 -5
  394. data/features/fixtures/rails5/app/config/initializers/cookies_serializer.rb +0 -5
  395. data/features/fixtures/rails5/app/config/initializers/filter_parameter_logging.rb +0 -5
  396. data/features/fixtures/rails5/app/config/initializers/inflections.rb +0 -16
  397. data/features/fixtures/rails5/app/config/initializers/mime_types.rb +0 -4
  398. data/features/fixtures/rails5/app/config/initializers/new_framework_defaults.rb +0 -24
  399. data/features/fixtures/rails5/app/config/initializers/session_store.rb +0 -3
  400. data/features/fixtures/rails5/app/config/initializers/wrap_parameters.rb +0 -14
  401. data/features/fixtures/rails5/app/config/locales/devise.en.yml +0 -64
  402. data/features/fixtures/rails5/app/config/locales/en.yml +0 -23
  403. data/features/fixtures/rails5/app/config/mongoid.yml +0 -23
  404. data/features/fixtures/rails5/app/config/puma.rb +0 -47
  405. data/features/fixtures/rails5/app/config/routes.rb +0 -62
  406. data/features/fixtures/rails5/app/config/secrets.yml +0 -25
  407. data/features/fixtures/rails5/app/config/spring.rb +0 -6
  408. data/features/fixtures/rails5/app/db/migrate/20180426095545_create_users.rb +0 -17
  409. data/features/fixtures/rails5/app/db/schema.rb +0 -29
  410. data/features/fixtures/rails5/app/db/seeds.rb +0 -7
  411. data/features/fixtures/rails5/app/lib/assets/.keep +0 -0
  412. data/features/fixtures/rails5/app/lib/tasks/.keep +0 -0
  413. data/features/fixtures/rails5/app/log/.keep +0 -0
  414. data/features/fixtures/rails5/app/public/404.html +0 -67
  415. data/features/fixtures/rails5/app/public/422.html +0 -67
  416. data/features/fixtures/rails5/app/public/500.html +0 -66
  417. data/features/fixtures/rails5/app/public/apple-touch-icon-precomposed.png +0 -0
  418. data/features/fixtures/rails5/app/public/apple-touch-icon.png +0 -0
  419. data/features/fixtures/rails5/app/public/favicon.ico +0 -0
  420. data/features/fixtures/rails5/app/public/robots.txt +0 -5
  421. data/features/fixtures/rails5/app/test/controllers/.keep +0 -0
  422. data/features/fixtures/rails5/app/test/fixtures/.keep +0 -0
  423. data/features/fixtures/rails5/app/test/fixtures/files/.keep +0 -0
  424. data/features/fixtures/rails5/app/test/helpers/.keep +0 -0
  425. data/features/fixtures/rails5/app/test/integration/.keep +0 -0
  426. data/features/fixtures/rails5/app/test/mailers/.keep +0 -0
  427. data/features/fixtures/rails5/app/test/models/.keep +0 -0
  428. data/features/fixtures/rails5/app/test/test_helper.rb +0 -10
  429. data/features/fixtures/rails5/app/tmp/.keep +0 -0
  430. data/features/fixtures/rails6/.dockerignore +0 -1
  431. data/features/fixtures/rails6/Dockerfile +0 -26
  432. data/features/fixtures/rails6/app/.browserslistrc +0 -1
  433. data/features/fixtures/rails6/app/.gitignore +0 -35
  434. data/features/fixtures/rails6/app/.ruby-version +0 -1
  435. data/features/fixtures/rails6/app/Gemfile +0 -58
  436. data/features/fixtures/rails6/app/README.md +0 -24
  437. data/features/fixtures/rails6/app/Rakefile +0 -6
  438. data/features/fixtures/rails6/app/app/assets/config/manifest.js +0 -2
  439. data/features/fixtures/rails6/app/app/assets/images/.keep +0 -0
  440. data/features/fixtures/rails6/app/app/assets/stylesheets/application.css +0 -15
  441. data/features/fixtures/rails6/app/app/channels/application_cable/channel.rb +0 -4
  442. data/features/fixtures/rails6/app/app/channels/application_cable/connection.rb +0 -4
  443. data/features/fixtures/rails6/app/app/controllers/api_key_controller.rb +0 -16
  444. data/features/fixtures/rails6/app/app/controllers/app_type_controller.rb +0 -16
  445. data/features/fixtures/rails6/app/app/controllers/app_version_controller.rb +0 -21
  446. data/features/fixtures/rails6/app/app/controllers/application_controller.rb +0 -7
  447. data/features/fixtures/rails6/app/app/controllers/auto_notify_controller.rb +0 -27
  448. data/features/fixtures/rails6/app/app/controllers/before_notify_controller.rb +0 -40
  449. data/features/fixtures/rails6/app/app/controllers/breadcrumbs_controller.rb +0 -24
  450. data/features/fixtures/rails6/app/app/controllers/clearance_controller.rb +0 -33
  451. data/features/fixtures/rails6/app/app/controllers/concerns/.keep +0 -0
  452. data/features/fixtures/rails6/app/app/controllers/handled_controller.rb +0 -22
  453. data/features/fixtures/rails6/app/app/controllers/ignore_classes_controller.rb +0 -19
  454. data/features/fixtures/rails6/app/app/controllers/metadata_filters_controller.rb +0 -12
  455. data/features/fixtures/rails6/app/app/controllers/mongo_controller.rb +0 -22
  456. data/features/fixtures/rails6/app/app/controllers/project_root_controller.rb +0 -21
  457. data/features/fixtures/rails6/app/app/controllers/release_stage_controller.rb +0 -16
  458. data/features/fixtures/rails6/app/app/controllers/send_code_controller.rb +0 -16
  459. data/features/fixtures/rails6/app/app/controllers/send_environment_controller.rb +0 -8
  460. data/features/fixtures/rails6/app/app/controllers/session_tracking_controller.rb +0 -20
  461. data/features/fixtures/rails6/app/app/controllers/unhandled_controller.rb +0 -7
  462. data/features/fixtures/rails6/app/app/helpers/application_helper.rb +0 -2
  463. data/features/fixtures/rails6/app/app/javascript/channels/consumer.js +0 -6
  464. data/features/fixtures/rails6/app/app/javascript/channels/index.js +0 -5
  465. data/features/fixtures/rails6/app/app/javascript/packs/application.js +0 -9
  466. data/features/fixtures/rails6/app/app/jobs/application_job.rb +0 -7
  467. data/features/fixtures/rails6/app/app/jobs/notify_job.rb +0 -5
  468. data/features/fixtures/rails6/app/app/mailers/application_mailer.rb +0 -4
  469. data/features/fixtures/rails6/app/app/models/application_record.rb +0 -3
  470. data/features/fixtures/rails6/app/app/models/concerns/.keep +0 -0
  471. data/features/fixtures/rails6/app/app/models/mongo_model.rb +0 -6
  472. data/features/fixtures/rails6/app/app/models/user.rb +0 -3
  473. data/features/fixtures/rails6/app/app/views/layouts/application.html.erb +0 -15
  474. data/features/fixtures/rails6/app/app/views/layouts/mailer.html.erb +0 -13
  475. data/features/fixtures/rails6/app/app/views/layouts/mailer.text.erb +0 -1
  476. data/features/fixtures/rails6/app/babel.config.js +0 -70
  477. data/features/fixtures/rails6/app/config.ru +0 -5
  478. data/features/fixtures/rails6/app/config/application.rb +0 -19
  479. data/features/fixtures/rails6/app/config/boot.rb +0 -4
  480. data/features/fixtures/rails6/app/config/cable.yml +0 -13
  481. data/features/fixtures/rails6/app/config/credentials.yml.enc +0 -1
  482. data/features/fixtures/rails6/app/config/database.yml +0 -29
  483. data/features/fixtures/rails6/app/config/environment.rb +0 -5
  484. data/features/fixtures/rails6/app/config/environments/development.rb +0 -64
  485. data/features/fixtures/rails6/app/config/environments/production.rb +0 -113
  486. data/features/fixtures/rails6/app/config/environments/rails_env.rb +0 -56
  487. data/features/fixtures/rails6/app/config/environments/test.rb +0 -48
  488. data/features/fixtures/rails6/app/config/initializers/application_controller_renderer.rb +0 -8
  489. data/features/fixtures/rails6/app/config/initializers/assets.rb +0 -14
  490. data/features/fixtures/rails6/app/config/initializers/backtrace_silencers.rb +0 -7
  491. data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +0 -21
  492. data/features/fixtures/rails6/app/config/initializers/content_security_policy.rb +0 -27
  493. data/features/fixtures/rails6/app/config/initializers/cookies_serializer.rb +0 -5
  494. data/features/fixtures/rails6/app/config/initializers/filter_parameter_logging.rb +0 -5
  495. data/features/fixtures/rails6/app/config/initializers/inflections.rb +0 -16
  496. data/features/fixtures/rails6/app/config/initializers/mime_types.rb +0 -4
  497. data/features/fixtures/rails6/app/config/initializers/wrap_parameters.rb +0 -14
  498. data/features/fixtures/rails6/app/config/locales/en.yml +0 -33
  499. data/features/fixtures/rails6/app/config/mongoid.yml +0 -23
  500. data/features/fixtures/rails6/app/config/puma.rb +0 -35
  501. data/features/fixtures/rails6/app/config/routes.rb +0 -62
  502. data/features/fixtures/rails6/app/config/secrets.yml +0 -25
  503. data/features/fixtures/rails6/app/config/spring.rb +0 -6
  504. data/features/fixtures/rails6/app/config/storage.yml +0 -34
  505. data/features/fixtures/rails6/app/config/webpack/development.js +0 -5
  506. data/features/fixtures/rails6/app/config/webpack/environment.js +0 -3
  507. data/features/fixtures/rails6/app/config/webpack/production.js +0 -5
  508. data/features/fixtures/rails6/app/config/webpack/rails_env.js +0 -5
  509. data/features/fixtures/rails6/app/config/webpack/test.js +0 -5
  510. data/features/fixtures/rails6/app/config/webpacker.yml +0 -121
  511. data/features/fixtures/rails6/app/db/migrate/20180426095545_create_users.rb +0 -17
  512. data/features/fixtures/rails6/app/db/schema.rb +0 -29
  513. data/features/fixtures/rails6/app/db/seeds.rb +0 -7
  514. data/features/fixtures/rails6/app/lib/assets/.keep +0 -0
  515. data/features/fixtures/rails6/app/lib/tasks/.keep +0 -0
  516. data/features/fixtures/rails6/app/log/.keep +0 -0
  517. data/features/fixtures/rails6/app/package.json +0 -15
  518. data/features/fixtures/rails6/app/postcss.config.js +0 -12
  519. data/features/fixtures/rails6/app/public/404.html +0 -67
  520. data/features/fixtures/rails6/app/public/422.html +0 -67
  521. data/features/fixtures/rails6/app/public/500.html +0 -66
  522. data/features/fixtures/rails6/app/public/apple-touch-icon-precomposed.png +0 -0
  523. data/features/fixtures/rails6/app/public/apple-touch-icon.png +0 -0
  524. data/features/fixtures/rails6/app/public/favicon.ico +0 -0
  525. data/features/fixtures/rails6/app/public/robots.txt +0 -1
  526. data/features/fixtures/rails6/app/storage/.keep +0 -0
  527. data/features/fixtures/rails6/app/test/application_system_test_case.rb +0 -5
  528. data/features/fixtures/rails6/app/test/channels/application_cable/connection_test.rb +0 -11
  529. data/features/fixtures/rails6/app/test/controllers/.keep +0 -0
  530. data/features/fixtures/rails6/app/test/fixtures/.keep +0 -0
  531. data/features/fixtures/rails6/app/test/fixtures/files/.keep +0 -0
  532. data/features/fixtures/rails6/app/test/helpers/.keep +0 -0
  533. data/features/fixtures/rails6/app/test/integration/.keep +0 -0
  534. data/features/fixtures/rails6/app/test/mailers/.keep +0 -0
  535. data/features/fixtures/rails6/app/test/models/.keep +0 -0
  536. data/features/fixtures/rails6/app/test/system/.keep +0 -0
  537. data/features/fixtures/rails6/app/test/test_helper.rb +0 -13
  538. data/features/fixtures/rails6/app/tmp/.keep +0 -0
  539. data/features/fixtures/rails6/app/yarn.lock +0 -6082
  540. data/features/fixtures/resque/.dockerignore +0 -1
  541. data/features/fixtures/resque/Dockerfile +0 -14
  542. data/features/fixtures/resque/Gemfile +0 -6
  543. data/features/fixtures/resque/Rakefile +0 -4
  544. data/features/fixtures/resque/app.rb +0 -12
  545. data/features/fixtures/sidekiq/.dockerignore +0 -2
  546. data/features/fixtures/sidekiq/Dockerfile +0 -17
  547. data/features/fixtures/sidekiq/app/Gemfile +0 -7
  548. data/features/fixtures/sidekiq/app/Rakefile.rb +0 -14
  549. data/features/fixtures/sidekiq/app/app.rb +0 -35
  550. data/features/fixtures/sidekiq/app/initializers/HandledError.rb +0 -3
  551. data/features/fixtures/sidekiq/app/initializers/UnhandledError.rb +0 -3
  552. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_false.json +0 -11
  553. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_true.json +0 -12
  554. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_false.json +0 -11
  555. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_true.json +0 -12
  556. data/features/fixtures/sinatra1/.dockerignore +0 -1
  557. data/features/fixtures/sinatra1/Dockerfile +0 -13
  558. data/features/fixtures/sinatra1/Gemfile +0 -4
  559. data/features/fixtures/sinatra1/app.rb +0 -9
  560. data/features/fixtures/sinatra2/.dockerignore +0 -1
  561. data/features/fixtures/sinatra2/Dockerfile +0 -13
  562. data/features/fixtures/sinatra2/Gemfile +0 -4
  563. data/features/fixtures/sinatra2/app.rb +0 -9
  564. data/features/plain_features/add_tab.feature +0 -49
  565. data/features/plain_features/app_type.feature +0 -8
  566. data/features/plain_features/app_version.feature +0 -8
  567. data/features/plain_features/auto_notify.feature +0 -7
  568. data/features/plain_features/delivery.feature +0 -20
  569. data/features/plain_features/exception_data.feature +0 -50
  570. data/features/plain_features/filters.feature +0 -14
  571. data/features/plain_features/handled_errors.feature +0 -42
  572. data/features/plain_features/ignore_classes.feature +0 -11
  573. data/features/plain_features/ignore_report.feature +0 -12
  574. data/features/plain_features/proxies.feature +0 -25
  575. data/features/plain_features/release_stages.feature +0 -20
  576. data/features/plain_features/report_api_key.feature +0 -14
  577. data/features/plain_features/report_severity.feature +0 -15
  578. data/features/plain_features/report_stack_frames.feature +0 -49
  579. data/features/plain_features/report_user.feature +0 -45
  580. data/features/plain_features/unhandled_errors.feature +0 -33
  581. data/features/rails_features/api_key.feature +0 -15
  582. data/features/rails_features/app_type.feature +0 -24
  583. data/features/rails_features/app_version.feature +0 -26
  584. data/features/rails_features/auto_capture_sessions.feature +0 -34
  585. data/features/rails_features/auto_notify.feature +0 -41
  586. data/features/rails_features/before_notify.feature +0 -44
  587. data/features/rails_features/breadcrumbs.feature +0 -43
  588. data/features/rails_features/handled.feature +0 -42
  589. data/features/rails_features/ignore_classes.feature +0 -14
  590. data/features/rails_features/meta_data_filters.feature +0 -16
  591. data/features/rails_features/mongo_breadcrumbs.feature +0 -26
  592. data/features/rails_features/project_root.feature +0 -35
  593. data/features/rails_features/release_stage.feature +0 -27
  594. data/features/rails_features/send_code.feature +0 -18
  595. data/features/rails_features/send_environment.feature +0 -13
  596. data/features/rails_features/unhandled.feature +0 -16
  597. data/features/rails_features/user_info.feature +0 -52
  598. data/features/sidekiq.feature +0 -30
  599. data/features/steps/ruby_notifier_steps.rb +0 -75
  600. data/features/support/env.rb +0 -23
  601. data/issue_template.md +0 -48
  602. data/spec/breadcrumbs/breadcrumb_spec.rb +0 -93
  603. data/spec/breadcrumbs/validator_spec.rb +0 -176
  604. data/spec/bugsnag_spec.rb +0 -366
  605. data/spec/cleaner_spec.rb +0 -350
  606. data/spec/configuration_spec.rb +0 -445
  607. data/spec/fixtures/apps/rails-initializer-config/Gemfile +0 -9
  608. data/spec/fixtures/apps/rails-initializer-config/config.ru +0 -16
  609. data/spec/fixtures/apps/rails-initializer-config/config/initializers/bugsnag.rb +0 -3
  610. data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +0 -9
  611. data/spec/fixtures/apps/rails-invalid-initializer-config/config.ru +0 -16
  612. data/spec/fixtures/apps/rails-invalid-initializer-config/config/initializers/bugsnag.rb +0 -3
  613. data/spec/fixtures/apps/rails-no-config/Gemfile +0 -9
  614. data/spec/fixtures/apps/rails-no-config/config.ru +0 -16
  615. data/spec/fixtures/apps/scripts/Gemfile +0 -3
  616. data/spec/fixtures/apps/scripts/configure_invalid_key.rb +0 -5
  617. data/spec/fixtures/apps/scripts/configure_key.rb +0 -5
  618. data/spec/fixtures/apps/scripts/no_config.rb +0 -3
  619. data/spec/fixtures/crashes/end_of_file.rb +0 -9
  620. data/spec/fixtures/crashes/short_file.rb +0 -1
  621. data/spec/fixtures/crashes/start_of_file.rb +0 -9
  622. data/spec/fixtures/middleware/internal_info_setter.rb +0 -11
  623. data/spec/fixtures/middleware/public_info_setter.rb +0 -11
  624. data/spec/fixtures/tasks/Rakefile +0 -26
  625. data/spec/helper_spec.rb +0 -131
  626. data/spec/integration_spec.rb +0 -107
  627. data/spec/integrations/clearance_user_spec.rb +0 -38
  628. data/spec/integrations/logger_spec.rb +0 -134
  629. data/spec/integrations/mailman_spec.rb +0 -83
  630. data/spec/integrations/mongo_spec.rb +0 -262
  631. data/spec/integrations/que_spec.rb +0 -94
  632. data/spec/integrations/rack_spec.rb +0 -232
  633. data/spec/integrations/rails3_request_spec.rb +0 -67
  634. data/spec/integrations/rake_spec.rb +0 -71
  635. data/spec/integrations/resque_spec.rb +0 -99
  636. data/spec/integrations/shoryuken_spec.rb +0 -70
  637. data/spec/integrations/sidekiq_spec.rb +0 -137
  638. data/spec/integrations/warden_user_spec.rb +0 -41
  639. data/spec/middleware/exception_meta_data_spec.rb +0 -104
  640. data/spec/middleware_spec.rb +0 -254
  641. data/spec/middleware_stack_spec.rb +0 -151
  642. data/spec/report_spec.rb +0 -1580
  643. data/spec/session_tracker_spec.rb +0 -156
  644. data/spec/spec_helper.rb +0 -91
  645. data/spec/stacktrace_spec.rb +0 -197
  646. data/spec/utility/circular_buffer_spec.rb +0 -98
@@ -15,65 +15,134 @@ require "bugsnag/breadcrumbs/breadcrumbs"
15
15
 
16
16
  module Bugsnag
17
17
  class Configuration
18
+ # Your Integration API Key
19
+ # @return [String, nil]
18
20
  attr_accessor :api_key
21
+
22
+ # The current stage of the release process, e.g. 'development', production'
23
+ # @return [String, nil]
19
24
  attr_accessor :release_stage
25
+
26
+ # A list of which release stages should cause notifications to be sent
27
+ # @return [Array<String>, nil]
20
28
  attr_accessor :notify_release_stages
29
+
30
+ # Whether notifications should automatically be sent
31
+ # @return [Boolean]
21
32
  attr_accessor :auto_notify
33
+
34
+ # @return [String, nil]
22
35
  attr_accessor :ca_file
36
+
37
+ # Whether to automatically attach the Rack environment to notifications
38
+ # @return [Boolean]
23
39
  attr_accessor :send_environment
40
+
41
+ # Whether code snippets from the exception stacktrace should be sent with notifications
42
+ # @return [Boolean]
24
43
  attr_accessor :send_code
44
+
45
+ # Any stacktrace lines that match this path will be marked as 'in project'
46
+ # @return [String, nil]
25
47
  attr_accessor :project_root
48
+
49
+ # The current version of your application
50
+ # @return [String, nil]
26
51
  attr_accessor :app_version
27
- attr_accessor :app_type
52
+
53
+ # A list of keys that should be filtered out from the report and breadcrumb
54
+ # metadata before sending them to Bugsnag
55
+ # @return [Set<String, Regexp>]
28
56
  attr_accessor :meta_data_filters
57
+
58
+ # The logger to use for Bugsnag log messages
59
+ # @return [Logger]
29
60
  attr_accessor :logger
61
+
62
+ # The middleware stack that will run on every notification
63
+ # @return [MiddlewareStack]
30
64
  attr_accessor :middleware
65
+
66
+ # @api private
67
+ # @return [MiddlewareStack]
31
68
  attr_accessor :internal_middleware
69
+
70
+ # The host address of the HTTP proxy that should be used when making requests
71
+ # @see parse_proxy
72
+ # @return [String, nil]
32
73
  attr_accessor :proxy_host
74
+
75
+ # The port number of the HTTP proxy that should be used when making requests
76
+ # @see parse_proxy
77
+ # @return [Integer, nil]
33
78
  attr_accessor :proxy_port
79
+
80
+ # The user that should be used when making requests via a HTTP proxy
81
+ # @see parse_proxy
82
+ # @return [String, nil]
34
83
  attr_accessor :proxy_user
84
+
85
+ # The password for the user that should be used when making requests via a HTTP proxy
86
+ # @see parse_proxy
87
+ # @return [String, nil]
35
88
  attr_accessor :proxy_password
89
+
90
+ # The HTTP request timeout, defaults to 15 seconds
91
+ # @return [Integer]
36
92
  attr_accessor :timeout
93
+
94
+ # The name or descriptor of the Ruby server host
95
+ # @return [String]
37
96
  attr_accessor :hostname
97
+
98
+ # @api private
99
+ # @return [Hash{String => String}]
38
100
  attr_accessor :runtime_versions
101
+
102
+ # Exception classes that will be discarded and not sent to Bugsnag
103
+ # @return [Set<String, Regexp>]
39
104
  attr_accessor :discard_classes
105
+
106
+ # Whether Bugsnag should automatically record sessions
107
+ # @return [Boolean]
40
108
  attr_accessor :auto_capture_sessions
41
109
 
42
- ##
43
110
  # @deprecated Use {#discard_classes} instead
111
+ # @return [Set<Class, Proc>]
44
112
  attr_accessor :ignore_classes
45
113
 
46
- ##
47
- # @return [String] URL error notifications will be delivered to
114
+ # The URL error notifications will be delivered to
115
+ # @return [String]
48
116
  attr_reader :notify_endpoint
49
117
  alias :endpoint :notify_endpoint
50
118
 
51
- ##
52
- # @return [String] URL session notifications will be delivered to
119
+ # The URL session notifications will be delivered to
120
+ # @return [String]
53
121
  attr_reader :session_endpoint
54
122
 
55
- ##
56
- # @return [Boolean] whether any sessions types will be delivered
123
+ # Whether sessions will be delivered
124
+ # @return [Boolean]
57
125
  attr_reader :enable_sessions
58
126
 
59
- ##
60
- # @return [Array<String>] strings indicating allowable automatic breadcrumb types
127
+ # A list of strings indicating allowable automatic breadcrumb types
128
+ # @see Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES
129
+ # @return [Array<String>]
61
130
  attr_accessor :enabled_automatic_breadcrumb_types
62
131
 
63
- ##
64
- # @return [Array<#call>] callables to be run before a breadcrumb is logged
132
+ # Callables to be run before a breadcrumb is logged
133
+ # @return [Array<#call>]
65
134
  attr_accessor :before_breadcrumb_callbacks
66
135
 
67
- ##
68
- # @return [Integer] the maximum allowable amount of breadcrumbs per thread
136
+ # The maximum allowable amount of breadcrumbs per thread
137
+ # @return [Integer]
69
138
  attr_reader :max_breadcrumbs
70
139
 
71
- ##
72
- # @return [Regexp] matching file paths out of project
140
+ #
141
+ # @return [Regexp]
73
142
  attr_accessor :vendor_path
74
143
 
75
- ##
76
- # @return [Array]
144
+ # @api private
145
+ # @return [Array<String>]
77
146
  attr_reader :scopes_to_filter
78
147
 
79
148
  API_KEY_REGEX = /[0-9a-f]{32}/i
@@ -97,6 +166,7 @@ module Bugsnag
97
166
  # Path to vendored code. Used to mark file paths as out of project.
98
167
  DEFAULT_VENDOR_PATH = %r{^(vendor/|\.bundle/)}
99
168
 
169
+ # @api private
100
170
  DEFAULT_SCOPES_TO_FILTER = ['events.metaData', 'events.breadcrumbs.metaData'].freeze
101
171
 
102
172
  alias :track_sessions :auto_capture_sessions
@@ -116,6 +186,7 @@ module Bugsnag
116
186
  self.runtime_versions["ruby"] = RUBY_VERSION
117
187
  self.runtime_versions["jruby"] = JRUBY_VERSION if defined?(JRUBY_VERSION)
118
188
  self.timeout = 15
189
+ self.release_stage = ENV['BUGSNAG_RELEASE_STAGE']
119
190
  self.notify_release_stages = nil
120
191
  self.auto_capture_sessions = true
121
192
 
@@ -177,6 +248,7 @@ module Bugsnag
177
248
  # Gets the delivery_method that Bugsnag will use to communicate with the
178
249
  # notification endpoint.
179
250
  #
251
+ # @return [Symbol]
180
252
  def delivery_method
181
253
  @delivery_method || @default_delivery_method || :thread_queue
182
254
  end
@@ -185,6 +257,10 @@ module Bugsnag
185
257
  # Sets the delivery_method that Bugsnag will use to communicate with the
186
258
  # notification endpoint.
187
259
  #
260
+ # The default delivery methods are ':thread_queue' and ':synchronous'.
261
+ #
262
+ # @param delivery_method [Symbol]
263
+ # @return [void]
188
264
  def delivery_method=(delivery_method)
189
265
  @delivery_method = delivery_method
190
266
  end
@@ -193,19 +269,75 @@ module Bugsnag
193
269
  # Used to set a new default delivery method that will be used if one is not
194
270
  # set with #delivery_method.
195
271
  #
272
+ # @api private
273
+ #
274
+ # @param delivery_method [Symbol]
275
+ # @return [void]
196
276
  def default_delivery_method=(delivery_method)
197
277
  @default_delivery_method = delivery_method
198
278
  end
199
279
 
280
+ ##
281
+ # Get the type of application executing the current code
282
+ #
283
+ # This is usually used to represent if you are running in a Rails server,
284
+ # Sidekiq job, Rake task etc... Bugsnag will automatically detect most
285
+ # application types for you
286
+ #
287
+ # @return [String, nil]
288
+ def app_type
289
+ @app_type || @detected_app_type
290
+ end
291
+
292
+ ##
293
+ # Set the type of application executing the current code
294
+ #
295
+ # If an app_type is set, this will be used instead of the automatically
296
+ # detected app_type that Bugsnag would otherwise use
297
+ #
298
+ # @param app_type [String]
299
+ # @return [void]
300
+ def app_type=(app_type)
301
+ @app_type = app_type
302
+ end
303
+
304
+ ##
305
+ # Get the detected app_type, which is used when one isn't set explicitly
306
+ #
307
+ # @api private
308
+ #
309
+ # @return [String, nil]
310
+ def detected_app_type
311
+ @detected_app_type
312
+ end
313
+
314
+ ##
315
+ # Set the detected app_type, which is used when one isn't set explicitly
316
+ #
317
+ # This allows Bugsnag's integrations to say 'this is a Rails app' while
318
+ # allowing the user to overwrite this if they wish
319
+ #
320
+ # @api private
321
+ #
322
+ # @param app_type [String]
323
+ # @return [void]
324
+ def detected_app_type=(app_type)
325
+ @detected_app_type = app_type
326
+ end
327
+
200
328
  ##
201
329
  # Indicates whether the notifier should send a notification based on the
202
330
  # configured release stage.
331
+ #
332
+ # @return [Boolean]
203
333
  def should_notify_release_stage?
204
334
  @release_stage.nil? || @notify_release_stages.nil? || @notify_release_stages.include?(@release_stage)
205
335
  end
206
336
 
207
337
  ##
208
338
  # Tests whether the configured API key is valid.
339
+ #
340
+ # @return [Boolean]
209
341
  def valid_api_key?
210
342
  !api_key.nil? && api_key =~ API_KEY_REGEX
211
343
  end
@@ -213,48 +345,68 @@ module Bugsnag
213
345
  ##
214
346
  # Returns the array of data that will be automatically attached to every
215
347
  # error notification.
348
+ #
349
+ # @return [Hash]
216
350
  def request_data
217
351
  Thread.current[THREAD_LOCAL_NAME] ||= {}
218
352
  end
219
353
 
220
354
  ##
221
355
  # Sets an entry in the array of data attached to every error notification.
356
+ #
357
+ # @param key [String, #to_s]
358
+ # @param value [Object]
359
+ # @return [void]
222
360
  def set_request_data(key, value)
223
361
  self.request_data[key] = value
224
362
  end
225
363
 
226
364
  ##
227
365
  # Unsets an entry in the array of data attached to every error notification.
366
+ #
367
+ # @param (see set_request_data)
368
+ # @return [void]
228
369
  def unset_request_data(key, value)
229
370
  self.request_data.delete(key)
230
371
  end
231
372
 
232
373
  ##
233
374
  # Clears the array of data attached to every error notification.
375
+ #
376
+ # @return [void]
234
377
  def clear_request_data
235
378
  Thread.current[THREAD_LOCAL_NAME] = nil
236
379
  end
237
380
 
238
381
  ##
239
382
  # Logs an info level message
383
+ #
384
+ # @param message [String, #to_s] The message to log
240
385
  def info(message)
241
386
  logger.info(PROG_NAME) { message }
242
387
  end
243
388
 
244
389
  ##
245
390
  # Logs a warning level message
391
+ #
392
+ # @param (see info)
246
393
  def warn(message)
247
394
  logger.warn(PROG_NAME) { message }
248
395
  end
249
396
 
250
397
  ##
251
398
  # Logs a debug level message
399
+ #
400
+ # @param (see info)
252
401
  def debug(message)
253
402
  logger.debug(PROG_NAME) { message }
254
403
  end
255
404
 
256
405
  ##
257
406
  # Parses and sets proxy from a uri
407
+ #
408
+ # @param uri [String, #to_s] The URI to parse and extract proxy details from
409
+ # @return [void]
258
410
  def parse_proxy(uri)
259
411
  proxy = URI.parse(uri)
260
412
  self.proxy_host = proxy.host
@@ -266,7 +418,8 @@ module Bugsnag
266
418
  ##
267
419
  # Sets the maximum allowable amount of breadcrumbs
268
420
  #
269
- # @param [Integer] the new maximum breadcrumb limit
421
+ # @param new_max_breadcrumbs [Integer] the new maximum breadcrumb limit
422
+ # @return [void]
270
423
  def max_breadcrumbs=(new_max_breadcrumbs)
271
424
  @max_breadcrumbs = new_max_breadcrumbs
272
425
  breadcrumbs.max_items = new_max_breadcrumbs
@@ -282,9 +435,10 @@ module Bugsnag
282
435
 
283
436
  # Sets the notification endpoint
284
437
  #
285
- # @param new_notify_endpoint [String] The URL to deliver error notifications to
286
- #
287
438
  # @deprecated Use {#set_endpoints} instead
439
+ #
440
+ # @param new_notify_endpoint [String] The URL to deliver error notifications to
441
+ # @return [void]
288
442
  def endpoint=(new_notify_endpoint)
289
443
  warn("The 'endpoint' configuration option is deprecated. The 'set_endpoints' method should be used instead")
290
444
  set_endpoints(new_notify_endpoint, session_endpoint) # Pass the existing session_endpoint through so it doesn't get overwritten
@@ -293,9 +447,10 @@ module Bugsnag
293
447
  ##
294
448
  # Sets the sessions endpoint
295
449
  #
296
- # @param new_session_endpoint [String] The URL to deliver session notifications to
297
- #
298
450
  # @deprecated Use {#set_endpoints} instead
451
+ #
452
+ # @param new_session_endpoint [String] The URL to deliver session notifications to
453
+ # @return [void]
299
454
  def session_endpoint=(new_session_endpoint)
300
455
  warn("The 'session_endpoint' configuration option is deprecated. The 'set_endpoints' method should be used instead")
301
456
  set_endpoints(notify_endpoint, new_session_endpoint) # Pass the existing notify_endpoint through so it doesn't get overwritten
@@ -306,18 +461,48 @@ module Bugsnag
306
461
  #
307
462
  # @param new_notify_endpoint [String] The URL to deliver error notifications to
308
463
  # @param new_session_endpoint [String] The URL to deliver session notifications to
464
+ # @return [void]
309
465
  def set_endpoints(new_notify_endpoint, new_session_endpoint)
310
466
  @notify_endpoint = new_notify_endpoint
311
467
  @session_endpoint = new_session_endpoint
312
468
  end
313
469
 
314
470
  ##
315
- # Disables session tracking and delivery. Cannot be undone
471
+ # Disables session tracking and delivery. Cannot be undone
472
+ #
473
+ # @return [void]
316
474
  def disable_sessions
317
475
  self.auto_capture_sessions = false
318
476
  @enable_sessions = false
319
477
  end
320
478
 
479
+ ##
480
+ # Add the given callback to the list of on_error callbacks
481
+ #
482
+ # The on_error callbacks will be called when an error is captured or reported
483
+ # and are passed a {Bugsnag::Report} object
484
+ #
485
+ # Returning false from an on_error callback will cause the error to be ignored
486
+ # and will prevent any remaining callbacks from being called
487
+ #
488
+ # @param callback [Proc]
489
+ # @return [void]
490
+ def add_on_error(callback)
491
+ middleware.use(callback)
492
+ end
493
+
494
+ ##
495
+ # Remove the given callback from the list of on_error callbacks
496
+ #
497
+ # Note that this must be the same Proc instance that was passed to
498
+ # {#add_on_error}, otherwise it will not be removed
499
+ #
500
+ # @param callback [Proc]
501
+ # @return [void]
502
+ def remove_on_error(callback)
503
+ middleware.remove(callback)
504
+ end
505
+
321
506
  private
322
507
 
323
508
  attr_writer :scopes_to_filter
@@ -58,7 +58,7 @@ module Bugsnag
58
58
  def default_headers
59
59
  {
60
60
  "Content-Type" => "application/json",
61
- "Bugsnag-Sent-At" => Time.now().utc().strftime('%Y-%m-%dT%H:%M:%S')
61
+ "Bugsnag-Sent-At" => Time.now.utc.iso8601(3)
62
62
  }
63
63
  end
64
64
  end
@@ -9,8 +9,14 @@ module Bugsnag
9
9
 
10
10
  class << self
11
11
  ##
12
- # Queues a given payload to be delivered asynchronously.
13
- def deliver(url, body, configuration, options={})
12
+ # Queues a given payload to be delivered asynchronously
13
+ #
14
+ # @param url [String]
15
+ # @param get_payload [Proc] A Proc that will return the payload.
16
+ # @param configuration [Bugsnag::Configuration]
17
+ # @param options [Hash]
18
+ # @return [void]
19
+ def serialize_and_deliver(url, get_payload, configuration, options={})
14
20
  @configuration = configuration
15
21
 
16
22
  start_once!
@@ -21,7 +27,16 @@ module Bugsnag
21
27
  end
22
28
 
23
29
  # Add delivery to the worker thread
24
- @queue.push proc { super(url, body, configuration, options) }
30
+ @queue.push(proc do
31
+ begin
32
+ payload = get_payload.call
33
+ rescue StandardError => e
34
+ configuration.warn("Notification to #{url} failed, #{e.inspect}")
35
+ configuration.warn(e.backtrace)
36
+ end
37
+
38
+ Synchronous.deliver(url, payload, configuration, options) unless payload.nil?
39
+ end)
25
40
  end
26
41
 
27
42
  private