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
@@ -4,7 +4,7 @@ require 'json'
4
4
 
5
5
 
6
6
  module Bugsnag
7
- module Helpers
7
+ module Helpers # rubocop:todo Metrics/ModuleLength
8
8
  MAX_STRING_LENGTH = 3072
9
9
  MAX_PAYLOAD_LENGTH = 512000
10
10
  MAX_ARRAY_LENGTH = 80
@@ -19,8 +19,12 @@ module Bugsnag
19
19
 
20
20
  return value unless payload_too_long?(value)
21
21
 
22
+ # Truncate exception messages
23
+ reduced_value = truncate_exception_messages(value)
24
+ return reduced_value unless payload_too_long?(reduced_value)
25
+
22
26
  # Trim metadata
23
- reduced_value = trim_metadata(value)
27
+ reduced_value = trim_metadata(reduced_value)
24
28
  return reduced_value unless payload_too_long?(reduced_value)
25
29
 
26
30
  # Trim code from stacktrace
@@ -71,6 +75,15 @@ module Bugsnag
71
75
 
72
76
  TRUNCATION_INFO = '[TRUNCATED]'
73
77
 
78
+ ##
79
+ # Truncate exception messages
80
+ def self.truncate_exception_messages(payload)
81
+ extract_exception(payload) do |exception|
82
+ exception[:message] = trim_as_string(exception[:message])
83
+ end
84
+ payload
85
+ end
86
+
74
87
  ##
75
88
  # Remove all code from stacktraces
76
89
  def self.trim_stacktrace_code(payload)
@@ -94,11 +107,11 @@ module Bugsnag
94
107
 
95
108
  ##
96
109
  # Wrapper for trimming stacktraces
97
- def self.extract_exception(payload)
110
+ def self.extract_exception(payload, &block)
98
111
  valid_payload = payload.is_a?(Hash) && payload[:events].respond_to?(:map)
99
112
  return unless valid_payload && block_given?
100
113
  payload[:events].each do |event|
101
- event[:exceptions].each { |exception| yield exception }
114
+ event[:exceptions].each(&block)
102
115
  end
103
116
  end
104
117
 
@@ -10,11 +10,23 @@ end
10
10
  module Delayed
11
11
  module Plugins
12
12
  class Bugsnag < ::Delayed::Plugin
13
+ ##
14
+ # DelayedJob doesn't have an easy way to fetch its version, but we can use
15
+ # Gem.loaded_specs to get the version instead
16
+ def self.delayed_job_version
17
+ ::Gem.loaded_specs['delayed_job'].version.to_s
18
+ rescue StandardError
19
+ # Explicitly return nil to prevent Rubocop complaining of a suppressed exception
20
+ nil
21
+ end
22
+
13
23
  callbacks do |lifecycle|
14
24
  lifecycle.around(:invoke_job) do |job, *args, &block|
15
25
  begin
16
- ::Bugsnag.configuration.app_type = 'delayed_job'
26
+ ::Bugsnag.configuration.detected_app_type = 'delayed_job'
27
+ ::Bugsnag.configuration.runtime_versions['delayed_job'] = delayed_job_version if defined?(::Gem)
17
28
  ::Bugsnag.configuration.set_request_data(:delayed_job, job)
29
+
18
30
  block.call(job, *args)
19
31
  rescue Exception => exception
20
32
  ::Bugsnag.notify(exception, true) do |report|
@@ -11,7 +11,8 @@ module Bugsnag
11
11
 
12
12
  def initialize
13
13
  Bugsnag.configuration.internal_middleware.use(Bugsnag::Middleware::Mailman)
14
- Bugsnag.configuration.app_type = "mailman"
14
+ Bugsnag.configuration.detected_app_type = "mailman"
15
+ Bugsnag.configuration.runtime_versions["mailman"] = ::Mailman::VERSION
15
16
  end
16
17
 
17
18
  ##
@@ -37,7 +37,8 @@ if defined?(::Que)
37
37
  end
38
38
  end
39
39
 
40
- Bugsnag.configuration.app_type ||= "que"
40
+ Bugsnag.configuration.detected_app_type = "que"
41
+
41
42
  if defined?(::Que::Version)
42
43
  Bugsnag.configuration.runtime_versions["que"] = ::Que::Version
43
44
  elsif defined?(::Que::VERSION)
