bugsnag 6.12.2 → 6.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (633) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +90 -0
  3. data/VERSION +1 -1
  4. data/bugsnag.gemspec +1 -1
  5. data/lib/bugsnag.rb +119 -21
  6. data/lib/bugsnag/breadcrumbs/breadcrumbs.rb +0 -2
  7. data/lib/bugsnag/breadcrumbs/validator.rb +0 -6
  8. data/lib/bugsnag/cleaner.rb +129 -60
  9. data/lib/bugsnag/code_extractor.rb +137 -0
  10. data/lib/bugsnag/configuration.rb +107 -2
  11. data/lib/bugsnag/delivery/thread_queue.rb +18 -3
  12. data/lib/bugsnag/helpers.rb +2 -4
  13. data/lib/bugsnag/integrations/delayed_job.rb +13 -1
  14. data/lib/bugsnag/integrations/mailman.rb +2 -1
  15. data/lib/bugsnag/integrations/que.rb +2 -1
  16. data/lib/bugsnag/integrations/rack.rb +3 -1
  17. data/lib/bugsnag/integrations/railtie.rb +17 -5
  18. data/lib/bugsnag/integrations/rake.rb +4 -2
  19. data/lib/bugsnag/integrations/resque.rb +2 -2
  20. data/lib/bugsnag/integrations/shoryuken.rb +2 -1
  21. data/lib/bugsnag/integrations/sidekiq.rb +1 -1
  22. data/lib/bugsnag/middleware/delayed_job.rb +1 -0
  23. data/lib/bugsnag/middleware/discard_error_class.rb +30 -0
  24. data/lib/bugsnag/middleware/exception_meta_data.rb +15 -9
  25. data/lib/bugsnag/middleware/ignore_error_class.rb +2 -0
  26. data/lib/bugsnag/middleware/rack_request.rb +2 -4
  27. data/lib/bugsnag/middleware_stack.rb +38 -3
  28. data/lib/bugsnag/on_error_callbacks.rb +33 -0
  29. data/lib/bugsnag/report.rb +4 -14
  30. data/lib/bugsnag/session_tracker.rb +3 -3
  31. data/lib/bugsnag/stacktrace.rb +28 -75
  32. metadata +6 -605
  33. data/.github/PULL_REQUEST_TEMPLATE.md +0 -84
  34. data/.gitignore +0 -55
  35. data/.rdoc_options +0 -27
  36. data/.rspec +0 -3
  37. data/.rubocop.yml +0 -2
  38. data/.rubocop_todo.yml +0 -679
  39. data/.travis.yml +0 -122
  40. data/CONTRIBUTING.md +0 -72
  41. data/Gemfile +0 -43
  42. data/Rakefile +0 -37
  43. data/UPGRADING.md +0 -91
  44. data/features/.gitignore +0 -1
  45. data/features/delayed_job.feature +0 -52
  46. data/features/fixtures/delayed_job/Dockerfile +0 -17
  47. data/features/fixtures/delayed_job/app/.gitignore +0 -21
  48. data/features/fixtures/delayed_job/app/Gemfile +0 -57
  49. data/features/fixtures/delayed_job/app/README.md +0 -24
  50. data/features/fixtures/delayed_job/app/Rakefile +0 -6
  51. data/features/fixtures/delayed_job/app/app/assets/config/manifest.js +0 -3
  52. data/features/fixtures/delayed_job/app/app/assets/images/.keep +0 -0
  53. data/features/fixtures/delayed_job/app/app/assets/javascripts/application.js +0 -16
  54. data/features/fixtures/delayed_job/app/app/assets/javascripts/cable.js +0 -13
  55. data/features/fixtures/delayed_job/app/app/assets/javascripts/channels/.keep +0 -0
  56. data/features/fixtures/delayed_job/app/app/assets/stylesheets/application.css +0 -15
  57. data/features/fixtures/delayed_job/app/app/channels/application_cable/channel.rb +0 -4
  58. data/features/fixtures/delayed_job/app/app/channels/application_cable/connection.rb +0 -4
  59. data/features/fixtures/delayed_job/app/app/controllers/application_controller.rb +0 -3
  60. data/features/fixtures/delayed_job/app/app/controllers/concerns/.keep +0 -0
  61. data/features/fixtures/delayed_job/app/app/helpers/application_helper.rb +0 -2
  62. data/features/fixtures/delayed_job/app/app/jobs/application_job.rb +0 -2
  63. data/features/fixtures/delayed_job/app/app/mailers/application_mailer.rb +0 -4
  64. data/features/fixtures/delayed_job/app/app/models/application_record.rb +0 -3
  65. data/features/fixtures/delayed_job/app/app/models/concerns/.keep +0 -0
  66. data/features/fixtures/delayed_job/app/app/models/test_model.rb +0 -10
  67. data/features/fixtures/delayed_job/app/app/views/layouts/application.html.erb +0 -14
  68. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.html.erb +0 -13
  69. data/features/fixtures/delayed_job/app/app/views/layouts/mailer.text.erb +0 -1
  70. data/features/fixtures/delayed_job/app/config.ru +0 -5
  71. data/features/fixtures/delayed_job/app/config/application.rb +0 -15
  72. data/features/fixtures/delayed_job/app/config/boot.rb +0 -3
  73. data/features/fixtures/delayed_job/app/config/cable.yml +0 -9
  74. data/features/fixtures/delayed_job/app/config/database.yml +0 -25
  75. data/features/fixtures/delayed_job/app/config/environment.rb +0 -5
  76. data/features/fixtures/delayed_job/app/config/environments/development.rb +0 -54
  77. data/features/fixtures/delayed_job/app/config/environments/production.rb +0 -86
  78. data/features/fixtures/delayed_job/app/config/environments/test.rb +0 -42
  79. data/features/fixtures/delayed_job/app/config/initializers/application_controller_renderer.rb +0 -8
  80. data/features/fixtures/delayed_job/app/config/initializers/assets.rb +0 -11
  81. data/features/fixtures/delayed_job/app/config/initializers/backtrace_silencers.rb +0 -7
  82. data/features/fixtures/delayed_job/app/config/initializers/bugsnag.rb +0 -14
  83. data/features/fixtures/delayed_job/app/config/initializers/cookies_serializer.rb +0 -5
  84. data/features/fixtures/delayed_job/app/config/initializers/delayed_job.rb +0 -3
  85. data/features/fixtures/delayed_job/app/config/initializers/filter_parameter_logging.rb +0 -4
  86. data/features/fixtures/delayed_job/app/config/initializers/inflections.rb +0 -16
  87. data/features/fixtures/delayed_job/app/config/initializers/mime_types.rb +0 -4
  88. data/features/fixtures/delayed_job/app/config/initializers/new_framework_defaults.rb +0 -26
  89. data/features/fixtures/delayed_job/app/config/initializers/session_store.rb +0 -3
  90. data/features/fixtures/delayed_job/app/config/initializers/wrap_parameters.rb +0 -14
  91. data/features/fixtures/delayed_job/app/config/locales/en.yml +0 -23
  92. data/features/fixtures/delayed_job/app/config/puma.rb +0 -47
  93. data/features/fixtures/delayed_job/app/config/routes.rb +0 -3
  94. data/features/fixtures/delayed_job/app/config/secrets.yml +0 -22
  95. data/features/fixtures/delayed_job/app/config/spring.rb +0 -6
  96. data/features/fixtures/delayed_job/app/db/migrate/20181024232549_create_delayed_jobs.rb +0 -22
  97. data/features/fixtures/delayed_job/app/db/migrate/20181024232817_create_test_models.rb +0 -8
  98. data/features/fixtures/delayed_job/app/db/schema.rb +0 -30
  99. data/features/fixtures/delayed_job/app/db/seeds.rb +0 -7
  100. data/features/fixtures/delayed_job/app/lib/assets/.keep +0 -0
  101. data/features/fixtures/delayed_job/app/lib/tasks/.keep +0 -0
  102. data/features/fixtures/delayed_job/app/log/.keep +0 -0
  103. data/features/fixtures/delayed_job/app/public/404.html +0 -67
  104. data/features/fixtures/delayed_job/app/public/422.html +0 -67
  105. data/features/fixtures/delayed_job/app/public/500.html +0 -66
  106. data/features/fixtures/delayed_job/app/public/apple-touch-icon-precomposed.png +0 -0
  107. data/features/fixtures/delayed_job/app/public/apple-touch-icon.png +0 -0
  108. data/features/fixtures/delayed_job/app/public/favicon.ico +0 -0
  109. data/features/fixtures/delayed_job/app/public/robots.txt +0 -5
  110. data/features/fixtures/delayed_job/app/test/controllers/.keep +0 -0
  111. data/features/fixtures/delayed_job/app/test/fixtures/.keep +0 -0
  112. data/features/fixtures/delayed_job/app/test/fixtures/files/.keep +0 -0
  113. data/features/fixtures/delayed_job/app/test/fixtures/test_models.yml +0 -11
  114. data/features/fixtures/delayed_job/app/test/helpers/.keep +0 -0
  115. data/features/fixtures/delayed_job/app/test/integration/.keep +0 -0
  116. data/features/fixtures/delayed_job/app/test/mailers/.keep +0 -0
  117. data/features/fixtures/delayed_job/app/test/models/.keep +0 -0
  118. data/features/fixtures/delayed_job/app/test/models/test_model_test.rb +0 -7
  119. data/features/fixtures/delayed_job/app/test/test_helper.rb +0 -10
  120. data/features/fixtures/delayed_job/app/tmp/.keep +0 -0
  121. data/features/fixtures/docker-compose.yml +0 -311
  122. data/features/fixtures/plain/.dockerignore +0 -2
  123. data/features/fixtures/plain/Dockerfile +0 -11
  124. data/features/fixtures/plain/app/Gemfile +0 -3
  125. data/features/fixtures/plain/app/app.rb +0 -40
  126. data/features/fixtures/plain/app/configuration/api_key.rb +0 -9
  127. data/features/fixtures/plain/app/configuration/proxy.rb +0 -14
  128. data/features/fixtures/plain/app/configuration/send_handled.rb +0 -7
  129. data/features/fixtures/plain/app/configuration/send_unhandled.rb +0 -9
  130. data/features/fixtures/plain/app/delivery/fork_threadpool.rb +0 -25
  131. data/features/fixtures/plain/app/delivery/synchronous.rb +0 -14
  132. data/features/fixtures/plain/app/delivery/threadpool.rb +0 -14
  133. data/features/fixtures/plain/app/exception_data/crash.rb +0 -34
  134. data/features/fixtures/plain/app/exception_data/handled_context.rb +0 -10
  135. data/features/fixtures/plain/app/exception_data/handled_hash.rb +0 -10
  136. data/features/fixtures/plain/app/exception_data/handled_meta_data.rb +0 -10
  137. data/features/fixtures/plain/app/exception_data/handled_user_id.rb +0 -10
  138. data/features/fixtures/plain/app/exception_data/unhandled_context.rb +0 -7
  139. data/features/fixtures/plain/app/exception_data/unhandled_hash.rb +0 -7
  140. data/features/fixtures/plain/app/exception_data/unhandled_meta_data.rb +0 -7
  141. data/features/fixtures/plain/app/exception_data/unhandled_user_id.rb +0 -7
  142. data/features/fixtures/plain/app/filters/additional_filters.rb +0 -11
  143. data/features/fixtures/plain/app/filters/default_filters.rb +0 -15
  144. data/features/fixtures/plain/app/handled/block_metadata.rb +0 -15
  145. data/features/fixtures/plain/app/handled/ignore_exception.rb +0 -12
  146. data/features/fixtures/plain/app/handled/notify_exception.rb +0 -9
  147. data/features/fixtures/plain/app/handled/notify_string.rb +0 -9
  148. data/features/fixtures/plain/app/ignore_classes/handled.rb +0 -8
  149. data/features/fixtures/plain/app/ignore_classes/ignore_error.rb +0 -8
  150. data/features/fixtures/plain/app/ignore_classes/unhandled.rb +0 -4
  151. data/features/fixtures/plain/app/report_modification/add_tab.rb +0 -16
  152. data/features/fixtures/plain/app/report_modification/add_tab_existing.rb +0 -22
  153. data/features/fixtures/plain/app/report_modification/add_tab_override.rb +0 -19
  154. data/features/fixtures/plain/app/report_modification/ignore_report.rb +0 -9
  155. data/features/fixtures/plain/app/report_modification/initiators/handled_before_notify.rb +0 -10
  156. data/features/fixtures/plain/app/report_modification/initiators/handled_block.rb +0 -8
  157. data/features/fixtures/plain/app/report_modification/initiators/unhandled_before_notify.rb +0 -11
  158. data/features/fixtures/plain/app/report_modification/modify_api_key.rb +0 -9
  159. data/features/fixtures/plain/app/report_modification/modify_severity.rb +0 -9
  160. data/features/fixtures/plain/app/report_modification/remove_user_details.rb +0 -14
  161. data/features/fixtures/plain/app/report_modification/set_custom_user_details.rb +0 -16
  162. data/features/fixtures/plain/app/report_modification/set_user_details.rb +0 -13
  163. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_before_notify.rb +0 -29
  164. data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_block.rb +0 -24
  165. data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_before_notify.rb +0 -26
  166. data/features/fixtures/plain/app/stack_frame_modification/mark_frames_in_project.rb +0 -13
  167. data/features/fixtures/plain/app/stack_frame_modification/remove_stack_frame.rb +0 -9
  168. data/features/fixtures/plain/app/unhandled/Interrupt.rb +0 -6
  169. data/features/fixtures/plain/app/unhandled/bad_syntax.rb +0 -1
  170. data/features/fixtures/plain/app/unhandled/custom_error.rb +0 -9
  171. data/features/fixtures/plain/app/unhandled/load_error.rb +0 -6
  172. data/features/fixtures/plain/app/unhandled/local_jump_error.rb +0 -10
  173. data/features/fixtures/plain/app/unhandled/name_error.rb +0 -6
  174. data/features/fixtures/plain/app/unhandled/no_method_error.rb +0 -6
  175. data/features/fixtures/plain/app/unhandled/runtime_error.rb +0 -6
  176. data/features/fixtures/plain/app/unhandled/syntax_error.rb +0 -6
  177. data/features/fixtures/plain/app/unhandled/system_call_error.rb +0 -6
  178. data/features/fixtures/plain/app/unhandled/system_exit.rb +0 -6
  179. data/features/fixtures/plain/json/delivery_fork.json +0 -4
  180. data/features/fixtures/plain/json/delivery_synchronous.json +0 -4
  181. data/features/fixtures/plain/json/delivery_threadpool.json +0 -4
  182. data/features/fixtures/plain/json/filters_default_metadata_filters.json +0 -9
  183. data/features/fixtures/rack1/.dockerignore +0 -1
  184. data/features/fixtures/rack1/Dockerfile +0 -13
  185. data/features/fixtures/rack1/Gemfile +0 -4
  186. data/features/fixtures/rack1/app.rb +0 -8
  187. data/features/fixtures/rack2/.dockerignore +0 -1
  188. data/features/fixtures/rack2/Dockerfile +0 -13
  189. data/features/fixtures/rack2/Gemfile +0 -4
  190. data/features/fixtures/rack2/app.rb +0 -8
  191. data/features/fixtures/rails3/.dockerignore +0 -1
  192. data/features/fixtures/rails3/Dockerfile +0 -15
  193. data/features/fixtures/rails3/app/.gitignore +0 -15
  194. data/features/fixtures/rails3/app/Gemfile +0 -13
  195. data/features/fixtures/rails3/app/Rakefile +0 -7
  196. data/features/fixtures/rails3/app/app/assets/images/rails.png +0 -0
  197. data/features/fixtures/rails3/app/app/assets/javascripts/application.js +0 -15
  198. data/features/fixtures/rails3/app/app/assets/stylesheets/application.css +0 -13
  199. data/features/fixtures/rails3/app/app/controllers/api_key_controller.rb +0 -20
  200. data/features/fixtures/rails3/app/app/controllers/app_type_controller.rb +0 -20
  201. data/features/fixtures/rails3/app/app/controllers/app_version_controller.rb +0 -25
  202. data/features/fixtures/rails3/app/app/controllers/application_controller.rb +0 -7
  203. data/features/fixtures/rails3/app/app/controllers/auto_notify_controller.rb +0 -31
  204. data/features/fixtures/rails3/app/app/controllers/before_notify_controller.rb +0 -44
  205. data/features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb +0 -19
  206. data/features/fixtures/rails3/app/app/controllers/handled_controller.rb +0 -26
  207. data/features/fixtures/rails3/app/app/controllers/ignore_classes_controller.rb +0 -23
  208. data/features/fixtures/rails3/app/app/controllers/metadata_filters_controller.rb +0 -16
  209. data/features/fixtures/rails3/app/app/controllers/project_root_controller.rb +0 -25
  210. data/features/fixtures/rails3/app/app/controllers/release_stage_controller.rb +0 -20
  211. data/features/fixtures/rails3/app/app/controllers/send_code_controller.rb +0 -20
  212. data/features/fixtures/rails3/app/app/controllers/send_environment_controller.rb +0 -12
  213. data/features/fixtures/rails3/app/app/controllers/session_tracking_controller.rb +0 -24
  214. data/features/fixtures/rails3/app/app/controllers/unhandled_controller.rb +0 -11
  215. data/features/fixtures/rails3/app/app/controllers/warden_controller.rb +0 -30
  216. data/features/fixtures/rails3/app/app/helpers/application_helper.rb +0 -2
  217. data/features/fixtures/rails3/app/app/mailers/.gitkeep +0 -0
  218. data/features/fixtures/rails3/app/app/models/.gitkeep +0 -0
  219. data/features/fixtures/rails3/app/app/models/user.rb +0 -6
  220. data/features/fixtures/rails3/app/app/views/layouts/application.html.erb +0 -14
  221. data/features/fixtures/rails3/app/config.ru +0 -4
  222. data/features/fixtures/rails3/app/config/application.rb +0 -67
  223. data/features/fixtures/rails3/app/config/boot.rb +0 -6
  224. data/features/fixtures/rails3/app/config/database.yml +0 -31
  225. data/features/fixtures/rails3/app/config/environment.rb +0 -5
  226. data/features/fixtures/rails3/app/config/environments/development.rb +0 -37
  227. data/features/fixtures/rails3/app/config/environments/production.rb +0 -67
  228. data/features/fixtures/rails3/app/config/environments/rails_env.rb +0 -37
  229. data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +0 -20
  230. data/features/fixtures/rails3/app/config/initializers/secret_token.rb +0 -7
  231. data/features/fixtures/rails3/app/config/initializers/session_store.rb +0 -8
  232. data/features/fixtures/rails3/app/config/initializers/warden.rb +0 -3
  233. data/features/fixtures/rails3/app/config/initializers/wrap_parameters.rb +0 -14
  234. data/features/fixtures/rails3/app/config/locales/en.yml +0 -5
  235. data/features/fixtures/rails3/app/config/routes.rb +0 -19
  236. data/features/fixtures/rails3/app/db/migrate/20180423142727_create_users.rb +0 -45
  237. data/features/fixtures/rails3/app/db/schema.rb +0 -37
  238. data/features/fixtures/rails3/app/db/seeds.rb +0 -7
  239. data/features/fixtures/rails3/app/lib/assets/.gitkeep +0 -0
  240. data/features/fixtures/rails3/app/lib/strategies/token_strategy.rb +0 -12
  241. data/features/fixtures/rails3/app/lib/tasks/.gitkeep +0 -0
  242. data/features/fixtures/rails3/app/log/.gitkeep +0 -0
  243. data/features/fixtures/rails3/app/public/404.html +0 -26
  244. data/features/fixtures/rails3/app/public/422.html +0 -26
  245. data/features/fixtures/rails3/app/public/500.html +0 -25
  246. data/features/fixtures/rails3/app/public/favicon.ico +0 -0
  247. data/features/fixtures/rails3/app/public/index.html +0 -241
  248. data/features/fixtures/rails3/app/public/robots.txt +0 -5
  249. data/features/fixtures/rails3/app/script/rails +0 -6
  250. data/features/fixtures/rails4/.dockerignore +0 -1
  251. data/features/fixtures/rails4/Dockerfile +0 -20
  252. data/features/fixtures/rails4/app/.gitignore +0 -16
  253. data/features/fixtures/rails4/app/Gemfile +0 -46
  254. data/features/fixtures/rails4/app/README.rdoc +0 -28
  255. data/features/fixtures/rails4/app/Rakefile +0 -6
  256. data/features/fixtures/rails4/app/app/assets/images/.keep +0 -0
  257. data/features/fixtures/rails4/app/app/assets/javascripts/application.js +0 -16
  258. data/features/fixtures/rails4/app/app/assets/stylesheets/application.css +0 -13
  259. data/features/fixtures/rails4/app/app/controllers/api_key_controller.rb +0 -20
  260. data/features/fixtures/rails4/app/app/controllers/app_type_controller.rb +0 -20
  261. data/features/fixtures/rails4/app/app/controllers/app_version_controller.rb +0 -25
  262. data/features/fixtures/rails4/app/app/controllers/application_controller.rb +0 -7
  263. data/features/fixtures/rails4/app/app/controllers/auto_notify_controller.rb +0 -31
  264. data/features/fixtures/rails4/app/app/controllers/before_notify_controller.rb +0 -44
  265. data/features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb +0 -26
  266. data/features/fixtures/rails4/app/app/controllers/concerns/.keep +0 -0
  267. data/features/fixtures/rails4/app/app/controllers/devise_controller.rb +0 -32
  268. data/features/fixtures/rails4/app/app/controllers/handled_controller.rb +0 -26
  269. data/features/fixtures/rails4/app/app/controllers/ignore_classes_controller.rb +0 -23
  270. data/features/fixtures/rails4/app/app/controllers/metadata_filters_controller.rb +0 -16
  271. data/features/fixtures/rails4/app/app/controllers/mongo_controller.rb +0 -23
  272. data/features/fixtures/rails4/app/app/controllers/project_root_controller.rb +0 -25
  273. data/features/fixtures/rails4/app/app/controllers/release_stage_controller.rb +0 -20
  274. data/features/fixtures/rails4/app/app/controllers/send_code_controller.rb +0 -20
  275. data/features/fixtures/rails4/app/app/controllers/send_environment_controller.rb +0 -12
  276. data/features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb +0 -24
  277. data/features/fixtures/rails4/app/app/controllers/unhandled_controller.rb +0 -11
  278. data/features/fixtures/rails4/app/app/helpers/application_helper.rb +0 -2
  279. data/features/fixtures/rails4/app/app/jobs/application_job.rb +0 -2
  280. data/features/fixtures/rails4/app/app/jobs/notify_job.rb +0 -5
  281. data/features/fixtures/rails4/app/app/mailers/.keep +0 -0
  282. data/features/fixtures/rails4/app/app/models/.keep +0 -0
  283. data/features/fixtures/rails4/app/app/models/concerns/.keep +0 -0
  284. data/features/fixtures/rails4/app/app/models/mongo_model.rb +0 -6
  285. data/features/fixtures/rails4/app/app/models/user.rb +0 -6
  286. data/features/fixtures/rails4/app/app/views/layouts/application.html.erb +0 -14
  287. data/features/fixtures/rails4/app/config.ru +0 -4
  288. data/features/fixtures/rails4/app/config/application.rb +0 -23
  289. data/features/fixtures/rails4/app/config/boot.rb +0 -4
  290. data/features/fixtures/rails4/app/config/database.yml +0 -31
  291. data/features/fixtures/rails4/app/config/environment.rb +0 -5
  292. data/features/fixtures/rails4/app/config/environments/development.rb +0 -31
  293. data/features/fixtures/rails4/app/config/environments/production.rb +0 -81
  294. data/features/fixtures/rails4/app/config/environments/rails_env.rb +0 -30
  295. data/features/fixtures/rails4/app/config/environments/test.rb +0 -31
  296. data/features/fixtures/rails4/app/config/initializers/backtrace_silencers.rb +0 -7
  297. data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +0 -20
  298. data/features/fixtures/rails4/app/config/initializers/devise.rb +0 -283
  299. data/features/fixtures/rails4/app/config/initializers/filter_parameter_logging.rb +0 -5
  300. data/features/fixtures/rails4/app/config/initializers/inflections.rb +0 -16
  301. data/features/fixtures/rails4/app/config/initializers/mime_types.rb +0 -5
  302. data/features/fixtures/rails4/app/config/initializers/secret_token.rb +0 -12
  303. data/features/fixtures/rails4/app/config/initializers/session_store.rb +0 -3
  304. data/features/fixtures/rails4/app/config/initializers/wrap_parameters.rb +0 -14
  305. data/features/fixtures/rails4/app/config/locales/devise.en.yml +0 -64
  306. data/features/fixtures/rails4/app/config/locales/en.yml +0 -23
  307. data/features/fixtures/rails4/app/config/mongoid.yml +0 -22
  308. data/features/fixtures/rails4/app/config/routes.rb +0 -21
  309. data/features/fixtures/rails4/app/db/migrate/20180420160315_devise_create_users.rb +0 -47
  310. data/features/fixtures/rails4/app/db/seeds.rb +0 -7
  311. data/features/fixtures/rails4/app/lib/assets/.keep +0 -0
  312. data/features/fixtures/rails4/app/lib/tasks/.keep +0 -0
  313. data/features/fixtures/rails4/app/log/.keep +0 -0
  314. data/features/fixtures/rails4/app/public/404.html +0 -58
  315. data/features/fixtures/rails4/app/public/422.html +0 -58
  316. data/features/fixtures/rails4/app/public/500.html +0 -57
  317. data/features/fixtures/rails4/app/public/favicon.ico +0 -0
  318. data/features/fixtures/rails4/app/public/robots.txt +0 -5
  319. data/features/fixtures/rails4/app/test/controllers/.keep +0 -0
  320. data/features/fixtures/rails4/app/test/fixtures/.keep +0 -0
  321. data/features/fixtures/rails4/app/test/helpers/.keep +0 -0
  322. data/features/fixtures/rails4/app/test/integration/.keep +0 -0
  323. data/features/fixtures/rails4/app/test/mailers/.keep +0 -0
  324. data/features/fixtures/rails4/app/test/models/.keep +0 -0
  325. data/features/fixtures/rails4/app/test/test_helper.rb +0 -15
  326. data/features/fixtures/rails5/.dockerignore +0 -1
  327. data/features/fixtures/rails5/Dockerfile +0 -17
  328. data/features/fixtures/rails5/app/.gitignore +0 -21
  329. data/features/fixtures/rails5/app/Gemfile +0 -52
  330. data/features/fixtures/rails5/app/README.md +0 -24
  331. data/features/fixtures/rails5/app/Rakefile +0 -6
  332. data/features/fixtures/rails5/app/app/assets/config/manifest.js +0 -3
  333. data/features/fixtures/rails5/app/app/assets/images/.keep +0 -0
  334. data/features/fixtures/rails5/app/app/assets/javascripts/application.js +0 -16
  335. data/features/fixtures/rails5/app/app/assets/javascripts/cable.js +0 -13
  336. data/features/fixtures/rails5/app/app/assets/javascripts/channels/.keep +0 -0
  337. data/features/fixtures/rails5/app/app/assets/stylesheets/application.css +0 -15
  338. data/features/fixtures/rails5/app/app/channels/application_cable/channel.rb +0 -4
  339. data/features/fixtures/rails5/app/app/channels/application_cable/connection.rb +0 -4
  340. data/features/fixtures/rails5/app/app/controllers/api_key_controller.rb +0 -16
  341. data/features/fixtures/rails5/app/app/controllers/app_type_controller.rb +0 -16
  342. data/features/fixtures/rails5/app/app/controllers/app_version_controller.rb +0 -21
  343. data/features/fixtures/rails5/app/app/controllers/application_controller.rb +0 -7
  344. data/features/fixtures/rails5/app/app/controllers/auto_notify_controller.rb +0 -27
  345. data/features/fixtures/rails5/app/app/controllers/before_notify_controller.rb +0 -40
  346. data/features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb +0 -24
  347. data/features/fixtures/rails5/app/app/controllers/clearance_controller.rb +0 -33
  348. data/features/fixtures/rails5/app/app/controllers/concerns/.keep +0 -0
  349. data/features/fixtures/rails5/app/app/controllers/handled_controller.rb +0 -22
  350. data/features/fixtures/rails5/app/app/controllers/ignore_classes_controller.rb +0 -19
  351. data/features/fixtures/rails5/app/app/controllers/metadata_filters_controller.rb +0 -12
  352. data/features/fixtures/rails5/app/app/controllers/mongo_controller.rb +0 -22
  353. data/features/fixtures/rails5/app/app/controllers/project_root_controller.rb +0 -21
  354. data/features/fixtures/rails5/app/app/controllers/release_stage_controller.rb +0 -16
  355. data/features/fixtures/rails5/app/app/controllers/send_code_controller.rb +0 -16
  356. data/features/fixtures/rails5/app/app/controllers/send_environment_controller.rb +0 -8
  357. data/features/fixtures/rails5/app/app/controllers/session_tracking_controller.rb +0 -20
  358. data/features/fixtures/rails5/app/app/controllers/unhandled_controller.rb +0 -7
  359. data/features/fixtures/rails5/app/app/helpers/application_helper.rb +0 -2
  360. data/features/fixtures/rails5/app/app/jobs/application_job.rb +0 -2
  361. data/features/fixtures/rails5/app/app/jobs/notify_job.rb +0 -5
  362. data/features/fixtures/rails5/app/app/mailers/application_mailer.rb +0 -4
  363. data/features/fixtures/rails5/app/app/models/application_record.rb +0 -3
  364. data/features/fixtures/rails5/app/app/models/concerns/.keep +0 -0
  365. data/features/fixtures/rails5/app/app/models/mongo_model.rb +0 -6
  366. data/features/fixtures/rails5/app/app/models/user.rb +0 -3
  367. data/features/fixtures/rails5/app/app/views/layouts/application.html.erb +0 -14
  368. data/features/fixtures/rails5/app/app/views/layouts/mailer.html.erb +0 -13
  369. data/features/fixtures/rails5/app/app/views/layouts/mailer.text.erb +0 -1
  370. data/features/fixtures/rails5/app/config.ru +0 -5
  371. data/features/fixtures/rails5/app/config/application.rb +0 -15
  372. data/features/fixtures/rails5/app/config/boot.rb +0 -3
  373. data/features/fixtures/rails5/app/config/cable.yml +0 -9
  374. data/features/fixtures/rails5/app/config/database.yml +0 -29
  375. data/features/fixtures/rails5/app/config/environment.rb +0 -5
  376. data/features/fixtures/rails5/app/config/environments/development.rb +0 -55
  377. data/features/fixtures/rails5/app/config/environments/production.rb +0 -87
  378. data/features/fixtures/rails5/app/config/environments/rails_env.rb +0 -55
  379. data/features/fixtures/rails5/app/config/environments/test.rb +0 -55
  380. data/features/fixtures/rails5/app/config/initializers/assets.rb +0 -11
  381. data/features/fixtures/rails5/app/config/initializers/backtrace_silencers.rb +0 -7
  382. data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +0 -20
  383. data/features/fixtures/rails5/app/config/initializers/clearance.rb +0 -5
  384. data/features/fixtures/rails5/app/config/initializers/cookies_serializer.rb +0 -5
  385. data/features/fixtures/rails5/app/config/initializers/filter_parameter_logging.rb +0 -5
  386. data/features/fixtures/rails5/app/config/initializers/inflections.rb +0 -16
  387. data/features/fixtures/rails5/app/config/initializers/mime_types.rb +0 -4
  388. data/features/fixtures/rails5/app/config/initializers/new_framework_defaults.rb +0 -24
  389. data/features/fixtures/rails5/app/config/initializers/session_store.rb +0 -3
  390. data/features/fixtures/rails5/app/config/initializers/wrap_parameters.rb +0 -14
  391. data/features/fixtures/rails5/app/config/locales/devise.en.yml +0 -64
  392. data/features/fixtures/rails5/app/config/locales/en.yml +0 -23
  393. data/features/fixtures/rails5/app/config/mongoid.yml +0 -23
  394. data/features/fixtures/rails5/app/config/puma.rb +0 -47
  395. data/features/fixtures/rails5/app/config/routes.rb +0 -62
  396. data/features/fixtures/rails5/app/config/secrets.yml +0 -25
  397. data/features/fixtures/rails5/app/config/spring.rb +0 -6
  398. data/features/fixtures/rails5/app/db/migrate/20180426095545_create_users.rb +0 -17
  399. data/features/fixtures/rails5/app/db/schema.rb +0 -29
  400. data/features/fixtures/rails5/app/db/seeds.rb +0 -7
  401. data/features/fixtures/rails5/app/lib/assets/.keep +0 -0
  402. data/features/fixtures/rails5/app/lib/tasks/.keep +0 -0
  403. data/features/fixtures/rails5/app/log/.keep +0 -0
  404. data/features/fixtures/rails5/app/public/404.html +0 -67
  405. data/features/fixtures/rails5/app/public/422.html +0 -67
  406. data/features/fixtures/rails5/app/public/500.html +0 -66
  407. data/features/fixtures/rails5/app/public/apple-touch-icon-precomposed.png +0 -0
  408. data/features/fixtures/rails5/app/public/apple-touch-icon.png +0 -0
  409. data/features/fixtures/rails5/app/public/favicon.ico +0 -0
  410. data/features/fixtures/rails5/app/public/robots.txt +0 -5
  411. data/features/fixtures/rails5/app/test/controllers/.keep +0 -0
  412. data/features/fixtures/rails5/app/test/fixtures/.keep +0 -0
  413. data/features/fixtures/rails5/app/test/fixtures/files/.keep +0 -0
  414. data/features/fixtures/rails5/app/test/helpers/.keep +0 -0
  415. data/features/fixtures/rails5/app/test/integration/.keep +0 -0
  416. data/features/fixtures/rails5/app/test/mailers/.keep +0 -0
  417. data/features/fixtures/rails5/app/test/models/.keep +0 -0
  418. data/features/fixtures/rails5/app/test/test_helper.rb +0 -10
  419. data/features/fixtures/rails5/app/tmp/.keep +0 -0
  420. data/features/fixtures/rails6/.dockerignore +0 -1
  421. data/features/fixtures/rails6/Dockerfile +0 -26
  422. data/features/fixtures/rails6/app/.browserslistrc +0 -1
  423. data/features/fixtures/rails6/app/.gitignore +0 -35
  424. data/features/fixtures/rails6/app/.ruby-version +0 -1
  425. data/features/fixtures/rails6/app/Gemfile +0 -57
  426. data/features/fixtures/rails6/app/README.md +0 -24
  427. data/features/fixtures/rails6/app/Rakefile +0 -6
  428. data/features/fixtures/rails6/app/app/assets/config/manifest.js +0 -2
  429. data/features/fixtures/rails6/app/app/assets/images/.keep +0 -0
  430. data/features/fixtures/rails6/app/app/assets/stylesheets/application.css +0 -15
  431. data/features/fixtures/rails6/app/app/channels/application_cable/channel.rb +0 -4
  432. data/features/fixtures/rails6/app/app/channels/application_cable/connection.rb +0 -4
  433. data/features/fixtures/rails6/app/app/controllers/api_key_controller.rb +0 -16
  434. data/features/fixtures/rails6/app/app/controllers/app_type_controller.rb +0 -16
  435. data/features/fixtures/rails6/app/app/controllers/app_version_controller.rb +0 -21
  436. data/features/fixtures/rails6/app/app/controllers/application_controller.rb +0 -7
  437. data/features/fixtures/rails6/app/app/controllers/auto_notify_controller.rb +0 -27
  438. data/features/fixtures/rails6/app/app/controllers/before_notify_controller.rb +0 -40
  439. data/features/fixtures/rails6/app/app/controllers/breadcrumbs_controller.rb +0 -24
  440. data/features/fixtures/rails6/app/app/controllers/clearance_controller.rb +0 -33
  441. data/features/fixtures/rails6/app/app/controllers/concerns/.keep +0 -0
  442. data/features/fixtures/rails6/app/app/controllers/handled_controller.rb +0 -22
  443. data/features/fixtures/rails6/app/app/controllers/ignore_classes_controller.rb +0 -19
  444. data/features/fixtures/rails6/app/app/controllers/metadata_filters_controller.rb +0 -12
  445. data/features/fixtures/rails6/app/app/controllers/project_root_controller.rb +0 -21
  446. data/features/fixtures/rails6/app/app/controllers/release_stage_controller.rb +0 -16
  447. data/features/fixtures/rails6/app/app/controllers/send_code_controller.rb +0 -16
  448. data/features/fixtures/rails6/app/app/controllers/send_environment_controller.rb +0 -8
  449. data/features/fixtures/rails6/app/app/controllers/session_tracking_controller.rb +0 -20
  450. data/features/fixtures/rails6/app/app/controllers/unhandled_controller.rb +0 -7
  451. data/features/fixtures/rails6/app/app/helpers/application_helper.rb +0 -2
  452. data/features/fixtures/rails6/app/app/javascript/channels/consumer.js +0 -6
  453. data/features/fixtures/rails6/app/app/javascript/channels/index.js +0 -5
  454. data/features/fixtures/rails6/app/app/javascript/packs/application.js +0 -9
  455. data/features/fixtures/rails6/app/app/jobs/application_job.rb +0 -7
  456. data/features/fixtures/rails6/app/app/jobs/notify_job.rb +0 -5
  457. data/features/fixtures/rails6/app/app/mailers/application_mailer.rb +0 -4
  458. data/features/fixtures/rails6/app/app/models/application_record.rb +0 -3
  459. data/features/fixtures/rails6/app/app/models/concerns/.keep +0 -0
  460. data/features/fixtures/rails6/app/app/models/user.rb +0 -3
  461. data/features/fixtures/rails6/app/app/views/layouts/application.html.erb +0 -15
  462. data/features/fixtures/rails6/app/app/views/layouts/mailer.html.erb +0 -13
  463. data/features/fixtures/rails6/app/app/views/layouts/mailer.text.erb +0 -1
  464. data/features/fixtures/rails6/app/babel.config.js +0 -70
  465. data/features/fixtures/rails6/app/config.ru +0 -5
  466. data/features/fixtures/rails6/app/config/application.rb +0 -19
  467. data/features/fixtures/rails6/app/config/boot.rb +0 -4
  468. data/features/fixtures/rails6/app/config/cable.yml +0 -13
  469. data/features/fixtures/rails6/app/config/credentials.yml.enc +0 -1
  470. data/features/fixtures/rails6/app/config/database.yml +0 -29
  471. data/features/fixtures/rails6/app/config/environment.rb +0 -5
  472. data/features/fixtures/rails6/app/config/environments/development.rb +0 -62
  473. data/features/fixtures/rails6/app/config/environments/production.rb +0 -112
  474. data/features/fixtures/rails6/app/config/environments/rails_env.rb +0 -55
  475. data/features/fixtures/rails6/app/config/environments/test.rb +0 -47
  476. data/features/fixtures/rails6/app/config/initializers/application_controller_renderer.rb +0 -8
  477. data/features/fixtures/rails6/app/config/initializers/assets.rb +0 -14
  478. data/features/fixtures/rails6/app/config/initializers/backtrace_silencers.rb +0 -7
  479. data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +0 -20
  480. data/features/fixtures/rails6/app/config/initializers/content_security_policy.rb +0 -27
  481. data/features/fixtures/rails6/app/config/initializers/cookies_serializer.rb +0 -5
  482. data/features/fixtures/rails6/app/config/initializers/filter_parameter_logging.rb +0 -5
  483. data/features/fixtures/rails6/app/config/initializers/inflections.rb +0 -16
  484. data/features/fixtures/rails6/app/config/initializers/mime_types.rb +0 -4
  485. data/features/fixtures/rails6/app/config/initializers/wrap_parameters.rb +0 -14
  486. data/features/fixtures/rails6/app/config/locales/en.yml +0 -33
  487. data/features/fixtures/rails6/app/config/puma.rb +0 -35
  488. data/features/fixtures/rails6/app/config/routes.rb +0 -58
  489. data/features/fixtures/rails6/app/config/secrets.yml +0 -25
  490. data/features/fixtures/rails6/app/config/spring.rb +0 -6
  491. data/features/fixtures/rails6/app/config/storage.yml +0 -34
  492. data/features/fixtures/rails6/app/config/webpack/development.js +0 -5
  493. data/features/fixtures/rails6/app/config/webpack/environment.js +0 -3
  494. data/features/fixtures/rails6/app/config/webpack/production.js +0 -5
  495. data/features/fixtures/rails6/app/config/webpack/rails_env.js +0 -5
  496. data/features/fixtures/rails6/app/config/webpack/test.js +0 -5
  497. data/features/fixtures/rails6/app/config/webpacker.yml +0 -121
  498. data/features/fixtures/rails6/app/db/migrate/20180426095545_create_users.rb +0 -17
  499. data/features/fixtures/rails6/app/db/schema.rb +0 -29
  500. data/features/fixtures/rails6/app/db/seeds.rb +0 -7
  501. data/features/fixtures/rails6/app/lib/assets/.keep +0 -0
  502. data/features/fixtures/rails6/app/lib/tasks/.keep +0 -0
  503. data/features/fixtures/rails6/app/log/.keep +0 -0
  504. data/features/fixtures/rails6/app/package.json +0 -15
  505. data/features/fixtures/rails6/app/postcss.config.js +0 -12
  506. data/features/fixtures/rails6/app/public/404.html +0 -67
  507. data/features/fixtures/rails6/app/public/422.html +0 -67
  508. data/features/fixtures/rails6/app/public/500.html +0 -66
  509. data/features/fixtures/rails6/app/public/apple-touch-icon-precomposed.png +0 -0
  510. data/features/fixtures/rails6/app/public/apple-touch-icon.png +0 -0
  511. data/features/fixtures/rails6/app/public/favicon.ico +0 -0
  512. data/features/fixtures/rails6/app/public/robots.txt +0 -1
  513. data/features/fixtures/rails6/app/storage/.keep +0 -0
  514. data/features/fixtures/rails6/app/test/application_system_test_case.rb +0 -5
  515. data/features/fixtures/rails6/app/test/channels/application_cable/connection_test.rb +0 -11
  516. data/features/fixtures/rails6/app/test/controllers/.keep +0 -0
  517. data/features/fixtures/rails6/app/test/fixtures/.keep +0 -0
  518. data/features/fixtures/rails6/app/test/fixtures/files/.keep +0 -0
  519. data/features/fixtures/rails6/app/test/helpers/.keep +0 -0
  520. data/features/fixtures/rails6/app/test/integration/.keep +0 -0
  521. data/features/fixtures/rails6/app/test/mailers/.keep +0 -0
  522. data/features/fixtures/rails6/app/test/models/.keep +0 -0
  523. data/features/fixtures/rails6/app/test/system/.keep +0 -0
  524. data/features/fixtures/rails6/app/test/test_helper.rb +0 -13
  525. data/features/fixtures/rails6/app/tmp/.keep +0 -0
  526. data/features/fixtures/rails6/app/yarn.lock +0 -6082
  527. data/features/fixtures/resque/.dockerignore +0 -1
  528. data/features/fixtures/resque/Dockerfile +0 -14
  529. data/features/fixtures/resque/Gemfile +0 -6
  530. data/features/fixtures/resque/Rakefile +0 -4
  531. data/features/fixtures/resque/app.rb +0 -12
  532. data/features/fixtures/sidekiq/.dockerignore +0 -2
  533. data/features/fixtures/sidekiq/Dockerfile +0 -19
  534. data/features/fixtures/sidekiq/app/Gemfile +0 -6
  535. data/features/fixtures/sidekiq/app/app.rb +0 -35
  536. data/features/fixtures/sidekiq/app/initializers/HandledError.rb +0 -3
  537. data/features/fixtures/sidekiq/app/initializers/UnhandledError.rb +0 -3
  538. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_false.json +0 -11
  539. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_true.json +0 -12
  540. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_false.json +0 -11
  541. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_true.json +0 -12
  542. data/features/fixtures/sinatra1/.dockerignore +0 -1
  543. data/features/fixtures/sinatra1/Dockerfile +0 -13
  544. data/features/fixtures/sinatra1/Gemfile +0 -4
  545. data/features/fixtures/sinatra1/app.rb +0 -9
  546. data/features/fixtures/sinatra2/.dockerignore +0 -1
  547. data/features/fixtures/sinatra2/Dockerfile +0 -13
  548. data/features/fixtures/sinatra2/Gemfile +0 -4
  549. data/features/fixtures/sinatra2/app.rb +0 -9
  550. data/features/plain_features/add_tab.feature +0 -122
  551. data/features/plain_features/api_key.feature +0 -25
  552. data/features/plain_features/app_type.feature +0 -27
  553. data/features/plain_features/app_version.feature +0 -27
  554. data/features/plain_features/auto_notify.feature +0 -23
  555. data/features/plain_features/delivery.feature +0 -68
  556. data/features/plain_features/exception_data.feature +0 -120
  557. data/features/plain_features/filters.feature +0 -48
  558. data/features/plain_features/handled_errors.feature +0 -104
  559. data/features/plain_features/ignore_classes.feature +0 -29
  560. data/features/plain_features/ignore_report.feature +0 -30
  561. data/features/plain_features/proxies.feature +0 -68
  562. data/features/plain_features/release_stages.feature +0 -51
  563. data/features/plain_features/report_api_key.feature +0 -40
  564. data/features/plain_features/report_severity.feature +0 -42
  565. data/features/plain_features/report_stack_frames.feature +0 -117
  566. data/features/plain_features/report_user.feature +0 -118
  567. data/features/plain_features/unhandled_errors.feature +0 -104
  568. data/features/rails_features/api_key.feature +0 -65
  569. data/features/rails_features/app_type.feature +0 -73
  570. data/features/rails_features/app_version.feature +0 -93
  571. data/features/rails_features/auto_capture_sessions.feature +0 -123
  572. data/features/rails_features/auto_notify.feature +0 -126
  573. data/features/rails_features/before_notify.feature +0 -115
  574. data/features/rails_features/breadcrumbs.feature +0 -150
  575. data/features/rails_features/handled.feature +0 -112
  576. data/features/rails_features/ignore_classes.feature +0 -57
  577. data/features/rails_features/meta_data_filters.feature +0 -42
  578. data/features/rails_features/mongo_breadcrumbs.feature +0 -109
  579. data/features/rails_features/project_root.feature +0 -106
  580. data/features/rails_features/release_stage.feature +0 -95
  581. data/features/rails_features/send_code.feature +0 -64
  582. data/features/rails_features/send_environment.feature +0 -41
  583. data/features/rails_features/unhandled.feature +0 -43
  584. data/features/rails_features/user_info.feature +0 -93
  585. data/features/sidekiq.feature +0 -97
  586. data/features/steps/ruby_notifier_steps.rb +0 -31
  587. data/features/support/env.rb +0 -56
  588. data/issue_template.md +0 -48
  589. data/spec/breadcrumbs/breadcrumb_spec.rb +0 -93
  590. data/spec/breadcrumbs/validator_spec.rb +0 -201
  591. data/spec/bugsnag_spec.rb +0 -366
  592. data/spec/cleaner_spec.rb +0 -158
  593. data/spec/configuration_spec.rb +0 -430
  594. data/spec/fixtures/apps/rails-initializer-config/Gemfile +0 -5
  595. data/spec/fixtures/apps/rails-initializer-config/config.ru +0 -16
  596. data/spec/fixtures/apps/rails-initializer-config/config/initializers/bugsnag.rb +0 -3
  597. data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +0 -5
  598. data/spec/fixtures/apps/rails-invalid-initializer-config/config.ru +0 -16
  599. data/spec/fixtures/apps/rails-invalid-initializer-config/config/initializers/bugsnag.rb +0 -3
  600. data/spec/fixtures/apps/rails-no-config/Gemfile +0 -5
  601. data/spec/fixtures/apps/rails-no-config/config.ru +0 -16
  602. data/spec/fixtures/apps/scripts/Gemfile +0 -3
  603. data/spec/fixtures/apps/scripts/configure_invalid_key.rb +0 -5
  604. data/spec/fixtures/apps/scripts/configure_key.rb +0 -5
  605. data/spec/fixtures/apps/scripts/no_config.rb +0 -3
  606. data/spec/fixtures/crashes/end_of_file.rb +0 -9
  607. data/spec/fixtures/crashes/short_file.rb +0 -1
  608. data/spec/fixtures/crashes/start_of_file.rb +0 -9
  609. data/spec/fixtures/middleware/internal_info_setter.rb +0 -11
  610. data/spec/fixtures/middleware/public_info_setter.rb +0 -11
  611. data/spec/fixtures/tasks/Rakefile +0 -26
  612. data/spec/helper_spec.rb +0 -162
  613. data/spec/integration_spec.rb +0 -107
  614. data/spec/integrations/clearance_user_spec.rb +0 -38
  615. data/spec/integrations/logger_spec.rb +0 -134
  616. data/spec/integrations/mailman_spec.rb +0 -83
  617. data/spec/integrations/mongo_spec.rb +0 -262
  618. data/spec/integrations/que_spec.rb +0 -94
  619. data/spec/integrations/rack_spec.rb +0 -230
  620. data/spec/integrations/rails3_request_spec.rb +0 -67
  621. data/spec/integrations/rake_spec.rb +0 -71
  622. data/spec/integrations/resque_spec.rb +0 -99
  623. data/spec/integrations/shoryuken_spec.rb +0 -70
  624. data/spec/integrations/sidekiq_spec.rb +0 -137
  625. data/spec/integrations/warden_user_spec.rb +0 -41
  626. data/spec/middleware/exception_meta_data_spec.rb +0 -104
  627. data/spec/middleware_spec.rb +0 -254
  628. data/spec/middleware_stack_spec.rb +0 -151
  629. data/spec/report_spec.rb +0 -1282
  630. data/spec/session_tracker_spec.rb +0 -156
  631. data/spec/spec_helper.rb +0 -86
  632. data/spec/stacktrace_spec.rb +0 -90
  633. data/spec/utility/circular_buffer_spec.rb +0 -98
