bugsnag 6.15.0 → 6.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (655) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +11 -0
  3. data/CHANGELOG.md +72 -0
  4. data/VERSION +1 -1
  5. data/bugsnag.gemspec +1 -1
  6. data/lib/bugsnag.rb +81 -17
  7. data/lib/bugsnag/breadcrumbs/breadcrumb.rb +1 -1
  8. data/lib/bugsnag/breadcrumbs/validator.rb +0 -22
  9. data/lib/bugsnag/configuration.rb +182 -24
  10. data/lib/bugsnag/delivery/synchronous.rb +1 -1
  11. data/lib/bugsnag/delivery/thread_queue.rb +18 -3
  12. data/lib/bugsnag/helpers.rb +17 -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/mongo.rb +5 -3
  16. data/lib/bugsnag/integrations/que.rb +2 -1
  17. data/lib/bugsnag/integrations/rack.rb +3 -1
  18. data/lib/bugsnag/integrations/rails/rails_breadcrumbs.rb +2 -0
  19. data/lib/bugsnag/integrations/railtie.rb +31 -8
  20. data/lib/bugsnag/integrations/rake.rb +4 -2
  21. data/lib/bugsnag/integrations/resque.rb +12 -5
  22. data/lib/bugsnag/integrations/shoryuken.rb +2 -1
  23. data/lib/bugsnag/integrations/sidekiq.rb +1 -2
  24. data/lib/bugsnag/middleware/classify_error.rb +1 -0
  25. data/lib/bugsnag/middleware/delayed_job.rb +1 -0
  26. data/lib/bugsnag/report.rb +84 -2
  27. metadata +4 -631
  28. data/.buildkite/pipeline.yml +0 -470
  29. data/.github/PULL_REQUEST_TEMPLATE.md +0 -84
  30. data/.gitignore +0 -55
  31. data/.rdoc_options +0 -27
  32. data/.rspec +0 -3
  33. data/.rubocop.yml +0 -57
  34. data/.rubocop_todo.yml +0 -1049
  35. data/CONTRIBUTING.md +0 -64
  36. data/Gemfile +0 -50
  37. data/Rakefile +0 -37
  38. data/TESTING.md +0 -81
  39. data/UPGRADING.md +0 -91
  40. data/docker-compose.yml +0 -46
  41. data/dockerfiles/Dockerfile.jruby-unit-tests +0 -13
  42. data/dockerfiles/Dockerfile.ruby-maze-runner +0 -26
  43. data/dockerfiles/Dockerfile.ruby-unit-tests +0 -12
  44. data/features/.gitignore +0 -1
  45. data/features/delayed_job.feature +0 -36
  46. data/features/fixtures/delayed_job/Dockerfile +0 -15
  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 -24
  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 -303
  122. data/features/fixtures/expected_breadcrumbs/active_job.json +0 -9
  123. data/features/fixtures/expected_breadcrumbs/mongo_failed.json +0 -15
  124. data/features/fixtures/expected_breadcrumbs/mongo_filtered_request.json +0 -15
  125. data/features/fixtures/expected_breadcrumbs/mongo_filtered_result.json +0 -15
  126. data/features/fixtures/expected_breadcrumbs/mongo_success.json +0 -14
  127. data/features/fixtures/expected_breadcrumbs/request.json +0 -13
  128. data/features/fixtures/expected_breadcrumbs/sql_with_bindings.json +0 -12
  129. data/features/fixtures/expected_breadcrumbs/sql_without_bindings.json +0 -11
  130. data/features/fixtures/plain/.dockerignore +0 -2
  131. data/features/fixtures/plain/Dockerfile +0 -11
  132. data/features/fixtures/plain/app/Gemfile +0 -3
  133. data/features/fixtures/plain/app/app.rb +0 -38
  134. data/features/fixtures/plain/app/configuration/api_key.rb +0 -9
  135. data/features/fixtures/plain/app/configuration/proxy.rb +0 -14
  136. data/features/fixtures/plain/app/configuration/send_handled.rb +0 -7
  137. data/features/fixtures/plain/app/configuration/send_unhandled.rb +0 -9
  138. data/features/fixtures/plain/app/delivery/fork_threadpool.rb +0 -27
  139. data/features/fixtures/plain/app/delivery/synchronous.rb +0 -14
  140. data/features/fixtures/plain/app/delivery/threadpool.rb +0 -14
  141. data/features/fixtures/plain/app/exception_data/crash.rb +0 -34
  142. data/features/fixtures/plain/app/exception_data/handled_context.rb +0 -10
  143. data/features/fixtures/plain/app/exception_data/handled_hash.rb +0 -10
  144. data/features/fixtures/plain/app/exception_data/handled_meta_data.rb +0 -10
  145. data/features/fixtures/plain/app/exception_data/handled_user_id.rb +0 -10
  146. data/features/fixtures/plain/app/exception_data/unhandled_context.rb +0 -7
  147. data/features/fixtures/plain/app/exception_data/unhandled_hash.rb +0 -7
  148. data/features/fixtures/plain/app/exception_data/unhandled_meta_data.rb +0 -7
  149. data/features/fixtures/plain/app/exception_data/unhandled_user_id.rb +0 -7
  150. data/features/fixtures/plain/app/filters/additional_filters.rb +0 -11
  151. data/features/fixtures/plain/app/filters/default_filters.rb +0 -15
  152. data/features/fixtures/plain/app/handled/block_metadata.rb +0 -15
  153. data/features/fixtures/plain/app/handled/ignore_exception.rb +0 -12
  154. data/features/fixtures/plain/app/handled/notify_exception.rb +0 -9
  155. data/features/fixtures/plain/app/handled/notify_string.rb +0 -9
  156. data/features/fixtures/plain/app/ignore_classes/handled.rb +0 -8
  157. data/features/fixtures/plain/app/ignore_classes/ignore_error.rb +0 -8
  158. data/features/fixtures/plain/app/ignore_classes/unhandled.rb +0 -4
  159. data/features/fixtures/plain/app/report_modification/add_tab.rb +0 -16
  160. data/features/fixtures/plain/app/report_modification/add_tab_existing.rb +0 -22
  161. data/features/fixtures/plain/app/report_modification/add_tab_override.rb +0 -19
  162. data/features/fixtures/plain/app/report_modification/ignore_report.rb +0 -9
  163. data/features/fixtures/plain/app/report_modification/initiators/handled_before_notify.rb +0 -10
  164. data/features/fixtures/plain/app/report_modification/initiators/handled_block.rb +0 -8
  165. data/features/fixtures/plain/app/report_modification/initiators/handled_on_error.rb +0 -10
  166. data/features/fixtures/plain/app/report_modification/initiators/unhandled_before_notify.rb +0 -11
  167. data/features/fixtures/plain/app/report_modification/initiators/unhandled_on_error.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/handled_on_error.rb +0 -29
  176. data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_before_notify.rb +0 -26
  177. data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_on_error.rb +0 -26
  178. data/features/fixtures/plain/app/stack_frame_modification/mark_frames_in_project.rb +0 -13
  179. data/features/fixtures/plain/app/stack_frame_modification/remove_stack_frame.rb +0 -9
  180. data/features/fixtures/plain/app/unhandled/bad_syntax.rb +0 -1
  181. data/features/fixtures/plain/app/unhandled/custom_error.rb +0 -9
  182. data/features/fixtures/plain/app/unhandled/interrupt.rb +0 -6
  183. data/features/fixtures/plain/app/unhandled/load_error.rb +0 -6
  184. data/features/fixtures/plain/app/unhandled/local_jump_error.rb +0 -10
  185. data/features/fixtures/plain/app/unhandled/name_error.rb +0 -6
  186. data/features/fixtures/plain/app/unhandled/no_method_error.rb +0 -6
  187. data/features/fixtures/plain/app/unhandled/runtime_error.rb +0 -6
  188. data/features/fixtures/plain/app/unhandled/syntax_error.rb +0 -6
  189. data/features/fixtures/plain/app/unhandled/system_call_error.rb +0 -6
  190. data/features/fixtures/plain/app/unhandled/system_exit.rb +0 -6
  191. data/features/fixtures/plain/json/delivery_fork.json +0 -4
  192. data/features/fixtures/plain/json/delivery_synchronous.json +0 -4
  193. data/features/fixtures/plain/json/delivery_threadpool.json +0 -4
  194. data/features/fixtures/plain/json/filters_default_metadata_filters.json +0 -9
  195. data/features/fixtures/rack1/.dockerignore +0 -1
  196. data/features/fixtures/rack1/Dockerfile +0 -13
  197. data/features/fixtures/rack1/Gemfile +0 -4
  198. data/features/fixtures/rack1/app.rb +0 -8
  199. data/features/fixtures/rack2/.dockerignore +0 -1
  200. data/features/fixtures/rack2/Dockerfile +0 -13
  201. data/features/fixtures/rack2/Gemfile +0 -4
  202. data/features/fixtures/rack2/app.rb +0 -8
  203. data/features/fixtures/rails3/.dockerignore +0 -1
  204. data/features/fixtures/rails3/Dockerfile +0 -15
  205. data/features/fixtures/rails3/app/.gitignore +0 -15
  206. data/features/fixtures/rails3/app/Gemfile +0 -17
  207. data/features/fixtures/rails3/app/Rakefile +0 -7
  208. data/features/fixtures/rails3/app/app/assets/images/rails.png +0 -0
  209. data/features/fixtures/rails3/app/app/assets/javascripts/application.js +0 -15
  210. data/features/fixtures/rails3/app/app/assets/stylesheets/application.css +0 -13
  211. data/features/fixtures/rails3/app/app/controllers/api_key_controller.rb +0 -20
  212. data/features/fixtures/rails3/app/app/controllers/app_type_controller.rb +0 -20
  213. data/features/fixtures/rails3/app/app/controllers/app_version_controller.rb +0 -25
  214. data/features/fixtures/rails3/app/app/controllers/application_controller.rb +0 -7
  215. data/features/fixtures/rails3/app/app/controllers/auto_notify_controller.rb +0 -31
  216. data/features/fixtures/rails3/app/app/controllers/before_notify_controller.rb +0 -44
  217. data/features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb +0 -19
  218. data/features/fixtures/rails3/app/app/controllers/handled_controller.rb +0 -26
  219. data/features/fixtures/rails3/app/app/controllers/ignore_classes_controller.rb +0 -23
  220. data/features/fixtures/rails3/app/app/controllers/metadata_filters_controller.rb +0 -16
  221. data/features/fixtures/rails3/app/app/controllers/project_root_controller.rb +0 -25
  222. data/features/fixtures/rails3/app/app/controllers/release_stage_controller.rb +0 -20
  223. data/features/fixtures/rails3/app/app/controllers/send_code_controller.rb +0 -20
  224. data/features/fixtures/rails3/app/app/controllers/send_environment_controller.rb +0 -12
  225. data/features/fixtures/rails3/app/app/controllers/session_tracking_controller.rb +0 -24
  226. data/features/fixtures/rails3/app/app/controllers/unhandled_controller.rb +0 -11
  227. data/features/fixtures/rails3/app/app/controllers/warden_controller.rb +0 -30
  228. data/features/fixtures/rails3/app/app/helpers/application_helper.rb +0 -2
  229. data/features/fixtures/rails3/app/app/mailers/.gitkeep +0 -0
  230. data/features/fixtures/rails3/app/app/models/.gitkeep +0 -0
  231. data/features/fixtures/rails3/app/app/models/user.rb +0 -6
  232. data/features/fixtures/rails3/app/app/views/layouts/application.html.erb +0 -14
  233. data/features/fixtures/rails3/app/config.ru +0 -4
  234. data/features/fixtures/rails3/app/config/application.rb +0 -67
  235. data/features/fixtures/rails3/app/config/boot.rb +0 -6
  236. data/features/fixtures/rails3/app/config/database.yml +0 -31
  237. data/features/fixtures/rails3/app/config/environment.rb +0 -5
  238. data/features/fixtures/rails3/app/config/environments/development.rb +0 -37
  239. data/features/fixtures/rails3/app/config/environments/production.rb +0 -67
  240. data/features/fixtures/rails3/app/config/environments/rails_env.rb +0 -37
  241. data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +0 -29
  242. data/features/fixtures/rails3/app/config/initializers/secret_token.rb +0 -7
  243. data/features/fixtures/rails3/app/config/initializers/session_store.rb +0 -8
  244. data/features/fixtures/rails3/app/config/initializers/warden.rb +0 -3
  245. data/features/fixtures/rails3/app/config/initializers/wrap_parameters.rb +0 -14
  246. data/features/fixtures/rails3/app/config/locales/en.yml +0 -5
  247. data/features/fixtures/rails3/app/config/routes.rb +0 -19
  248. data/features/fixtures/rails3/app/db/migrate/20180423142727_create_users.rb +0 -45
  249. data/features/fixtures/rails3/app/db/schema.rb +0 -37
  250. data/features/fixtures/rails3/app/db/seeds.rb +0 -7
  251. data/features/fixtures/rails3/app/lib/assets/.gitkeep +0 -0
  252. data/features/fixtures/rails3/app/lib/strategies/token_strategy.rb +0 -12
  253. data/features/fixtures/rails3/app/lib/tasks/.gitkeep +0 -0
  254. data/features/fixtures/rails3/app/log/.gitkeep +0 -0
  255. data/features/fixtures/rails3/app/public/404.html +0 -26
  256. data/features/fixtures/rails3/app/public/422.html +0 -26
  257. data/features/fixtures/rails3/app/public/500.html +0 -25
  258. data/features/fixtures/rails3/app/public/favicon.ico +0 -0
  259. data/features/fixtures/rails3/app/public/index.html +0 -241
  260. data/features/fixtures/rails3/app/public/robots.txt +0 -5
  261. data/features/fixtures/rails3/app/script/rails +0 -6
  262. data/features/fixtures/rails4/.dockerignore +0 -1
  263. data/features/fixtures/rails4/Dockerfile +0 -17
  264. data/features/fixtures/rails4/app/.gitignore +0 -16
  265. data/features/fixtures/rails4/app/Gemfile +0 -46
  266. data/features/fixtures/rails4/app/README.rdoc +0 -28
  267. data/features/fixtures/rails4/app/Rakefile +0 -6
  268. data/features/fixtures/rails4/app/app/assets/images/.keep +0 -0
  269. data/features/fixtures/rails4/app/app/assets/javascripts/application.js +0 -16
  270. data/features/fixtures/rails4/app/app/assets/stylesheets/application.css +0 -13
  271. data/features/fixtures/rails4/app/app/controllers/api_key_controller.rb +0 -20
  272. data/features/fixtures/rails4/app/app/controllers/app_type_controller.rb +0 -20
  273. data/features/fixtures/rails4/app/app/controllers/app_version_controller.rb +0 -25
  274. data/features/fixtures/rails4/app/app/controllers/application_controller.rb +0 -7
  275. data/features/fixtures/rails4/app/app/controllers/auto_notify_controller.rb +0 -31
  276. data/features/fixtures/rails4/app/app/controllers/before_notify_controller.rb +0 -44
  277. data/features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb +0 -26
  278. data/features/fixtures/rails4/app/app/controllers/concerns/.keep +0 -0
  279. data/features/fixtures/rails4/app/app/controllers/devise_controller.rb +0 -32
  280. data/features/fixtures/rails4/app/app/controllers/handled_controller.rb +0 -26
  281. data/features/fixtures/rails4/app/app/controllers/ignore_classes_controller.rb +0 -23
  282. data/features/fixtures/rails4/app/app/controllers/metadata_filters_controller.rb +0 -16
  283. data/features/fixtures/rails4/app/app/controllers/mongo_controller.rb +0 -23
  284. data/features/fixtures/rails4/app/app/controllers/project_root_controller.rb +0 -25
  285. data/features/fixtures/rails4/app/app/controllers/release_stage_controller.rb +0 -20
  286. data/features/fixtures/rails4/app/app/controllers/send_code_controller.rb +0 -20
  287. data/features/fixtures/rails4/app/app/controllers/send_environment_controller.rb +0 -12
  288. data/features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb +0 -24
  289. data/features/fixtures/rails4/app/app/controllers/unhandled_controller.rb +0 -11
  290. data/features/fixtures/rails4/app/app/helpers/application_helper.rb +0 -2
  291. data/features/fixtures/rails4/app/app/jobs/application_job.rb +0 -2
  292. data/features/fixtures/rails4/app/app/jobs/notify_job.rb +0 -5
  293. data/features/fixtures/rails4/app/app/mailers/.keep +0 -0
  294. data/features/fixtures/rails4/app/app/models/.keep +0 -0
  295. data/features/fixtures/rails4/app/app/models/concerns/.keep +0 -0
  296. data/features/fixtures/rails4/app/app/models/mongo_model.rb +0 -6
  297. data/features/fixtures/rails4/app/app/models/user.rb +0 -6
  298. data/features/fixtures/rails4/app/app/views/layouts/application.html.erb +0 -14
  299. data/features/fixtures/rails4/app/config.ru +0 -4
  300. data/features/fixtures/rails4/app/config/application.rb +0 -23
  301. data/features/fixtures/rails4/app/config/boot.rb +0 -4
  302. data/features/fixtures/rails4/app/config/database.yml +0 -31
  303. data/features/fixtures/rails4/app/config/environment.rb +0 -5
  304. data/features/fixtures/rails4/app/config/environments/development.rb +0 -31
  305. data/features/fixtures/rails4/app/config/environments/production.rb +0 -81
  306. data/features/fixtures/rails4/app/config/environments/rails_env.rb +0 -30
  307. data/features/fixtures/rails4/app/config/environments/test.rb +0 -31
  308. data/features/fixtures/rails4/app/config/initializers/backtrace_silencers.rb +0 -7
  309. data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +0 -29
  310. data/features/fixtures/rails4/app/config/initializers/devise.rb +0 -283
  311. data/features/fixtures/rails4/app/config/initializers/filter_parameter_logging.rb +0 -5
  312. data/features/fixtures/rails4/app/config/initializers/inflections.rb +0 -16
  313. data/features/fixtures/rails4/app/config/initializers/mime_types.rb +0 -5
  314. data/features/fixtures/rails4/app/config/initializers/secret_token.rb +0 -12
  315. data/features/fixtures/rails4/app/config/initializers/session_store.rb +0 -3
  316. data/features/fixtures/rails4/app/config/initializers/wrap_parameters.rb +0 -14
  317. data/features/fixtures/rails4/app/config/locales/devise.en.yml +0 -64
  318. data/features/fixtures/rails4/app/config/locales/en.yml +0 -23
  319. data/features/fixtures/rails4/app/config/mongoid.yml +0 -22
  320. data/features/fixtures/rails4/app/config/routes.rb +0 -21
  321. data/features/fixtures/rails4/app/db/migrate/20180420160315_devise_create_users.rb +0 -47
  322. data/features/fixtures/rails4/app/db/seeds.rb +0 -7
  323. data/features/fixtures/rails4/app/lib/assets/.keep +0 -0
  324. data/features/fixtures/rails4/app/lib/tasks/.keep +0 -0
  325. data/features/fixtures/rails4/app/log/.keep +0 -0
  326. data/features/fixtures/rails4/app/public/404.html +0 -58
  327. data/features/fixtures/rails4/app/public/422.html +0 -58
  328. data/features/fixtures/rails4/app/public/500.html +0 -57
  329. data/features/fixtures/rails4/app/public/favicon.ico +0 -0
  330. data/features/fixtures/rails4/app/public/robots.txt +0 -5
  331. data/features/fixtures/rails4/app/test/controllers/.keep +0 -0
  332. data/features/fixtures/rails4/app/test/fixtures/.keep +0 -0
  333. data/features/fixtures/rails4/app/test/helpers/.keep +0 -0
  334. data/features/fixtures/rails4/app/test/integration/.keep +0 -0
  335. data/features/fixtures/rails4/app/test/mailers/.keep +0 -0
  336. data/features/fixtures/rails4/app/test/models/.keep +0 -0
  337. data/features/fixtures/rails4/app/test/test_helper.rb +0 -15
  338. data/features/fixtures/rails5/.dockerignore +0 -1
  339. data/features/fixtures/rails5/Dockerfile +0 -17
  340. data/features/fixtures/rails5/app/.gitignore +0 -21
  341. data/features/fixtures/rails5/app/Gemfile +0 -52
  342. data/features/fixtures/rails5/app/README.md +0 -24
  343. data/features/fixtures/rails5/app/Rakefile +0 -6
  344. data/features/fixtures/rails5/app/app/assets/config/manifest.js +0 -3
  345. data/features/fixtures/rails5/app/app/assets/images/.keep +0 -0
  346. data/features/fixtures/rails5/app/app/assets/javascripts/application.js +0 -16
  347. data/features/fixtures/rails5/app/app/assets/javascripts/cable.js +0 -13
  348. data/features/fixtures/rails5/app/app/assets/javascripts/channels/.keep +0 -0
  349. data/features/fixtures/rails5/app/app/assets/stylesheets/application.css +0 -15
  350. data/features/fixtures/rails5/app/app/channels/application_cable/channel.rb +0 -4
  351. data/features/fixtures/rails5/app/app/channels/application_cable/connection.rb +0 -4
  352. data/features/fixtures/rails5/app/app/controllers/api_key_controller.rb +0 -16
  353. data/features/fixtures/rails5/app/app/controllers/app_type_controller.rb +0 -16
  354. data/features/fixtures/rails5/app/app/controllers/app_version_controller.rb +0 -21
  355. data/features/fixtures/rails5/app/app/controllers/application_controller.rb +0 -7
  356. data/features/fixtures/rails5/app/app/controllers/auto_notify_controller.rb +0 -27
  357. data/features/fixtures/rails5/app/app/controllers/before_notify_controller.rb +0 -40
  358. data/features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb +0 -24
  359. data/features/fixtures/rails5/app/app/controllers/clearance_controller.rb +0 -33
  360. data/features/fixtures/rails5/app/app/controllers/concerns/.keep +0 -0
  361. data/features/fixtures/rails5/app/app/controllers/handled_controller.rb +0 -22
  362. data/features/fixtures/rails5/app/app/controllers/ignore_classes_controller.rb +0 -19
  363. data/features/fixtures/rails5/app/app/controllers/metadata_filters_controller.rb +0 -12
  364. data/features/fixtures/rails5/app/app/controllers/mongo_controller.rb +0 -22
  365. data/features/fixtures/rails5/app/app/controllers/project_root_controller.rb +0 -21
  366. data/features/fixtures/rails5/app/app/controllers/release_stage_controller.rb +0 -16
  367. data/features/fixtures/rails5/app/app/controllers/send_code_controller.rb +0 -16
  368. data/features/fixtures/rails5/app/app/controllers/send_environment_controller.rb +0 -8
  369. data/features/fixtures/rails5/app/app/controllers/session_tracking_controller.rb +0 -20
  370. data/features/fixtures/rails5/app/app/controllers/unhandled_controller.rb +0 -7
  371. data/features/fixtures/rails5/app/app/helpers/application_helper.rb +0 -2
  372. data/features/fixtures/rails5/app/app/jobs/application_job.rb +0 -2
  373. data/features/fixtures/rails5/app/app/jobs/notify_job.rb +0 -5
  374. data/features/fixtures/rails5/app/app/mailers/application_mailer.rb +0 -4
  375. data/features/fixtures/rails5/app/app/models/application_record.rb +0 -3
  376. data/features/fixtures/rails5/app/app/models/concerns/.keep +0 -0
  377. data/features/fixtures/rails5/app/app/models/mongo_model.rb +0 -6
  378. data/features/fixtures/rails5/app/app/models/user.rb +0 -3
  379. data/features/fixtures/rails5/app/app/views/layouts/application.html.erb +0 -14
  380. data/features/fixtures/rails5/app/app/views/layouts/mailer.html.erb +0 -13
  381. data/features/fixtures/rails5/app/app/views/layouts/mailer.text.erb +0 -1
  382. data/features/fixtures/rails5/app/config.ru +0 -5
  383. data/features/fixtures/rails5/app/config/application.rb +0 -15
  384. data/features/fixtures/rails5/app/config/boot.rb +0 -3
  385. data/features/fixtures/rails5/app/config/cable.yml +0 -9
  386. data/features/fixtures/rails5/app/config/database.yml +0 -29
  387. data/features/fixtures/rails5/app/config/environment.rb +0 -5
  388. data/features/fixtures/rails5/app/config/environments/development.rb +0 -55
  389. data/features/fixtures/rails5/app/config/environments/production.rb +0 -87
  390. data/features/fixtures/rails5/app/config/environments/rails_env.rb +0 -55
  391. data/features/fixtures/rails5/app/config/environments/test.rb +0 -55
  392. data/features/fixtures/rails5/app/config/initializers/assets.rb +0 -11
  393. data/features/fixtures/rails5/app/config/initializers/backtrace_silencers.rb +0 -7
  394. data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +0 -29
  395. data/features/fixtures/rails5/app/config/initializers/clearance.rb +0 -5
  396. data/features/fixtures/rails5/app/config/initializers/cookies_serializer.rb +0 -5
  397. data/features/fixtures/rails5/app/config/initializers/filter_parameter_logging.rb +0 -5
  398. data/features/fixtures/rails5/app/config/initializers/inflections.rb +0 -16
  399. data/features/fixtures/rails5/app/config/initializers/mime_types.rb +0 -4
  400. data/features/fixtures/rails5/app/config/initializers/new_framework_defaults.rb +0 -24
  401. data/features/fixtures/rails5/app/config/initializers/session_store.rb +0 -3
  402. data/features/fixtures/rails5/app/config/initializers/wrap_parameters.rb +0 -14
  403. data/features/fixtures/rails5/app/config/locales/devise.en.yml +0 -64
  404. data/features/fixtures/rails5/app/config/locales/en.yml +0 -23
  405. data/features/fixtures/rails5/app/config/mongoid.yml +0 -23
  406. data/features/fixtures/rails5/app/config/puma.rb +0 -47
  407. data/features/fixtures/rails5/app/config/routes.rb +0 -62
  408. data/features/fixtures/rails5/app/config/secrets.yml +0 -25
  409. data/features/fixtures/rails5/app/config/spring.rb +0 -6
  410. data/features/fixtures/rails5/app/db/migrate/20180426095545_create_users.rb +0 -17
  411. data/features/fixtures/rails5/app/db/schema.rb +0 -29
  412. data/features/fixtures/rails5/app/db/seeds.rb +0 -7
  413. data/features/fixtures/rails5/app/lib/assets/.keep +0 -0
  414. data/features/fixtures/rails5/app/lib/tasks/.keep +0 -0
  415. data/features/fixtures/rails5/app/log/.keep +0 -0
  416. data/features/fixtures/rails5/app/public/404.html +0 -67
  417. data/features/fixtures/rails5/app/public/422.html +0 -67
  418. data/features/fixtures/rails5/app/public/500.html +0 -66
  419. data/features/fixtures/rails5/app/public/apple-touch-icon-precomposed.png +0 -0
  420. data/features/fixtures/rails5/app/public/apple-touch-icon.png +0 -0
  421. data/features/fixtures/rails5/app/public/favicon.ico +0 -0
  422. data/features/fixtures/rails5/app/public/robots.txt +0 -5
  423. data/features/fixtures/rails5/app/test/controllers/.keep +0 -0
  424. data/features/fixtures/rails5/app/test/fixtures/.keep +0 -0
  425. data/features/fixtures/rails5/app/test/fixtures/files/.keep +0 -0
  426. data/features/fixtures/rails5/app/test/helpers/.keep +0 -0
  427. data/features/fixtures/rails5/app/test/integration/.keep +0 -0
  428. data/features/fixtures/rails5/app/test/mailers/.keep +0 -0
  429. data/features/fixtures/rails5/app/test/models/.keep +0 -0
  430. data/features/fixtures/rails5/app/test/test_helper.rb +0 -10
  431. data/features/fixtures/rails5/app/tmp/.keep +0 -0
  432. data/features/fixtures/rails6/.dockerignore +0 -1
  433. data/features/fixtures/rails6/Dockerfile +0 -26
  434. data/features/fixtures/rails6/app/.browserslistrc +0 -1
  435. data/features/fixtures/rails6/app/.gitignore +0 -35
  436. data/features/fixtures/rails6/app/.ruby-version +0 -1
  437. data/features/fixtures/rails6/app/Gemfile +0 -58
  438. data/features/fixtures/rails6/app/README.md +0 -24
  439. data/features/fixtures/rails6/app/Rakefile +0 -6
  440. data/features/fixtures/rails6/app/app/assets/config/manifest.js +0 -2
  441. data/features/fixtures/rails6/app/app/assets/images/.keep +0 -0
  442. data/features/fixtures/rails6/app/app/assets/stylesheets/application.css +0 -15
  443. data/features/fixtures/rails6/app/app/channels/application_cable/channel.rb +0 -4
  444. data/features/fixtures/rails6/app/app/channels/application_cable/connection.rb +0 -4
  445. data/features/fixtures/rails6/app/app/controllers/api_key_controller.rb +0 -16
  446. data/features/fixtures/rails6/app/app/controllers/app_type_controller.rb +0 -16
  447. data/features/fixtures/rails6/app/app/controllers/app_version_controller.rb +0 -21
  448. data/features/fixtures/rails6/app/app/controllers/application_controller.rb +0 -7
  449. data/features/fixtures/rails6/app/app/controllers/auto_notify_controller.rb +0 -27
  450. data/features/fixtures/rails6/app/app/controllers/before_notify_controller.rb +0 -40
  451. data/features/fixtures/rails6/app/app/controllers/breadcrumbs_controller.rb +0 -24
  452. data/features/fixtures/rails6/app/app/controllers/clearance_controller.rb +0 -33
  453. data/features/fixtures/rails6/app/app/controllers/concerns/.keep +0 -0
  454. data/features/fixtures/rails6/app/app/controllers/handled_controller.rb +0 -22
  455. data/features/fixtures/rails6/app/app/controllers/ignore_classes_controller.rb +0 -19
  456. data/features/fixtures/rails6/app/app/controllers/metadata_filters_controller.rb +0 -12
  457. data/features/fixtures/rails6/app/app/controllers/mongo_controller.rb +0 -22
  458. data/features/fixtures/rails6/app/app/controllers/project_root_controller.rb +0 -21
  459. data/features/fixtures/rails6/app/app/controllers/release_stage_controller.rb +0 -16
  460. data/features/fixtures/rails6/app/app/controllers/send_code_controller.rb +0 -16
  461. data/features/fixtures/rails6/app/app/controllers/send_environment_controller.rb +0 -8
  462. data/features/fixtures/rails6/app/app/controllers/session_tracking_controller.rb +0 -20
  463. data/features/fixtures/rails6/app/app/controllers/unhandled_controller.rb +0 -7
  464. data/features/fixtures/rails6/app/app/helpers/application_helper.rb +0 -2
  465. data/features/fixtures/rails6/app/app/javascript/channels/consumer.js +0 -6
  466. data/features/fixtures/rails6/app/app/javascript/channels/index.js +0 -5
  467. data/features/fixtures/rails6/app/app/javascript/packs/application.js +0 -9
  468. data/features/fixtures/rails6/app/app/jobs/application_job.rb +0 -7
  469. data/features/fixtures/rails6/app/app/jobs/notify_job.rb +0 -5
  470. data/features/fixtures/rails6/app/app/mailers/application_mailer.rb +0 -4
  471. data/features/fixtures/rails6/app/app/models/application_record.rb +0 -3
  472. data/features/fixtures/rails6/app/app/models/concerns/.keep +0 -0
  473. data/features/fixtures/rails6/app/app/models/mongo_model.rb +0 -6
  474. data/features/fixtures/rails6/app/app/models/user.rb +0 -3
  475. data/features/fixtures/rails6/app/app/views/layouts/application.html.erb +0 -15
  476. data/features/fixtures/rails6/app/app/views/layouts/mailer.html.erb +0 -13
  477. data/features/fixtures/rails6/app/app/views/layouts/mailer.text.erb +0 -1
  478. data/features/fixtures/rails6/app/babel.config.js +0 -70
  479. data/features/fixtures/rails6/app/config.ru +0 -5
  480. data/features/fixtures/rails6/app/config/application.rb +0 -19
  481. data/features/fixtures/rails6/app/config/boot.rb +0 -4
  482. data/features/fixtures/rails6/app/config/cable.yml +0 -13
  483. data/features/fixtures/rails6/app/config/credentials.yml.enc +0 -1
  484. data/features/fixtures/rails6/app/config/database.yml +0 -29
  485. data/features/fixtures/rails6/app/config/environment.rb +0 -5
  486. data/features/fixtures/rails6/app/config/environments/development.rb +0 -64
  487. data/features/fixtures/rails6/app/config/environments/production.rb +0 -113
  488. data/features/fixtures/rails6/app/config/environments/rails_env.rb +0 -56
  489. data/features/fixtures/rails6/app/config/environments/test.rb +0 -48
  490. data/features/fixtures/rails6/app/config/initializers/application_controller_renderer.rb +0 -8
  491. data/features/fixtures/rails6/app/config/initializers/assets.rb +0 -14
  492. data/features/fixtures/rails6/app/config/initializers/backtrace_silencers.rb +0 -7
  493. data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +0 -29
  494. data/features/fixtures/rails6/app/config/initializers/content_security_policy.rb +0 -27
  495. data/features/fixtures/rails6/app/config/initializers/cookies_serializer.rb +0 -5
  496. data/features/fixtures/rails6/app/config/initializers/filter_parameter_logging.rb +0 -5
  497. data/features/fixtures/rails6/app/config/initializers/inflections.rb +0 -16
  498. data/features/fixtures/rails6/app/config/initializers/mime_types.rb +0 -4
  499. data/features/fixtures/rails6/app/config/initializers/wrap_parameters.rb +0 -14
  500. data/features/fixtures/rails6/app/config/locales/en.yml +0 -33
  501. data/features/fixtures/rails6/app/config/mongoid.yml +0 -23
  502. data/features/fixtures/rails6/app/config/puma.rb +0 -35
  503. data/features/fixtures/rails6/app/config/routes.rb +0 -62
  504. data/features/fixtures/rails6/app/config/secrets.yml +0 -25
  505. data/features/fixtures/rails6/app/config/spring.rb +0 -6
  506. data/features/fixtures/rails6/app/config/storage.yml +0 -34
  507. data/features/fixtures/rails6/app/config/webpack/development.js +0 -5
  508. data/features/fixtures/rails6/app/config/webpack/environment.js +0 -3
  509. data/features/fixtures/rails6/app/config/webpack/production.js +0 -5
  510. data/features/fixtures/rails6/app/config/webpack/rails_env.js +0 -5
  511. data/features/fixtures/rails6/app/config/webpack/test.js +0 -5
  512. data/features/fixtures/rails6/app/config/webpacker.yml +0 -121
  513. data/features/fixtures/rails6/app/db/migrate/20180426095545_create_users.rb +0 -17
  514. data/features/fixtures/rails6/app/db/schema.rb +0 -29
  515. data/features/fixtures/rails6/app/db/seeds.rb +0 -7
  516. data/features/fixtures/rails6/app/lib/assets/.keep +0 -0
  517. data/features/fixtures/rails6/app/lib/tasks/.keep +0 -0
  518. data/features/fixtures/rails6/app/log/.keep +0 -0
  519. data/features/fixtures/rails6/app/package.json +0 -15
  520. data/features/fixtures/rails6/app/postcss.config.js +0 -12
  521. data/features/fixtures/rails6/app/public/404.html +0 -67
  522. data/features/fixtures/rails6/app/public/422.html +0 -67
  523. data/features/fixtures/rails6/app/public/500.html +0 -66
  524. data/features/fixtures/rails6/app/public/apple-touch-icon-precomposed.png +0 -0
  525. data/features/fixtures/rails6/app/public/apple-touch-icon.png +0 -0
  526. data/features/fixtures/rails6/app/public/favicon.ico +0 -0
  527. data/features/fixtures/rails6/app/public/robots.txt +0 -1
  528. data/features/fixtures/rails6/app/storage/.keep +0 -0
  529. data/features/fixtures/rails6/app/test/application_system_test_case.rb +0 -5
  530. data/features/fixtures/rails6/app/test/channels/application_cable/connection_test.rb +0 -11
  531. data/features/fixtures/rails6/app/test/controllers/.keep +0 -0
  532. data/features/fixtures/rails6/app/test/fixtures/.keep +0 -0
  533. data/features/fixtures/rails6/app/test/fixtures/files/.keep +0 -0
  534. data/features/fixtures/rails6/app/test/helpers/.keep +0 -0
  535. data/features/fixtures/rails6/app/test/integration/.keep +0 -0
  536. data/features/fixtures/rails6/app/test/mailers/.keep +0 -0
  537. data/features/fixtures/rails6/app/test/models/.keep +0 -0
  538. data/features/fixtures/rails6/app/test/system/.keep +0 -0
  539. data/features/fixtures/rails6/app/test/test_helper.rb +0 -13
  540. data/features/fixtures/rails6/app/tmp/.keep +0 -0
  541. data/features/fixtures/rails6/app/yarn.lock +0 -6082
  542. data/features/fixtures/resque/.dockerignore +0 -1
  543. data/features/fixtures/resque/Dockerfile +0 -14
  544. data/features/fixtures/resque/Gemfile +0 -6
  545. data/features/fixtures/resque/Rakefile +0 -4
  546. data/features/fixtures/resque/app.rb +0 -12
  547. data/features/fixtures/sidekiq/.dockerignore +0 -2
  548. data/features/fixtures/sidekiq/Dockerfile +0 -17
  549. data/features/fixtures/sidekiq/app/Gemfile +0 -7
  550. data/features/fixtures/sidekiq/app/Rakefile.rb +0 -14
  551. data/features/fixtures/sidekiq/app/app.rb +0 -35
  552. data/features/fixtures/sidekiq/app/initializers/HandledError.rb +0 -3
  553. data/features/fixtures/sidekiq/app/initializers/UnhandledError.rb +0 -3
  554. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_false.json +0 -11
  555. data/features/fixtures/sidekiq/payloads/handled_metadata_ca_true.json +0 -12
  556. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_false.json +0 -11
  557. data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_true.json +0 -12
  558. data/features/fixtures/sinatra1/.dockerignore +0 -1
  559. data/features/fixtures/sinatra1/Dockerfile +0 -13
  560. data/features/fixtures/sinatra1/Gemfile +0 -4
  561. data/features/fixtures/sinatra1/app.rb +0 -9
  562. data/features/fixtures/sinatra2/.dockerignore +0 -1
  563. data/features/fixtures/sinatra2/Dockerfile +0 -13
  564. data/features/fixtures/sinatra2/Gemfile +0 -4
  565. data/features/fixtures/sinatra2/app.rb +0 -9
  566. data/features/plain_features/add_tab.feature +0 -55
  567. data/features/plain_features/app_type.feature +0 -8
  568. data/features/plain_features/app_version.feature +0 -8
  569. data/features/plain_features/auto_notify.feature +0 -7
  570. data/features/plain_features/delivery.feature +0 -20
  571. data/features/plain_features/exception_data.feature +0 -50
  572. data/features/plain_features/filters.feature +0 -14
  573. data/features/plain_features/handled_errors.feature +0 -42
  574. data/features/plain_features/ignore_classes.feature +0 -11
  575. data/features/plain_features/ignore_report.feature +0 -14
  576. data/features/plain_features/proxies.feature +0 -25
  577. data/features/plain_features/release_stages.feature +0 -20
  578. data/features/plain_features/report_api_key.feature +0 -16
  579. data/features/plain_features/report_severity.feature +0 -17
  580. data/features/plain_features/report_stack_frames.feature +0 -53
  581. data/features/plain_features/report_user.feature +0 -51
  582. data/features/plain_features/unhandled_errors.feature +0 -33
  583. data/features/rails_features/api_key.feature +0 -15
  584. data/features/rails_features/app_type.feature +0 -24
  585. data/features/rails_features/app_version.feature +0 -26
  586. data/features/rails_features/auto_capture_sessions.feature +0 -34
  587. data/features/rails_features/auto_notify.feature +0 -41
  588. data/features/rails_features/before_notify.feature +0 -44
  589. data/features/rails_features/breadcrumbs.feature +0 -43
  590. data/features/rails_features/handled.feature +0 -42
  591. data/features/rails_features/ignore_classes.feature +0 -14
  592. data/features/rails_features/meta_data_filters.feature +0 -16
  593. data/features/rails_features/mongo_breadcrumbs.feature +0 -26
  594. data/features/rails_features/on_error.feature +0 -29
  595. data/features/rails_features/project_root.feature +0 -35
  596. data/features/rails_features/release_stage.feature +0 -27
  597. data/features/rails_features/send_code.feature +0 -18
  598. data/features/rails_features/send_environment.feature +0 -13
  599. data/features/rails_features/unhandled.feature +0 -16
  600. data/features/rails_features/user_info.feature +0 -52
  601. data/features/sidekiq.feature +0 -30
  602. data/features/steps/ruby_notifier_steps.rb +0 -75
  603. data/features/support/env.rb +0 -23
  604. data/issue_template.md +0 -48
  605. data/spec/breadcrumbs/breadcrumb_spec.rb +0 -93
  606. data/spec/breadcrumbs/validator_spec.rb +0 -176
  607. data/spec/bugsnag_spec.rb +0 -366
  608. data/spec/cleaner_spec.rb +0 -350
  609. data/spec/code_extractor_spec.rb +0 -129
  610. data/spec/configuration_spec.rb +0 -445
  611. data/spec/fixtures/apps/rails-initializer-config/Gemfile +0 -9
  612. data/spec/fixtures/apps/rails-initializer-config/config.ru +0 -16
  613. data/spec/fixtures/apps/rails-initializer-config/config/initializers/bugsnag.rb +0 -3
  614. data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +0 -9
  615. data/spec/fixtures/apps/rails-invalid-initializer-config/config.ru +0 -16
  616. data/spec/fixtures/apps/rails-invalid-initializer-config/config/initializers/bugsnag.rb +0 -3
  617. data/spec/fixtures/apps/rails-no-config/Gemfile +0 -9
  618. data/spec/fixtures/apps/rails-no-config/config.ru +0 -16
  619. data/spec/fixtures/apps/scripts/Gemfile +0 -3
  620. data/spec/fixtures/apps/scripts/configure_invalid_key.rb +0 -5
  621. data/spec/fixtures/apps/scripts/configure_key.rb +0 -5
  622. data/spec/fixtures/apps/scripts/no_config.rb +0 -3
  623. data/spec/fixtures/crashes/end_of_file.rb +0 -9
  624. data/spec/fixtures/crashes/file1.rb +0 -29
  625. data/spec/fixtures/crashes/file2.rb +0 -25
  626. data/spec/fixtures/crashes/file_with_long_lines.rb +0 -7
  627. data/spec/fixtures/crashes/functions.rb +0 -29
  628. data/spec/fixtures/crashes/short_file.rb +0 -3
  629. data/spec/fixtures/crashes/start_of_file.rb +0 -9
  630. data/spec/fixtures/middleware/internal_info_setter.rb +0 -11
  631. data/spec/fixtures/middleware/public_info_setter.rb +0 -11
  632. data/spec/fixtures/tasks/Rakefile +0 -26
  633. data/spec/helper_spec.rb +0 -131
  634. data/spec/integration_spec.rb +0 -107
  635. data/spec/integrations/clearance_user_spec.rb +0 -38
  636. data/spec/integrations/logger_spec.rb +0 -134
  637. data/spec/integrations/mailman_spec.rb +0 -83
  638. data/spec/integrations/mongo_spec.rb +0 -262
  639. data/spec/integrations/que_spec.rb +0 -94
  640. data/spec/integrations/rack_spec.rb +0 -232
  641. data/spec/integrations/rails3_request_spec.rb +0 -67
  642. data/spec/integrations/rake_spec.rb +0 -71
  643. data/spec/integrations/resque_spec.rb +0 -99
  644. data/spec/integrations/shoryuken_spec.rb +0 -70
  645. data/spec/integrations/sidekiq_spec.rb +0 -137
  646. data/spec/integrations/warden_user_spec.rb +0 -41
  647. data/spec/middleware/exception_meta_data_spec.rb +0 -104
  648. data/spec/middleware_spec.rb +0 -254
  649. data/spec/middleware_stack_spec.rb +0 -151
  650. data/spec/on_error_spec.rb +0 -332
  651. data/spec/report_spec.rb +0 -1583
  652. data/spec/session_tracker_spec.rb +0 -156
  653. data/spec/spec_helper.rb +0 -99
  654. data/spec/stacktrace_spec.rb +0 -443
  655. data/spec/utility/circular_buffer_spec.rb +0 -98
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a4f6c896c7046dba3d9db2adfa32e232232e3a7923cb9984321ee3a8b09b6e3
4
- data.tar.gz: f6b27c0b50846c1a3e012bb80bccbe5ad6663257c8de4e300742e7af4b065b3f
3
+ metadata.gz: cfe6701fa69f8d7c3c78476d17d127f921a6f730cdd3b618f92e6f7c2483da74
4
+ data.tar.gz: '0857ab0742b7a33acfa39a60f4ecf9114f20b30293c78ef7bb1d1ba52ddef664'
5
5
  SHA512:
6
- metadata.gz: d51d64bbf0b2cc094742a8a207702e963c33eac9e18f58f2348f3d9e6475a1bd0c43dc44baf139bb976823bfabd8b3ff5bab261ae3dababd46f083b7539602f4
7
- data.tar.gz: 3621690efd266608313b000f7acff6df354380457e9b78e448290573e97dd0b17beb68afa5efff96fdcc7b21b39d2d292fddc38082eae7bece24dd1f2d457f0d
6
+ metadata.gz: 3a917b2fc75798b3bd5e95416ab8c26f013133c84739f9d58df7bbd687de5b736184d11eae1e604944ba85267f214999f4a552e7beef1b271401e8598841a966
7
+ data.tar.gz: abb394a0305a254ce1fda64eba446e49949142f42480e6adf176bf1e62e5cfe6a0280421afbfbefda48bfa3dab31f815891705de4eb1d0d59df2b520575aea93
data/.yardopts ADDED
@@ -0,0 +1,11 @@
1
+ --charset UTF-8
2
+ --fail-on-warning
3
+ --hide-api private
4
+ --no-private
5
+ --protected
6
+ --title "bugsnag-ruby API Documentation"
7
+ lib/**/*.rb
8
+ -
9
+ README.md
10
+ CONTRIBUTING.md
11
+ CHANGELOG.md
data/CHANGELOG.md CHANGED
@@ -1,6 +1,78 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## v6.20.0 (29 March 2021)
5
+
6
+ ### Enhancements
7
+
8
+ * Classify `ActionDispatch::Http::MimeNegotiation::InvalidType` as info severity level
9
+ | [#654](https://github.com/bugsnag/bugsnag-ruby/pull/654)
10
+
11
+ ### Fixes
12
+
13
+ * Include `connection_id` in ActiveRecord breadcrumb metadata on new versons of Rails
14
+ | [#655](https://github.com/bugsnag/bugsnag-ruby/pull/655)
15
+ * Avoid crash when Mongo 1.12 or earlier is used
16
+ | [#652](https://github.com/bugsnag/bugsnag-ruby/pull/652)
17
+ | [isabanin](https://github.com/isabanin)
18
+
19
+ ## 6.19.0 (6 January 2021)
20
+
21
+ ### Enhancements
22
+
23
+ * Exception messages will be truncated if they have a length greater than 3,072
24
+ | [#636](https://github.com/bugsnag/bugsnag-ruby/pull/636)
25
+ | [joshuapinter](https://github.com/joshuapinter)
26
+
27
+ * Breadcrumb metadata can now contain any type
28
+ | [#648](https://github.com/bugsnag/bugsnag-ruby/pull/648)
29
+
30
+ ## 6.18.0 (27 October 2020)
31
+
32
+ ### Enhancements
33
+
34
+ * Bugsnag should now report uncaught exceptions inside Bundler's 'friendly errors'
35
+ | [#634](https://github.com/bugsnag/bugsnag-ruby/pull/634)
36
+
37
+ * Improve the display of breadrumbs in the Bugsnag app by including milliseconds in timestamps
38
+ | [#639](https://github.com/bugsnag/bugsnag-ruby/pull/639)
39
+
40
+ ## 6.17.0 (27 August 2020)
41
+
42
+ ### Enhancements
43
+
44
+ * Sidekiq now uses `thread_queue` delivery by default
45
+ | [#626](https://github.com/bugsnag/bugsnag-ruby/pull/626)
46
+
47
+ * Rescue now uses `thread_queue` delivery when `at_exit` hooks are enabled
48
+ | [#629](https://github.com/bugsnag/bugsnag-ruby/pull/629)
49
+
50
+ ## 6.16.0 (12 August 2020)
51
+
52
+ ### Enhancements
53
+
54
+ * Set default Delayed Job error context to job class
55
+ | [#499](https://github.com/bugsnag/bugsnag-ruby/pull/499)
56
+ | [Mike Stewart](https://github.com/mike-stewart)
57
+
58
+ * The `BUGSNAG_RELEASE_STAGE` environment variable can now be used to set the release stage. Previously this was only used in Rails applications
59
+ | [#613](https://github.com/bugsnag/bugsnag-ruby/pull/613)
60
+
61
+ * Add support for runtime versions to Delayed Job, Mailman and Shoryuken integrations
62
+ | [#620](https://github.com/bugsnag/bugsnag-ruby/pull/620)
63
+
64
+ * Reduce the size of the bundled gem
65
+ | [#571](https://github.com/bugsnag/bugsnag-ruby/pull/571)
66
+ | [t-richards](https://github.com/t-richards)
67
+
68
+ * Move serialization of Reports onto the background thread when using the thread_queue delivery method
69
+ | [#623](https://github.com/bugsnag/bugsnag-ruby/pull/623)
70
+
71
+ ## Fixes
72
+
73
+ * The `app_type` configuration option should no longer be overwritten by Bugsnag and integrations should set this more consistently
74
+ | [#619](https://github.com/bugsnag/bugsnag-ruby/pull/619)
75
+
4
76
  ## 6.15.0 (27 July 2020)
5
77
 
6
78
  ### Enhancements
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.15.0
1
+ 6.20.0
data/bugsnag.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.homepage = "https://github.com/bugsnag/bugsnag-ruby"
11
11
  s.licenses = ["MIT"]
12
12
 
13
- s.files = `git ls-files`.split("\n").reject {|file| file.start_with? "example/"}
13
+ s.files = `git ls-files -z lib bugsnag.gemspec VERSION .yardopts`.split("\x0")
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
16
16
  "README.md",
data/lib/bugsnag.rb CHANGED
@@ -25,7 +25,6 @@ require "bugsnag/middleware/rails3_request"
25
25
  require "bugsnag/middleware/sidekiq"
26
26
  require "bugsnag/middleware/mailman"
27
27
  require "bugsnag/middleware/rake"
28
- require "bugsnag/middleware/callbacks"
29
28
  require "bugsnag/middleware/classify_error"
30
29
  require "bugsnag/middleware/delayed_job"
31
30
 
@@ -44,7 +43,10 @@ module Bugsnag
44
43
  ##
45
44
  # Configure the Bugsnag notifier application-wide settings.
46
45
  #
47
- # Yields a configuration object to use to set application settings.
46
+ # Yields a {Configuration} object to use to set application settings.
47
+ #
48
+ # @yieldparam configuration [Configuration]
49
+ # @return [void]
48
50
  def configure(validate_api_key=true)
49
51
  yield(configuration) if block_given?
50
52
 
@@ -125,13 +127,17 @@ module Bugsnag
125
127
  end
126
128
 
127
129
  ##
128
- # Registers an at_exit function to automatically catch errors on exit
130
+ # Registers an at_exit function to automatically catch errors on exit.
131
+ #
132
+ # @return [void]
129
133
  def register_at_exit
130
134
  return if at_exit_handler_installed?
131
135
  @exit_handler_added = true
132
136
  at_exit do
133
137
  if $!
134
- Bugsnag.notify($!, true) do |report|
138
+ exception = unwrap_bundler_exception($!)
139
+
140
+ Bugsnag.notify(exception, true) do |report|
135
141
  report.severity = 'error'
136
142
  report.severity_reason = {
137
143
  :type => Bugsnag::Report::UNHANDLED_EXCEPTION
@@ -142,14 +148,19 @@ module Bugsnag
142
148
  end
143
149
 
144
150
  ##
145
- # Checks if an at_exit handler has been added
151
+ # Checks if an at_exit handler has been added.
152
+ #
153
+ # The {Bugsnag#configure} method will add this automatically, but it can be
154
+ # added manually using {Bugsnag#register_at_exit}.
155
+ #
156
+ # @return [Boolean]
146
157
  def at_exit_handler_installed?
147
158
  @exit_handler_added ||= false
148
159
  end
149
160
 
150
- # Configuration getters
151
161
  ##
152
162
  # Returns the client's Configuration object, or creates one if not yet created.
163
+ #
153
164
  # @return [Configuration]
154
165
  def configuration
155
166
  @configuration = nil unless defined?(@configuration)
@@ -158,6 +169,8 @@ module Bugsnag
158
169
 
159
170
  ##
160
171
  # Returns the client's SessionTracker object, or creates one if not yet created.
172
+ #
173
+ # @return [SessionTracker]
161
174
  def session_tracker
162
175
  @session_tracker = nil unless defined?(@session_tracker)
163
176
  @session_tracker || LOCK.synchronize { @session_tracker ||= Bugsnag::SessionTracker.new}
@@ -181,7 +194,10 @@ module Bugsnag
181
194
  Bugsnag.configuration.request_data[:before_callbacks] ||= []
182
195
  end
183
196
 
184
- # Attempts to load all integrations through auto-discovery
197
+ ##
198
+ # Attempts to load all integrations through auto-discovery.
199
+ #
200
+ # @return [void]
185
201
  def load_integrations
186
202
  require "bugsnag/integrations/railtie" if defined?(Rails::Railtie)
187
203
  INTEGRATIONS.each do |integration|
@@ -192,7 +208,11 @@ module Bugsnag
192
208
  end
193
209
  end
194
210
 
195
- # Load a specific integration
211
+ ##
212
+ # Load a specific integration.
213
+ #
214
+ # @param integration [Symbol] One of the integrations in {INTEGRATIONS}
215
+ # @return [void]
196
216
  def load_integration(integration)
197
217
  integration = :railtie if integration == :rails
198
218
  if INTEGRATIONS.include?(integration) || integration == :railtie
@@ -209,6 +229,7 @@ module Bugsnag
209
229
  # @param meta_data [Hash] String, Numeric, or Boolean meta data to attach
210
230
  # @param type [String] the breadcrumb type, from Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES
211
231
  # @param auto [Symbol] set to :auto if the breadcrumb is automatically created
232
+ # @return [void]
212
233
  def leave_breadcrumb(name, meta_data={}, type=Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE, auto=:manual)
213
234
  breadcrumb = Bugsnag::Breadcrumbs::Breadcrumb.new(name, type, meta_data, auto)
214
235
  validator = Bugsnag::Breadcrumbs::Validator.new(configuration)
@@ -303,15 +324,25 @@ module Bugsnag
303
324
  def deliver_notification(report)
304
325
  configuration.info("Notifying #{configuration.notify_endpoint} of #{report.exceptions.last[:errorClass]}")
305
326
 
306
- payload = report_to_json(report)
307
- options = {:headers => report.headers}
327
+ options = { headers: report.headers }
308
328
 
309
- Bugsnag::Delivery[configuration.delivery_method].deliver(
310
- configuration.notify_endpoint,
311
- payload,
312
- configuration,
313
- options
314
- )
329
+ delivery_method = Bugsnag::Delivery[configuration.delivery_method]
330
+
331
+ if delivery_method.respond_to?(:serialize_and_deliver)
332
+ delivery_method.serialize_and_deliver(
333
+ configuration.notify_endpoint,
334
+ proc { report_to_json(report) },
335
+ configuration,
336
+ options
337
+ )
338
+ else
339
+ delivery_method.deliver(
340
+ configuration.notify_endpoint,
341
+ report_to_json(report),
342
+ configuration,
343
+ options
344
+ )
345
+ end
315
346
 
316
347
  leave_breadcrumb(
317
348
  report.summary[:error_class],
@@ -353,13 +384,46 @@ module Bugsnag
353
384
  # encoding errors and redacting metadata according to "meta_data_filters"
354
385
  #
355
386
  # @param report [Report]
356
- # @return string
387
+ # @return [String]
357
388
  def report_to_json(report)
358
389
  cleaned = cleaner.clean_object(report.as_json)
359
390
  trimmed = Bugsnag::Helpers.trim_if_needed(cleaned)
360
391
 
361
392
  ::JSON.dump(trimmed)
362
393
  end
394
+
395
+ ##
396
+ # When running a script with 'bundle exec', uncaught exceptions will be
397
+ # converted to "friendly errors" which has the side effect of wrapping them
398
+ # in a SystemExit
399
+ #
400
+ # By default we ignore SystemExit, so need to unwrap the original exception
401
+ # in order to avoid ignoring real errors
402
+ #
403
+ # @param exception [Exception]
404
+ # @return [Exception]
405
+ def unwrap_bundler_exception(exception)
406
+ running_in_bundler = ENV.include?('BUNDLE_BIN_PATH')
407
+
408
+ # See if this exception came from Bundler's 'with_friendly_errors' method
409
+ return exception unless running_in_bundler
410
+ return exception unless exception.is_a?(SystemExit)
411
+ return exception unless exception.respond_to?(:cause)
412
+ return exception unless exception.backtrace.first.include?('/bundler/friendly_errors.rb')
413
+ return exception if exception.cause.nil?
414
+
415
+ unwrapped = exception.cause
416
+
417
+ # We may need to unwrap another level if the exception came from running
418
+ # an executable file directly (i.e. 'bundle exec <file>'). In this case
419
+ # there can be a SystemExit from 'with_friendly_errors' _and_ a SystemExit
420
+ # from 'kernel_load'
421
+ return unwrapped unless unwrapped.is_a?(SystemExit)
422
+ return unwrapped unless unwrapped.backtrace.first.include?('/bundler/cli/exec.rb')
423
+ return unwrapped if unwrapped.cause.nil?
424
+
425
+ unwrapped.cause
426
+ end
363
427
  end
364
428
  end
365
429
  # rubocop:enable Metrics/ModuleLength
@@ -69,7 +69,7 @@ module Bugsnag::Breadcrumbs
69
69
  :name => @name,
70
70
  :type => @type,
71
71
  :metaData => @meta_data,
72
- :timestamp => @timestamp.iso8601
72
+ :timestamp => @timestamp.iso8601(3)
73
73
  }
74
74
  end
75
75
  end
@@ -15,16 +15,6 @@ module Bugsnag::Breadcrumbs
15
15
  #
16
16
  # @param breadcrumb [Bugsnag::Breadcrumbs::Breadcrumb] the breadcrumb to be validated
17
17
  def validate(breadcrumb)
18
- # Check meta_data hash doesn't contain complex values
19
- breadcrumb.meta_data = breadcrumb.meta_data.select do |k, v|
20
- if valid_meta_data_type?(v)
21
- true
22
- else
23
- @configuration.debug("Breadcrumb #{breadcrumb.name} meta_data #{k}:#{v.class} has been dropped for having an invalid data type")
24
- false
25
- end
26
- end
27
-
28
18
  # Check type is valid, set to manual otherwise
29
19
  unless Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES.include?(breadcrumb.type)
30
20
  @configuration.debug("Invalid type: #{breadcrumb.type} for breadcrumb: #{breadcrumb.name}, defaulting to #{Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE}")
@@ -37,17 +27,5 @@ module Bugsnag::Breadcrumbs
37
27
  @configuration.debug("Automatic breadcrumb of type #{breadcrumb.type} ignored: #{breadcrumb.name}")
38
28
  breadcrumb.ignore!
39
29
  end
40
-
41
- private
42
-
43
- ##
44
- # Tests whether the meta_data types are non-complex objects.
45
- #
46
- # Acceptable types are String, Symbol, Numeric, TrueClass, FalseClass, and nil.
47
- #
48
- # @param value [Object] the object to be type checked
49
- def valid_meta_data_type?(value)
50
- value.nil? || value.is_a?(String) || value.is_a?(Symbol) || value.is_a?(Numeric) || value.is_a?(FalseClass) || value.is_a?(TrueClass)
51
- end
52
30
  end
53
31
  end
@@ -15,65 +15,134 @@ require "bugsnag/breadcrumbs/breadcrumbs"
15
15
 
16
16
  module Bugsnag
17
17
  class Configuration
18
+ # Your Integration API Key
19
+ # @return [String, nil]
18
20
  attr_accessor :api_key
21
+
22
+ # The current stage of the release process, e.g. 'development', production'
23
+ # @return [String, nil]
19
24
  attr_accessor :release_stage
25
+
26
+ # A list of which release stages should cause notifications to be sent
27
+ # @return [Array<String>, nil]
20
28
  attr_accessor :notify_release_stages
29
+
30
+ # Whether notifications should automatically be sent
31
+ # @return [Boolean]
21
32
  attr_accessor :auto_notify
33
+
34
+ # @return [String, nil]
22
35
  attr_accessor :ca_file
36
+
37
+ # Whether to automatically attach the Rack environment to notifications
38
+ # @return [Boolean]
23
39
  attr_accessor :send_environment
40
+
41
+ # Whether code snippets from the exception stacktrace should be sent with notifications
42
+ # @return [Boolean]
24
43
  attr_accessor :send_code
44
+
45
+ # Any stacktrace lines that match this path will be marked as 'in project'
46
+ # @return [String, nil]
25
47
  attr_accessor :project_root
48
+
49
+ # The current version of your application
50
+ # @return [String, nil]
26
51
  attr_accessor :app_version
27
- attr_accessor :app_type
52
+
53
+ # A list of keys that should be filtered out from the report and breadcrumb
54
+ # metadata before sending them to Bugsnag
55
+ # @return [Set<String, Regexp>]
28
56
  attr_accessor :meta_data_filters
57
+
58
+ # The logger to use for Bugsnag log messages
59
+ # @return [Logger]
29
60
  attr_accessor :logger
61
+
62
+ # The middleware stack that will run on every notification
63
+ # @return [MiddlewareStack]
30
64
  attr_accessor :middleware
65
+
66
+ # @api private
67
+ # @return [MiddlewareStack]
31
68
  attr_accessor :internal_middleware
69
+
70
+ # The host address of the HTTP proxy that should be used when making requests
71
+ # @see parse_proxy
72
+ # @return [String, nil]
32
73
  attr_accessor :proxy_host
74
+
75
+ # The port number of the HTTP proxy that should be used when making requests
76
+ # @see parse_proxy
77
+ # @return [Integer, nil]
33
78
  attr_accessor :proxy_port
79
+
80
+ # The user that should be used when making requests via a HTTP proxy
81
+ # @see parse_proxy
82
+ # @return [String, nil]
34
83
  attr_accessor :proxy_user
84
+
85
+ # The password for the user that should be used when making requests via a HTTP proxy
86
+ # @see parse_proxy
87
+ # @return [String, nil]
35
88
  attr_accessor :proxy_password
89
+
90
+ # The HTTP request timeout, defaults to 15 seconds
91
+ # @return [Integer]
36
92
  attr_accessor :timeout
93
+
94
+ # The name or descriptor of the Ruby server host
95
+ # @return [String]
37
96
  attr_accessor :hostname
97
+
98
+ # @api private
99
+ # @return [Hash{String => String}]
38
100
  attr_accessor :runtime_versions
101
+
102
+ # Exception classes that will be discarded and not sent to Bugsnag
103
+ # @return [Set<String, Regexp>]
39
104
  attr_accessor :discard_classes
105
+
106
+ # Whether Bugsnag should automatically record sessions
107
+ # @return [Boolean]
40
108
  attr_accessor :auto_capture_sessions
41
109
 
42
- ##
43
110
  # @deprecated Use {#discard_classes} instead
111
+ # @return [Set<Class, Proc>]
44
112
  attr_accessor :ignore_classes
45
113
 
46
- ##
47
- # @return [String] URL error notifications will be delivered to
114
+ # The URL error notifications will be delivered to
115
+ # @return [String]
48
116
  attr_reader :notify_endpoint
49
117
  alias :endpoint :notify_endpoint
50
118
 
51
- ##
52
- # @return [String] URL session notifications will be delivered to
119
+ # The URL session notifications will be delivered to
120
+ # @return [String]
53
121
  attr_reader :session_endpoint
54
122
 
55
- ##
56
- # @return [Boolean] whether any sessions types will be delivered
123
+ # Whether sessions will be delivered
124
+ # @return [Boolean]
57
125
  attr_reader :enable_sessions
58
126
 
59
- ##
60
- # @return [Array<String>] strings indicating allowable automatic breadcrumb types
127
+ # A list of strings indicating allowable automatic breadcrumb types
128
+ # @see Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES
129
+ # @return [Array<String>]
61
130
  attr_accessor :enabled_automatic_breadcrumb_types
62
131
 
63
- ##
64
- # @return [Array<#call>] callables to be run before a breadcrumb is logged
132
+ # Callables to be run before a breadcrumb is logged
133
+ # @return [Array<#call>]
65
134
  attr_accessor :before_breadcrumb_callbacks
66
135
 
67
- ##
68
- # @return [Integer] the maximum allowable amount of breadcrumbs per thread
136
+ # The maximum allowable amount of breadcrumbs per thread
137
+ # @return [Integer]
69
138
  attr_reader :max_breadcrumbs
70
139
 
71
- ##
72
- # @return [Regexp] matching file paths out of project
140
+ #
141
+ # @return [Regexp]
73
142
  attr_accessor :vendor_path
74
143
 
75
- ##
76
- # @return [Array]
144
+ # @api private
145
+ # @return [Array<String>]
77
146
  attr_reader :scopes_to_filter
78
147
 
79
148
  API_KEY_REGEX = /[0-9a-f]{32}/i
@@ -97,6 +166,7 @@ module Bugsnag
97
166
  # Path to vendored code. Used to mark file paths as out of project.
98
167
  DEFAULT_VENDOR_PATH = %r{^(vendor/|\.bundle/)}
99
168
 
169
+ # @api private
100
170
  DEFAULT_SCOPES_TO_FILTER = ['events.metaData', 'events.breadcrumbs.metaData'].freeze
101
171
 
102
172
  alias :track_sessions :auto_capture_sessions
@@ -116,6 +186,7 @@ module Bugsnag
116
186
  self.runtime_versions["ruby"] = RUBY_VERSION
117
187
  self.runtime_versions["jruby"] = JRUBY_VERSION if defined?(JRUBY_VERSION)
118
188
  self.timeout = 15
189
+ self.release_stage = ENV['BUGSNAG_RELEASE_STAGE']
119
190
  self.notify_release_stages = nil
120
191
  self.auto_capture_sessions = true
121
192
 
@@ -177,6 +248,7 @@ module Bugsnag
177
248
  # Gets the delivery_method that Bugsnag will use to communicate with the
178
249
  # notification endpoint.
179
250
  #
251
+ # @return [Symbol]
180
252
  def delivery_method
181
253
  @delivery_method || @default_delivery_method || :thread_queue
182
254
  end
@@ -185,6 +257,10 @@ module Bugsnag
185
257
  # Sets the delivery_method that Bugsnag will use to communicate with the
186
258
  # notification endpoint.
187
259
  #
260
+ # The default delivery methods are ':thread_queue' and ':synchronous'.
261
+ #
262
+ # @param delivery_method [Symbol]
263
+ # @return [void]
188
264
  def delivery_method=(delivery_method)
189
265
  @delivery_method = delivery_method
190
266
  end
@@ -193,19 +269,75 @@ module Bugsnag
193
269
  # Used to set a new default delivery method that will be used if one is not
194
270
  # set with #delivery_method.
195
271
  #
272
+ # @api private
273
+ #
274
+ # @param delivery_method [Symbol]
275
+ # @return [void]
196
276
  def default_delivery_method=(delivery_method)
197
277
  @default_delivery_method = delivery_method
198
278
  end
199
279
 
280
+ ##
281
+ # Get the type of application executing the current code
282
+ #
283
+ # This is usually used to represent if you are running in a Rails server,
284
+ # Sidekiq job, Rake task etc... Bugsnag will automatically detect most
285
+ # application types for you
286
+ #
287
+ # @return [String, nil]
288
+ def app_type
289
+ @app_type || @detected_app_type
290
+ end
291
+
292
+ ##
293
+ # Set the type of application executing the current code
294
+ #
295
+ # If an app_type is set, this will be used instead of the automatically
296
+ # detected app_type that Bugsnag would otherwise use
297
+ #
298
+ # @param app_type [String]
299
+ # @return [void]
300
+ def app_type=(app_type)
301
+ @app_type = app_type
302
+ end
303
+
304
+ ##
305
+ # Get the detected app_type, which is used when one isn't set explicitly
306
+ #
307
+ # @api private
308
+ #
309
+ # @return [String, nil]
310
+ def detected_app_type
311
+ @detected_app_type
312
+ end
313
+
314
+ ##
315
+ # Set the detected app_type, which is used when one isn't set explicitly
316
+ #
317
+ # This allows Bugsnag's integrations to say 'this is a Rails app' while
318
+ # allowing the user to overwrite this if they wish
319
+ #
320
+ # @api private
321
+ #
322
+ # @param app_type [String]
323
+ # @return [void]
324
+ def detected_app_type=(app_type)
325
+ @detected_app_type = app_type
326
+ end
327
+
200
328
  ##
201
329
  # Indicates whether the notifier should send a notification based on the
202
330
  # configured release stage.
331
+ #
332
+ # @return [Boolean]
203
333
  def should_notify_release_stage?
204
334
  @release_stage.nil? || @notify_release_stages.nil? || @notify_release_stages.include?(@release_stage)
205
335
  end
206
336
 
207
337
  ##
208
338
  # Tests whether the configured API key is valid.
339
+ #
340
+ # @return [Boolean]
209
341
  def valid_api_key?
210
342
  !api_key.nil? && api_key =~ API_KEY_REGEX
211
343
  end
@@ -213,48 +345,68 @@ module Bugsnag
213
345
  ##
214
346
  # Returns the array of data that will be automatically attached to every
215
347
  # error notification.
348
+ #
349
+ # @return [Hash]
216
350
  def request_data
217
351
  Thread.current[THREAD_LOCAL_NAME] ||= {}
218
352
  end
219
353
 
220
354
  ##
221
355
  # Sets an entry in the array of data attached to every error notification.
356
+ #
357
+ # @param key [String, #to_s]
358
+ # @param value [Object]
359
+ # @return [void]
222
360
  def set_request_data(key, value)
223
361
  self.request_data[key] = value
224
362
  end
225
363
 
226
364
  ##
227
365
  # Unsets an entry in the array of data attached to every error notification.
366
+ #
367
+ # @param (see set_request_data)
368
+ # @return [void]
228
369
  def unset_request_data(key, value)
229
370
  self.request_data.delete(key)
230
371
  end
231
372
 
232
373
  ##
233
374
  # Clears the array of data attached to every error notification.
375
+ #
376
+ # @return [void]
234
377
  def clear_request_data
235
378
  Thread.current[THREAD_LOCAL_NAME] = nil
236
379
  end
237
380
 
238
381
  ##
239
382
  # Logs an info level message
383
+ #
384
+ # @param message [String, #to_s] The message to log
240
385
  def info(message)
241
386
  logger.info(PROG_NAME) { message }
242
387
  end
243
388
 
244
389
  ##
245
390
  # Logs a warning level message
391
+ #
392
+ # @param (see info)
246
393
  def warn(message)
247
394
  logger.warn(PROG_NAME) { message }
248
395
  end
249
396
 
250
397
  ##
251
398
  # Logs a debug level message
399
+ #
400
+ # @param (see info)
252
401
  def debug(message)
253
402
  logger.debug(PROG_NAME) { message }
254
403
  end
255
404
 
256
405
  ##
257
406
  # Parses and sets proxy from a uri
407
+ #
408
+ # @param uri [String, #to_s] The URI to parse and extract proxy details from
409
+ # @return [void]
258
410
  def parse_proxy(uri)
259
411
  proxy = URI.parse(uri)
260
412
  self.proxy_host = proxy.host
@@ -266,7 +418,8 @@ module Bugsnag
266
418
  ##
267
419
  # Sets the maximum allowable amount of breadcrumbs
268
420
  #
269
- # @param [Integer] the new maximum breadcrumb limit
421
+ # @param new_max_breadcrumbs [Integer] the new maximum breadcrumb limit
422
+ # @return [void]
270
423
  def max_breadcrumbs=(new_max_breadcrumbs)
271
424
  @max_breadcrumbs = new_max_breadcrumbs
272
425
  breadcrumbs.max_items = new_max_breadcrumbs
@@ -282,9 +435,10 @@ module Bugsnag
282
435
 
283
436
  # Sets the notification endpoint
284
437
  #
285
- # @param new_notify_endpoint [String] The URL to deliver error notifications to
286
- #
287
438
  # @deprecated Use {#set_endpoints} instead
439
+ #
440
+ # @param new_notify_endpoint [String] The URL to deliver error notifications to
441
+ # @return [void]
288
442
  def endpoint=(new_notify_endpoint)
289
443
  warn("The 'endpoint' configuration option is deprecated. The 'set_endpoints' method should be used instead")
290
444
  set_endpoints(new_notify_endpoint, session_endpoint) # Pass the existing session_endpoint through so it doesn't get overwritten
@@ -293,9 +447,10 @@ module Bugsnag
293
447
  ##
294
448
  # Sets the sessions endpoint
295
449
  #
296
- # @param new_session_endpoint [String] The URL to deliver session notifications to
297
- #
298
450
  # @deprecated Use {#set_endpoints} instead
451
+ #
452
+ # @param new_session_endpoint [String] The URL to deliver session notifications to
453
+ # @return [void]
299
454
  def session_endpoint=(new_session_endpoint)
300
455
  warn("The 'session_endpoint' configuration option is deprecated. The 'set_endpoints' method should be used instead")
301
456
  set_endpoints(notify_endpoint, new_session_endpoint) # Pass the existing notify_endpoint through so it doesn't get overwritten
@@ -306,13 +461,16 @@ module Bugsnag
306
461
  #
307
462
  # @param new_notify_endpoint [String] The URL to deliver error notifications to
308
463
  # @param new_session_endpoint [String] The URL to deliver session notifications to
464
+ # @return [void]
309
465
  def set_endpoints(new_notify_endpoint, new_session_endpoint)
310
466
  @notify_endpoint = new_notify_endpoint
311
467
  @session_endpoint = new_session_endpoint
312
468
  end
313
469
 
314
470
  ##
315
- # Disables session tracking and delivery. Cannot be undone
471
+ # Disables session tracking and delivery. Cannot be undone
472
+ #
473
+ # @return [void]
316
474
  def disable_sessions
317
475
  self.auto_capture_sessions = false
318
476
  @enable_sessions = false