@@ -30,7 +30,9 @@ module Bugsnag
30
30
  config.middleware.insert_before(Bugsnag::Middleware::Callbacks, Bugsnag::Middleware::ClearanceUser) if defined?(Clearance)
31
31
 
32
32
  # Set environment data for payload
33
- config.app_type ||= "rack"
33
+ # Note we only set the detected app_type if it's not already set. This
34
+ # ensures we don't overwrite the value set by the Railtie
35
+ config.detected_app_type ||= "rack"
34
36
  config.runtime_versions["rack"] = ::Rack.release if defined?(::Rack)
35
37
  config.runtime_versions["sinatra"] = ::Sinatra::VERSION if defined?(::Sinatra)
36
38
  end
@@ -25,7 +25,7 @@ module Bugsnag
25
25
  # initializer. If not, the key will be validated in after_initialize.
26
26
  Bugsnag.configure(false) do |config|
27
27
  config.logger = ::Rails.logger
28
- config.release_stage = ENV["BUGSNAG_RELEASE_STAGE"] || ::Rails.env.to_s
28
+ config.release_stage ||= ::Rails.env.to_s
29
29
  config.project_root = ::Rails.root.to_s
30
30
  config.middleware.insert_before Bugsnag::Middleware::Callbacks, Bugsnag::Middleware::Rails3Request
31
31
  config.runtime_versions["rails"] = ::Rails::VERSION::STRING
@@ -43,7 +43,9 @@ module Bugsnag
43
43
 
44
44
  Bugsnag::Rails::DEFAULT_RAILS_BREADCRUMBS.each { |event| event_subscription(event) }
45
45
 
46
- Bugsnag.configuration.app_type = "rails"
46
+ # Make sure we don't overwrite the value set by another integration because
47
+ # Rails is a less specific app_type (e.g. Que sets this earlier than us)
48
+ Bugsnag.configuration.detected_app_type ||= "rails"
47
49
  end
48
50
 
49
51
  # Configure meta_data_filters after initialization, so that rails initializers
@@ -63,9 +65,19 @@ module Bugsnag
63
65
 
64
66
  initializer "bugsnag.use_rack_middleware" do |app|
65
67
  begin
66
- app.config.middleware.insert_after ActionDispatch::DebugExceptions, Bugsnag::Rack
67
- rescue
68
- app.config.middleware.use Bugsnag::Rack
68
+ begin
69
+ app.config.middleware.insert_after ActionDispatch::DebugExceptions, Bugsnag::Rack
70
+ rescue
71
+ app.config.middleware.use Bugsnag::Rack
72
+ end
73
+ rescue FrozenError
74
+ # This can happen when running RSpec if there is a crash after Rails has
75
+ # started booting but before we've added our middleware. If we don't ignore
76
+ # this error then the stacktrace blames Bugsnag, which isn't accurate as
77
+ # the middleware will only be frozen if an earlier error occurs
78
+ # See this comment for more info:
79
+ # https://github.com/thoughtbot/factory_bot_rails/issues/303#issuecomment-434560625
80
+ Bugsnag.configuration.warn("Unable to add Bugsnag::Rack middleware as the middleware stack is frozen")
69
81
  end
70
82
  end
71
83
 
@@ -11,7 +11,8 @@ if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.0')
11
11
 
12
12
  # Executes the rake task with Bugsnag setup with contextual data.
13
13
  def execute(args = nil)
14
- Bugsnag.configuration.app_type ||= "rake"
14
+ Bugsnag.configuration.detected_app_type = "rake"
15
+
15
16
  old_task = Bugsnag.configuration.request_data[:bugsnag_running_task]
16
17
  Bugsnag.configuration.set_request_data :bugsnag_running_task, self
17
18
  Bugsnag.configuration.runtime_versions["rake"] = ::Rake::VERSION
@@ -42,7 +43,8 @@ else
42
43
  ##
43
44
  # Executes the rake task with Bugsnag setup with contextual data.
44
45
  def execute_with_bugsnag(args=nil)
45
- Bugsnag.configuration.app_type ||= "rake"
46
+ Bugsnag.configuration.detected_app_type = "rake"
47
+
46
48
  old_task = Bugsnag.configuration.request_data[:bugsnag_running_task]
47
49
  Bugsnag.configuration.set_request_data :bugsnag_running_task, self
48
50
  Bugsnag.configuration.runtime_versions["rake"] = ::Rake::VERSION
@@ -58,16 +58,23 @@ Resque::Failure::Bugsnag = Bugsnag::Resque
58
58
  # Auto-load the failure backend