@@ -0,0 +1,137 @@
1
+ module Bugsnag
2
+ # @api private
3
+ class CodeExtractor
4
+ MAXIMUM_LINES_TO_KEEP = 7
5
+
6
+ ##
7
+ # @param configuration [Configuration]
8
+ def initialize(configuration)
9
+ @files = {}
10
+ @configuration = configuration
11
+ end
12
+
13
+ ##
14
+ # Add a file and its corresponding trace hash to be processed.
15
+ #
16
+ # @param path [String] The full path to the file
17
+ # @param trace [Hash]
18
+ # @return [void]
19
+ def add_file(path, trace)
20
+ # If the file doesn't exist we can't extract code from it, so we can skip
21
+ # this file entirely
22
+ unless File.exist?(path)
23
+ trace[:code] = nil
24
+
25
+ return
26
+ end
27
+
28
+ @files[path] ||= []
29
+ @files[path].push(trace)
30
+
31
+ # Record the line numbers we want to fetch for this trace
32
+ # We grab extra lines so that we can compensate if the error is on the
33
+ # first or last line of a file
34
+ first_line_number = trace[:lineNumber] - MAXIMUM_LINES_TO_KEEP
35
+
36
+ trace[:first_line_number] = first_line_number < 1 ? 1 : first_line_number
37
+ trace[:last_line_number] = trace[:lineNumber] + MAXIMUM_LINES_TO_KEEP
38
+ end
39
+
40
+ ##
41
+ # Add the code to the hashes that were given in {#add_file} by modifying
42
+ # them in-place. They will have a new ':code' key containing a hash of line
43
+ # number => string of code for that line
44
+ #
45
+ # @return [void]
46
+ def extract!
47
+ @files.each do |path, traces|
48
+ begin
49
+ line_numbers = Set.new
50
+
51
+ traces.each do |trace|
52
+ trace[:first_line_number].upto(trace[:last_line_number]) do |line_number|
53
+ line_numbers << line_number
54
+ end
55
+ end
56
+
57
+ extract_from(path, traces, line_numbers)
58
+ rescue StandardError => e
59
+ # Clean up after ourselves
60
+ traces.each do |trace|
61
+ trace[:code] ||= nil
62
+ trace.delete(:first_line_number)
63
+ trace.delete(:last_line_number)
64
+ end
65
+
66
+ @configuration.warn("Error extracting code: #{e.inspect}")
67
+ end
68
+ end
69
+ end
70
+
71
+ private
72
+
73
+ ##
74
+ # @param path [String]
75
+ # @param traces [Array<Hash>]
76
+ # @param line_numbers [Set<Integer>]
77
+ # @return [void]
78
+ def extract_from(path, traces, line_numbers)
79
+ code = {}
80
+
81
+ File.open(path) do |file|
82
+ current_line_number = 0
83
+
84
+ file.each_line do |line|
85
+ current_line_number += 1
86
+
87
+ next unless line_numbers.include?(current_line_number)
88
+
89
+ code[current_line_number] = line[0...200].rstrip
90
+ end
91
+ end
92
+
93
+ associate_code_with_trace(code, traces)
94
+ end
95
+
96
+ ##
97
+ # @param code [Hash{Integer => String}]
98
+ # @param traces [Array<Hash>]
99
+ # @return [void]
100
+ def associate_code_with_trace(code, traces)
101
+ traces.each do |trace|
102
+ trace[:code] = {}
103
+
104
+ code.each do |line_number, line|
105
+ # If we've gone past the last line we care about, we can stop iterating
106
+ break if line_number > trace[:last_line_number]
107
+
108
+ # Skip lines that aren't in the range we want
109
+ next unless line_number >= trace[:first_line_number]
110
+
111
+ trace[:code][line_number] = line
112
+ end
113
+
114
+ trim_excess_lines(trace[:code], trace[:lineNumber])
115
+ trace.delete(:first_line_number)
116
+ trace.delete(:last_line_number)
117
+ end
118
+ end
119
+
120
+ ##
121
+ # @param code [Hash{Integer => String}]
122
+ # @param line_number [Integer]
123
+ # @return [void]
124
+ def trim_excess_lines(code, line_number)
125
+ while code.length > MAXIMUM_LINES_TO_KEEP
126
+ last_line = code.keys.max
127
+ first_line = code.keys.min
128
+
129
+ if (last_line - line_number) > (line_number - first_line)
130
+ code.delete(last_line)
131
+ else
132
+ code.delete(first_line)
133
+ end
134
+ end
135
+ end
136
+ end
137
+ end
@@ -3,6 +3,7 @@ require "socket"
3
3
  require "logger"
4
4
  require "bugsnag/middleware_stack"
5
5
  require "bugsnag/middleware/callbacks"
6
+ require "bugsnag/middleware/discard_error_class"
6
7
  require "bugsnag/middleware/exception_meta_data"
7
8
  require "bugsnag/middleware/ignore_error_class"
8
9
  require "bugsnag/middleware/suggestion_data"
@@ -23,7 +24,6 @@ module Bugsnag
23
24
  attr_accessor :send_code
24
25
  attr_accessor :project_root
25
26
  attr_accessor :app_version
26
- attr_accessor :app_type
27
27
  attr_accessor :meta_data_filters
28
28
  attr_accessor :logger
29
29
  attr_accessor :middleware
@@ -35,9 +35,13 @@ module Bugsnag
35
35
  attr_accessor :timeout
36
36
  attr_accessor :hostname
37
37
  attr_accessor :runtime_versions
38
- attr_accessor :ignore_classes
38
+ attr_accessor :discard_classes
39
39
  attr_accessor :auto_capture_sessions
40
40
 
41
+ ##
42
+ # @deprecated Use {#discard_classes} instead
43
+ attr_accessor :ignore_classes
44
+
41
45
  ##
42
46
  # @return [String] URL error notifications will be delivered to
43
47
  attr_reader :notify_endpoint