59
59
  Bugsnag::Resque.add_failure_backend
60
60
 
61
- if Resque::Worker.new(:bugsnag_fork_check).fork_per_job?
61
+ worker = Resque::Worker.new(:bugsnag_fork_check)
62
+
63
+ # If at_exit hooks are not enabled then we can't use the thread queue delivery
64
+ # method because it relies on an at_exit hook to ensure the queue is flushed
65
+ can_use_thread_queue = worker.respond_to?(:run_at_exit_hooks) && worker.run_at_exit_hooks
66
+ default_delivery_method = can_use_thread_queue ? :thread_queue : :synchronous
67
+
68
+ if worker.fork_per_job?
62
69
  Resque.after_fork do
63
- Bugsnag.configuration.app_type = "resque"
64
- Bugsnag.configuration.default_delivery_method = :synchronous
70
+ Bugsnag.configuration.detected_app_type = "resque"
71
+ Bugsnag.configuration.default_delivery_method = default_delivery_method
65
72
  Bugsnag.configuration.runtime_versions["resque"] = ::Resque::VERSION
66
73
  end
67
74
  else
68
75
  Resque.before_first_fork do
69
- Bugsnag.configuration.app_type = "resque"
70
- Bugsnag.configuration.default_delivery_method = :synchronous
76
+ Bugsnag.configuration.detected_app_type = "resque"
77
+ Bugsnag.configuration.default_delivery_method = default_delivery_method
71
78
  Bugsnag.configuration.runtime_versions["resque"] = ::Resque::VERSION
72
79
  end
73
80
  end
@@ -11,8 +11,9 @@ module Bugsnag
11
11
 
12
12
  def initialize
13
13
  Bugsnag.configure do |config|
14
- config.app_type ||= "shoryuken"
14
+ config.detected_app_type = "shoryuken"
15
15
  config.default_delivery_method = :synchronous
16
+ config.runtime_versions["shoryuken"] = ::Shoryuken::VERSION
16
17
  end
17
18
  end
18
19
 
@@ -13,8 +13,7 @@ module Bugsnag
13
13
 
14
14
  def initialize
15
15
  Bugsnag.configuration.internal_middleware.use(Bugsnag::Middleware::Sidekiq)
16
- Bugsnag.configuration.app_type = "sidekiq"
17
- Bugsnag.configuration.default_delivery_method = :synchronous
16
+ Bugsnag.configuration.detected_app_type = "sidekiq"
18
17
  Bugsnag.configuration.runtime_versions["sidekiq"] = ::Sidekiq::VERSION
19
18
  end
20
19
 
@@ -24,6 +24,7 @@ module Bugsnag::Middleware
24
24
  job_data[:active_job] = job.payload_object.job_data if job.payload_object.respond_to?(:job_data)
25
25
  payload_data = construct_job_payload(job.payload_object)
26
26
  report.context = payload_data[:display_name] if payload_data.include?(:display_name)
27
+ report.context ||= payload_data[:class] if payload_data.include?(:class)
27
28
  job_data[:payload] = payload_data
28
29
  end
29
30
 
@@ -1,3 +1,5 @@
1
+ require "bugsnag/on_error_callbacks"
2
+
1
3
  module Bugsnag
2
4
  class MiddlewareStack
3
5
  ##
@@ -65,11 +67,26 @@ module Bugsnag
65
67
  end
66
68
  end
67
69
 
70
+ ##
71
+ # Disable the given middleware. This removes them from the list of
72
+ # middleware and ensures they cannot be added again
73
+ #
74
+ # See also {#remove}
68
75
  def disable(*middlewares)
69
76
  @mutex.synchronize do
70
77
  @disabled_middleware += middlewares
71
78
 
72
- @middlewares.delete_if {|m| @disabled_middleware.include?(m)}
79
+ @middlewares.delete_if {|m| @disabled_middleware.include?(m) }
80
+ end
81
+ end
82
+
83
+ ##
84
+ # Remove the given middleware from the list of middleware
85
+ #
86
+ # This is like {#disable} but allows the middleware to be added again
87
+ def remove(*middlewares)
88
+ @mutex.synchronize do
89
+ @middlewares.delete_if {|m| middlewares.include?(m) }
73
90
  end
74
91
  end
75
92
 
@@ -91,7 +108,7 @@ module Bugsnag
91
108
 
92
109
  begin
93
110
  # We reverse them, so we can call "call" on the first middleware
94
- middleware_procs.reverse.inject(notify_lambda) { |n,e| e.call(n) }.call(report)
111
+ middleware_procs.reverse.inject(notify_lambda) {|n, e| e.call(n) }.call(report)
95
112
  rescue StandardError => e
96
113
  # KLUDGE: Since we don't re-raise middleware exceptions, this breaks rspec
97
114
  raise if e.class.to_s == "RSpec::Expectations::ExpectationNotMetError"
@@ -107,10 +124,28 @@ module Bugsnag
107
124
  end
108
125
 
109
126
  private
127
+
128
+ ##
110
129
  # Generates a list of middleware procs that are ready to be run
111
130
  # Pass each one a reference to the next in the queue
131
+ #
132
+ # @return [Array<Proc>]
112
133
  def middleware_procs
113
- @middlewares.map{|middleware| proc { |next_middleware| middleware.new(next_middleware) } }
134
+ # Split the middleware into separate lists of Procs and Classes
135
+ procs, classes = @middlewares.partition {|middleware| middleware.is_a?(Proc) }
136
+
137
+ # Wrap the classes in a proc that, when called, news up the middleware and
138
+ # passes the next middleware in the queue
139
+ middleware_instances = classes.map do |middleware|
140
+ proc {|next_middleware| middleware.new(next_middleware) }
141
+ end
142
+
143
+ # Wrap the list of procs in a proc that, when called, wraps them in an
144
+ # 'OnErrorCallbacks' instance that also has a reference to the next middleware
145
+ wrapped_procs = proc {|next_middleware| OnErrorCallbacks.new(next_middleware, procs) }
146
+
147
+ # Return the combined middleware and wrapped procs
148
+ middleware_instances.push(wrapped_procs)
114
149
  end
115
150
  end
116
151
  end
@@ -0,0 +1,33 @@
1
+ module Bugsnag
2
+ # @api private
3
+ class OnErrorCallbacks
4
+ def initialize(next_middleware, callbacks)
5
+ @next_middleware = next_middleware
6
+ @callbacks = callbacks
7
+ end
8
+
9
+ ##
10
+ # @param report [Report]
11
+ def call(report)
12
+ @callbacks.each do |callback|
13
+ begin
14
+ should_continue = callback.call(report)
15
+ rescue StandardError => e
16
+ Bugsnag.configuration.warn("Error occurred in on_error callback: '#{e}'")
17
+ Bugsnag.configuration.warn("on_error callback stacktrace: #{e.backtrace.inspect}")
18
+ end
19
+
20
+ # If a callback returns false, we ignore the report and stop running callbacks
21
+ # Note that we explicitly check for 'false' so that callbacks don't need
22
+ # to return anything (i.e. can return 'nil') and we still continue
23
+ next unless should_continue == false
24
+
25
+ report.ignore!
26
+
27
+ break
28
+ end
29
+
30
+ @next_middleware.call(report)
31
+ end
32
+ end
33
+ end
@@ -19,24 +19,87 @@ module Bugsnag
19
19
 
20
20
  CURRENT_PAYLOAD_VERSION = "4.0"
21
21
 
22
- attr_reader :unhandled
22
+ # Whether this report is for a handled or unhandled error
23
+ # @return [Boolean]
24
+ attr_reader :unhandled
25
+
26
+ # Your Integration API Key
27
+ # @see Configuration#api_key
28
+ # @return [String, nil]
23
29
  attr_accessor :api_key
30
+
31
+ # The type of application executing the current code
32
+ # @see Configuration#app_type
33
+ # @return [String, nil]
24
34
  attr_accessor :app_type
35
+
36
+ # The current version of your application
37
+ # @return [String, nil]
25
38
  attr_accessor :app_version
39
+
40
+ # The list of breadcrumbs attached to this report
41
+ # @return [Array<Breadcrumb>]
26
42
  attr_accessor :breadcrumbs
43
+
44
+ # @api private
45
+ # @return [Configuration]
27
46
  attr_accessor :configuration
47
+
48
+ # Additional context for this report
49
+ # @return [String, nil]
28
50
  attr_accessor :context
51
+
52
+ # The delivery method that will be used for this report
53
+ # @see Configuration#delivery_method
54
+ # @return [Symbol]
29
55
  attr_accessor :delivery_method
56
+
57
+ # The list of exceptions in this report
58
+ # @return [Array<Hash>]
30
59
  attr_accessor :exceptions