@@ -63,6 +67,14 @@ module Bugsnag
63
67
  # @return [Integer] the maximum allowable amount of breadcrumbs per thread
64
68
  attr_reader :max_breadcrumbs
65
69
 
70
+ ##
71
+ # @return [Regexp] matching file paths out of project
72
+ attr_accessor :vendor_path
73
+
74
+ ##
75
+ # @return [Array]
76
+ attr_reader :scopes_to_filter
77
+
66
78
  API_KEY_REGEX = /[0-9a-f]{32}/i
67
79
  THREAD_LOCAL_NAME = "bugsnag_req_data"
68
80
 
@@ -81,6 +93,11 @@ module Bugsnag
81
93
 
82
94
  DEFAULT_MAX_BREADCRUMBS = 25
83
95
 
96
+ # Path to vendored code. Used to mark file paths as out of project.
97
+ DEFAULT_VENDOR_PATH = %r{^(vendor/|\.bundle/)}
98
+
99
+ DEFAULT_SCOPES_TO_FILTER = ['events.metaData', 'events.breadcrumbs.metaData'].freeze
100
+
84
101
  alias :track_sessions :auto_capture_sessions
85
102
  alias :track_sessions= :auto_capture_sessions=
86
103
 
@@ -92,11 +109,13 @@ module Bugsnag
92
109
  self.send_environment = false
93
110
  self.send_code = true
94
111
  self.meta_data_filters = Set.new(DEFAULT_META_DATA_FILTERS)
112
+ self.scopes_to_filter = DEFAULT_SCOPES_TO_FILTER
95
113
  self.hostname = default_hostname
96
114
  self.runtime_versions = {}
97
115
  self.runtime_versions["ruby"] = RUBY_VERSION
98
116
  self.runtime_versions["jruby"] = JRUBY_VERSION if defined?(JRUBY_VERSION)
99
117
  self.timeout = 15
118
+ self.release_stage = ENV['BUGSNAG_RELEASE_STAGE']
100
119
  self.notify_release_stages = nil
101
120
  self.auto_capture_sessions = true
102
121
 
@@ -115,7 +134,10 @@ module Bugsnag
115
134
 
116
135
  # SystemExit and SignalException are common Exception types seen with
117
136
  # successful exits and are not automatically reported to Bugsnag
137
+ # TODO move these defaults into `discard_classes` when `ignore_classes`
138
+ # is removed
118
139
  self.ignore_classes = Set.new([SystemExit, SignalException])
140
+ self.discard_classes = Set.new([])
119
141
 
120
142
  # Read the API key from the environment
121
143
  self.api_key = ENV["BUGSNAG_API_KEY"]