60
+
61
+ # @see Configuration#hostname
62
+ # @return [String]
31
63
  attr_accessor :hostname
64
+
65
+ # @api private
66
+ # @see Configuration#runtime_versions
67
+ # @return [Hash{String => String}]
32
68
  attr_accessor :runtime_versions
69
+
70
+ # All errors with the same grouping hash will be grouped in the Bugsnag app
71
+ # @return [String]
33
72
  attr_accessor :grouping_hash
73
+
74
+ # Arbitrary metadata attached to this report
75
+ # @return [Hash]
34
76
  attr_accessor :meta_data
77
+
78
+ # The raw Exception instances for this report
79
+ # @see #exceptions
80
+ # @return [Array<Exception>]
35
81
  attr_accessor :raw_exceptions
82
+
83
+ # The current stage of the release process, e.g. 'development', production'
84
+ # @see Configuration#release_stage
85
+ # @return [String, nil]
36
86
  attr_accessor :release_stage
87
+
88
+ # The session that active when this report was generated
89
+ # @see SessionTracker#get_current_session
90
+ # @return [Hash]
37
91
  attr_accessor :session
92
+
93
+ # The severity of this report, e.g. 'error', 'warning'
94
+ # @return [String]
38
95
  attr_accessor :severity
96
+
97
+ # @api private
98
+ # @return [Hash]
39
99
  attr_accessor :severity_reason
100
+
101
+ # The current user when this report was generated
102
+ # @return [Hash]
40
103
  attr_accessor :user
41
104
 
42
105
  ##
@@ -66,6 +129,12 @@ module Bugsnag
66
129
 
67
130
  ##
68
131
  # Add a new metadata tab to this notification.
132
+ #
133
+ # @param name [String, #to_s] The name of the tab to add
134
+ # @param value [Hash, Object] The value to add to the tab. If the tab already
135
+ # exists, this will be merged with the existing values. If a Hash is not
136
+ # given, the value will be placed into the 'custom' tab
137
+ # @return [void]
69
138
  def add_tab(name, value)
70
139
  return if name.nil?
71
140
 
@@ -81,6 +150,9 @@ module Bugsnag
81
150
 
82
151
  ##
83
152
  # Removes a metadata tab from this notification.
153
+ #
154
+ # @param name [String]
155
+ # @return [void]
84
156
  def remove_tab(name)
85
157
  return if name.nil?
86
158
 
@@ -89,6 +161,8 @@ module Bugsnag
89
161
 
90
162
  ##
91
163
  # Builds and returns the exception payload for this notification.
164
+ #
165
+ # @return [Hash]
92
166
  def as_json
93
167
  # Build the payload's exception event
94
168
  payload_event = {
@@ -129,28 +203,36 @@ module Bugsnag
129
203
 
130
204
  ##
131
205
  # Returns the headers required for the notification.
206
+ #
207
+ # @return [Hash{String => String}]
132
208
  def headers
133
209
  {
134
210
  "Bugsnag-Api-Key" => api_key,
135
211
  "Bugsnag-Payload-Version" => CURRENT_PAYLOAD_VERSION,
136
- "Bugsnag-Sent-At" => Time.now().utc().strftime('%Y-%m-%dT%H:%M:%S')
212
+ "Bugsnag-Sent-At" => Time.now.utc.iso8601(3)
137
213
  }
138
214
  end
139
215
 
140
216
  ##
141
217
  # Whether this report should be ignored and not sent.
218
+ #
219
+ # @return [Boolean]
142
220
  def ignore?
143
221
  @should_ignore
144
222
  end
145
223
 
146
224
  ##
147
225
  # Data set on the configuration to be attached to every error notification.
226
+ #
227
+ # @return [Hash]
148
228
  def request_data
149
229
  configuration.request_data
150
230
  end
151
231
 
152
232
  ##
153
233
  # Tells the client this report should not be sent.
234
+ #
235
+ # @return [void]
154
236
  def ignore!
155
237
  @should_ignore = true
156
238
  end
@@ -182,7 +264,7 @@ module Bugsnag
182
264
  {
183
265
  errorClass: error_class(exception),
184
266
  message: exception.message,
185
- stacktrace: Stacktrace.new(exception.backtrace, configuration).to_a
267
+ stacktrace: Stacktrace.process(exception.backtrace, configuration)
186
268
  }
187
269
  end
188
270
  end