@@ -125,6 +147,11 @@ module Bugsnag
125
147
  parse_proxy(proxy_uri)
126
148
  end
127
149
 
150
+ # Set up vendor_path regex to mark stacktrace file paths as out of project.
151
+ # Stacktrace lines that matches regex will be marked as "out of project"
152
+ # will only appear in the full trace.
153
+ self.vendor_path = DEFAULT_VENDOR_PATH
154
+
128
155
  # Set up logging
129
156
  self.logger = Logger.new(STDOUT)
130
157
  self.logger.level = Logger::INFO
@@ -135,6 +162,7 @@ module Bugsnag
135
162
  # Configure the bugsnag middleware stack
136
163
  self.internal_middleware = Bugsnag::MiddlewareStack.new
137
164
  self.internal_middleware.use Bugsnag::Middleware::ExceptionMetaData
165
+ self.internal_middleware.use Bugsnag::Middleware::DiscardErrorClass
138
166
  self.internal_middleware.use Bugsnag::Middleware::IgnoreErrorClass
139
167
  self.internal_middleware.use Bugsnag::Middleware::SuggestionData
140
168
  self.internal_middleware.use Bugsnag::Middleware::ClassifyError
@@ -169,6 +197,54 @@ module Bugsnag
169
197
  @default_delivery_method = delivery_method
170
198
  end
171
199
 
200
+ ##
201
+ # Get the type of application executing the current code
202
+ #
203
+ # This is usually used to represent if you are running in a Rails server,
204
+ # Sidekiq job, Rake task etc... Bugsnag will automatically detect most
205
+ # application types for you
206
+ #
207
+ # @return [String, nil]
208
+ def app_type
209
+ @app_type || @detected_app_type
210
+ end
211
+
212
+ ##
213
+ # Set the type of application executing the current code
214
+ #
215
+ # If an app_type is set, this will be used instead of the automatically
216
+ # detected app_type that Bugsnag would otherwise use
217
+ #
218
+ # @param app_type [String]
219
+ # @return [void]
220
+ def app_type=(app_type)
221
+ @app_type = app_type
222
+ end
223
+
224
+ ##
225
+ # Get the detected app_type, which is used when one isn't set explicitly
226
+ #
227
+ # @api private
228
+ #
229
+ # @return [String, nil]
230
+ def detected_app_type
231
+ @detected_app_type
232
+ end
233
+
234
+ ##
235
+ # Set the detected app_type, which is used when one isn't set explicitly
236
+ #
237
+ # This allows Bugsnag's integrations to say 'this is a Rails app' while
238
+ # allowing the user to overwrite this if they wish
239
+ #
240
+ # @api private
241
+ #
242
+ # @param app_type [String]
243
+ # @return [void]
244
+ def detected_app_type=(app_type)
245
+ @detected_app_type = app_type
246
+ end
247
+
172
248
  ##
173
249
  # Indicates whether the notifier should send a notification based on the
174
250
  # configured release stage.
@@ -290,8 +366,37 @@ module Bugsnag
290
366
  @enable_sessions = false
291
367
  end
292
368
 
369
+ ##
370
+ # Add the given callback to the list of on_error callbacks
371
+ #
372
+ # The on_error callbacks will be called when an error is captured or reported
373
+ # and are passed a {Bugsnag::Report} object
374
+ #
375
+ # Returning false from an on_error callback will cause the error to be ignored
376
+ # and will prevent any remaining callbacks from being called
377
+ #
378
+ # @param callback [Proc]
379
+ # @return [void]
380
+ def add_on_error(callback)
381
+ middleware.use(callback)
382
+ end
383
+
384
+ ##
385
+ # Remove the given callback from the list of on_error callbacks
386
+ #
387
+ # Note that this must be the same Proc instance that was passed to
388
+ # {#add_on_error}, otherwise it will not be removed
389
+ #
390
+ # @param callback [Proc]
391
+ # @return [void]
392
+ def remove_on_error(callback)
393
+ middleware.remove(callback)
394
+ end
395
+
293
396
  private
294
397
 
398
+ attr_writer :scopes_to_filter
399
+
295
400
  PROG_NAME = "[Bugsnag]"
296
401
 
297
402
  def default_hostname
@@ -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
@@ -17,12 +17,10 @@ module Bugsnag
17
17
  def self.trim_if_needed(value)
18
18
  value = "" if value.nil?
19
19
 
20
- # Sanitize object
21
- sanitized_value = Bugsnag::Cleaner.clean_object_encoding(value)
22
- return sanitized_value unless payload_too_long?(sanitized_value)
20
+ return value unless payload_too_long?(value)
23
21
 
24
22
  # Trim metadata
25
- reduced_value = trim_metadata(sanitized_value)
23
+ reduced_value = trim_metadata(value)
26
24
  return reduced_value unless payload_too_long?(reduced_value)
27
25
 
28
26
  # Trim code from stacktrace
@@ -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