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.
- checksums.yaml +4 -4
- data/.yardopts +11 -0
- data/CHANGELOG.md +72 -0
- data/VERSION +1 -1
- data/bugsnag.gemspec +1 -1
- data/lib/bugsnag.rb +81 -17
- data/lib/bugsnag/breadcrumbs/breadcrumb.rb +1 -1
- data/lib/bugsnag/breadcrumbs/validator.rb +0 -22
- data/lib/bugsnag/configuration.rb +182 -24
- data/lib/bugsnag/delivery/synchronous.rb +1 -1
- data/lib/bugsnag/delivery/thread_queue.rb +18 -3
- data/lib/bugsnag/helpers.rb +17 -4
- data/lib/bugsnag/integrations/delayed_job.rb +13 -1
- data/lib/bugsnag/integrations/mailman.rb +2 -1
- data/lib/bugsnag/integrations/mongo.rb +5 -3
- data/lib/bugsnag/integrations/que.rb +2 -1
- data/lib/bugsnag/integrations/rack.rb +3 -1
- data/lib/bugsnag/integrations/rails/rails_breadcrumbs.rb +2 -0
- data/lib/bugsnag/integrations/railtie.rb +31 -8
- data/lib/bugsnag/integrations/rake.rb +4 -2
- data/lib/bugsnag/integrations/resque.rb +12 -5
- data/lib/bugsnag/integrations/shoryuken.rb +2 -1
- data/lib/bugsnag/integrations/sidekiq.rb +1 -2
- data/lib/bugsnag/middleware/classify_error.rb +1 -0
- data/lib/bugsnag/middleware/delayed_job.rb +1 -0
- data/lib/bugsnag/report.rb +84 -2
- metadata +4 -631
- data/.buildkite/pipeline.yml +0 -470
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -84
- data/.gitignore +0 -55
- data/.rdoc_options +0 -27
- data/.rspec +0 -3
- data/.rubocop.yml +0 -57
- data/.rubocop_todo.yml +0 -1049
- data/CONTRIBUTING.md +0 -64
- data/Gemfile +0 -50
- data/Rakefile +0 -37
- data/TESTING.md +0 -81
- data/UPGRADING.md +0 -91
- data/docker-compose.yml +0 -46
- data/dockerfiles/Dockerfile.jruby-unit-tests +0 -13
- data/dockerfiles/Dockerfile.ruby-maze-runner +0 -26
- data/dockerfiles/Dockerfile.ruby-unit-tests +0 -12
- data/features/.gitignore +0 -1
- data/features/delayed_job.feature +0 -36
- data/features/fixtures/delayed_job/Dockerfile +0 -15
- data/features/fixtures/delayed_job/app/.gitignore +0 -21
- data/features/fixtures/delayed_job/app/Gemfile +0 -57
- data/features/fixtures/delayed_job/app/README.md +0 -24
- data/features/fixtures/delayed_job/app/Rakefile +0 -24
- data/features/fixtures/delayed_job/app/app/assets/config/manifest.js +0 -3
- data/features/fixtures/delayed_job/app/app/assets/images/.keep +0 -0
- data/features/fixtures/delayed_job/app/app/assets/javascripts/application.js +0 -16
- data/features/fixtures/delayed_job/app/app/assets/javascripts/cable.js +0 -13
- data/features/fixtures/delayed_job/app/app/assets/javascripts/channels/.keep +0 -0
- data/features/fixtures/delayed_job/app/app/assets/stylesheets/application.css +0 -15
- data/features/fixtures/delayed_job/app/app/channels/application_cable/channel.rb +0 -4
- data/features/fixtures/delayed_job/app/app/channels/application_cable/connection.rb +0 -4
- data/features/fixtures/delayed_job/app/app/controllers/application_controller.rb +0 -3
- data/features/fixtures/delayed_job/app/app/controllers/concerns/.keep +0 -0
- data/features/fixtures/delayed_job/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/delayed_job/app/app/jobs/application_job.rb +0 -2
- data/features/fixtures/delayed_job/app/app/mailers/application_mailer.rb +0 -4
- data/features/fixtures/delayed_job/app/app/models/application_record.rb +0 -3
- data/features/fixtures/delayed_job/app/app/models/concerns/.keep +0 -0
- data/features/fixtures/delayed_job/app/app/models/test_model.rb +0 -10
- data/features/fixtures/delayed_job/app/app/views/layouts/application.html.erb +0 -14
- data/features/fixtures/delayed_job/app/app/views/layouts/mailer.html.erb +0 -13
- data/features/fixtures/delayed_job/app/app/views/layouts/mailer.text.erb +0 -1
- data/features/fixtures/delayed_job/app/config.ru +0 -5
- data/features/fixtures/delayed_job/app/config/application.rb +0 -15
- data/features/fixtures/delayed_job/app/config/boot.rb +0 -3
- data/features/fixtures/delayed_job/app/config/cable.yml +0 -9
- data/features/fixtures/delayed_job/app/config/database.yml +0 -25
- data/features/fixtures/delayed_job/app/config/environment.rb +0 -5
- data/features/fixtures/delayed_job/app/config/environments/development.rb +0 -54
- data/features/fixtures/delayed_job/app/config/environments/production.rb +0 -86
- data/features/fixtures/delayed_job/app/config/environments/test.rb +0 -42
- data/features/fixtures/delayed_job/app/config/initializers/application_controller_renderer.rb +0 -8
- data/features/fixtures/delayed_job/app/config/initializers/assets.rb +0 -11
- data/features/fixtures/delayed_job/app/config/initializers/backtrace_silencers.rb +0 -7
- data/features/fixtures/delayed_job/app/config/initializers/bugsnag.rb +0 -14
- data/features/fixtures/delayed_job/app/config/initializers/cookies_serializer.rb +0 -5
- data/features/fixtures/delayed_job/app/config/initializers/delayed_job.rb +0 -3
- data/features/fixtures/delayed_job/app/config/initializers/filter_parameter_logging.rb +0 -4
- data/features/fixtures/delayed_job/app/config/initializers/inflections.rb +0 -16
- data/features/fixtures/delayed_job/app/config/initializers/mime_types.rb +0 -4
- data/features/fixtures/delayed_job/app/config/initializers/new_framework_defaults.rb +0 -26
- data/features/fixtures/delayed_job/app/config/initializers/session_store.rb +0 -3
- data/features/fixtures/delayed_job/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/delayed_job/app/config/locales/en.yml +0 -23
- data/features/fixtures/delayed_job/app/config/puma.rb +0 -47
- data/features/fixtures/delayed_job/app/config/routes.rb +0 -3
- data/features/fixtures/delayed_job/app/config/secrets.yml +0 -22
- data/features/fixtures/delayed_job/app/config/spring.rb +0 -6
- data/features/fixtures/delayed_job/app/db/migrate/20181024232549_create_delayed_jobs.rb +0 -22
- data/features/fixtures/delayed_job/app/db/migrate/20181024232817_create_test_models.rb +0 -8
- data/features/fixtures/delayed_job/app/db/schema.rb +0 -30
- data/features/fixtures/delayed_job/app/db/seeds.rb +0 -7
- data/features/fixtures/delayed_job/app/lib/assets/.keep +0 -0
- data/features/fixtures/delayed_job/app/lib/tasks/.keep +0 -0
- data/features/fixtures/delayed_job/app/log/.keep +0 -0
- data/features/fixtures/delayed_job/app/public/404.html +0 -67
- data/features/fixtures/delayed_job/app/public/422.html +0 -67
- data/features/fixtures/delayed_job/app/public/500.html +0 -66
- data/features/fixtures/delayed_job/app/public/apple-touch-icon-precomposed.png +0 -0
- data/features/fixtures/delayed_job/app/public/apple-touch-icon.png +0 -0
- data/features/fixtures/delayed_job/app/public/favicon.ico +0 -0
- data/features/fixtures/delayed_job/app/public/robots.txt +0 -5
- data/features/fixtures/delayed_job/app/test/controllers/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/fixtures/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/fixtures/files/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/fixtures/test_models.yml +0 -11
- data/features/fixtures/delayed_job/app/test/helpers/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/integration/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/mailers/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/models/.keep +0 -0
- data/features/fixtures/delayed_job/app/test/models/test_model_test.rb +0 -7
- data/features/fixtures/delayed_job/app/test/test_helper.rb +0 -10
- data/features/fixtures/delayed_job/app/tmp/.keep +0 -0
- data/features/fixtures/docker-compose.yml +0 -303
- data/features/fixtures/expected_breadcrumbs/active_job.json +0 -9
- data/features/fixtures/expected_breadcrumbs/mongo_failed.json +0 -15
- data/features/fixtures/expected_breadcrumbs/mongo_filtered_request.json +0 -15
- data/features/fixtures/expected_breadcrumbs/mongo_filtered_result.json +0 -15
- data/features/fixtures/expected_breadcrumbs/mongo_success.json +0 -14
- data/features/fixtures/expected_breadcrumbs/request.json +0 -13
- data/features/fixtures/expected_breadcrumbs/sql_with_bindings.json +0 -12
- data/features/fixtures/expected_breadcrumbs/sql_without_bindings.json +0 -11
- data/features/fixtures/plain/.dockerignore +0 -2
- data/features/fixtures/plain/Dockerfile +0 -11
- data/features/fixtures/plain/app/Gemfile +0 -3
- data/features/fixtures/plain/app/app.rb +0 -38
- data/features/fixtures/plain/app/configuration/api_key.rb +0 -9
- data/features/fixtures/plain/app/configuration/proxy.rb +0 -14
- data/features/fixtures/plain/app/configuration/send_handled.rb +0 -7
- data/features/fixtures/plain/app/configuration/send_unhandled.rb +0 -9
- data/features/fixtures/plain/app/delivery/fork_threadpool.rb +0 -27
- data/features/fixtures/plain/app/delivery/synchronous.rb +0 -14
- data/features/fixtures/plain/app/delivery/threadpool.rb +0 -14
- data/features/fixtures/plain/app/exception_data/crash.rb +0 -34
- data/features/fixtures/plain/app/exception_data/handled_context.rb +0 -10
- data/features/fixtures/plain/app/exception_data/handled_hash.rb +0 -10
- data/features/fixtures/plain/app/exception_data/handled_meta_data.rb +0 -10
- data/features/fixtures/plain/app/exception_data/handled_user_id.rb +0 -10
- data/features/fixtures/plain/app/exception_data/unhandled_context.rb +0 -7
- data/features/fixtures/plain/app/exception_data/unhandled_hash.rb +0 -7
- data/features/fixtures/plain/app/exception_data/unhandled_meta_data.rb +0 -7
- data/features/fixtures/plain/app/exception_data/unhandled_user_id.rb +0 -7
- data/features/fixtures/plain/app/filters/additional_filters.rb +0 -11
- data/features/fixtures/plain/app/filters/default_filters.rb +0 -15
- data/features/fixtures/plain/app/handled/block_metadata.rb +0 -15
- data/features/fixtures/plain/app/handled/ignore_exception.rb +0 -12
- data/features/fixtures/plain/app/handled/notify_exception.rb +0 -9
- data/features/fixtures/plain/app/handled/notify_string.rb +0 -9
- data/features/fixtures/plain/app/ignore_classes/handled.rb +0 -8
- data/features/fixtures/plain/app/ignore_classes/ignore_error.rb +0 -8
- data/features/fixtures/plain/app/ignore_classes/unhandled.rb +0 -4
- data/features/fixtures/plain/app/report_modification/add_tab.rb +0 -16
- data/features/fixtures/plain/app/report_modification/add_tab_existing.rb +0 -22
- data/features/fixtures/plain/app/report_modification/add_tab_override.rb +0 -19
- data/features/fixtures/plain/app/report_modification/ignore_report.rb +0 -9
- data/features/fixtures/plain/app/report_modification/initiators/handled_before_notify.rb +0 -10
- data/features/fixtures/plain/app/report_modification/initiators/handled_block.rb +0 -8
- data/features/fixtures/plain/app/report_modification/initiators/handled_on_error.rb +0 -10
- data/features/fixtures/plain/app/report_modification/initiators/unhandled_before_notify.rb +0 -11
- data/features/fixtures/plain/app/report_modification/initiators/unhandled_on_error.rb +0 -11
- data/features/fixtures/plain/app/report_modification/modify_api_key.rb +0 -9
- data/features/fixtures/plain/app/report_modification/modify_severity.rb +0 -9
- data/features/fixtures/plain/app/report_modification/remove_user_details.rb +0 -14
- data/features/fixtures/plain/app/report_modification/set_custom_user_details.rb +0 -16
- data/features/fixtures/plain/app/report_modification/set_user_details.rb +0 -13
- data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_before_notify.rb +0 -29
- data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_block.rb +0 -24
- data/features/fixtures/plain/app/stack_frame_modification/initiators/handled_on_error.rb +0 -29
- data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_before_notify.rb +0 -26
- data/features/fixtures/plain/app/stack_frame_modification/initiators/unhandled_on_error.rb +0 -26
- data/features/fixtures/plain/app/stack_frame_modification/mark_frames_in_project.rb +0 -13
- data/features/fixtures/plain/app/stack_frame_modification/remove_stack_frame.rb +0 -9
- data/features/fixtures/plain/app/unhandled/bad_syntax.rb +0 -1
- data/features/fixtures/plain/app/unhandled/custom_error.rb +0 -9
- data/features/fixtures/plain/app/unhandled/interrupt.rb +0 -6
- data/features/fixtures/plain/app/unhandled/load_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/local_jump_error.rb +0 -10
- data/features/fixtures/plain/app/unhandled/name_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/no_method_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/runtime_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/syntax_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/system_call_error.rb +0 -6
- data/features/fixtures/plain/app/unhandled/system_exit.rb +0 -6
- data/features/fixtures/plain/json/delivery_fork.json +0 -4
- data/features/fixtures/plain/json/delivery_synchronous.json +0 -4
- data/features/fixtures/plain/json/delivery_threadpool.json +0 -4
- data/features/fixtures/plain/json/filters_default_metadata_filters.json +0 -9
- data/features/fixtures/rack1/.dockerignore +0 -1
- data/features/fixtures/rack1/Dockerfile +0 -13
- data/features/fixtures/rack1/Gemfile +0 -4
- data/features/fixtures/rack1/app.rb +0 -8
- data/features/fixtures/rack2/.dockerignore +0 -1
- data/features/fixtures/rack2/Dockerfile +0 -13
- data/features/fixtures/rack2/Gemfile +0 -4
- data/features/fixtures/rack2/app.rb +0 -8
- data/features/fixtures/rails3/.dockerignore +0 -1
- data/features/fixtures/rails3/Dockerfile +0 -15
- data/features/fixtures/rails3/app/.gitignore +0 -15
- data/features/fixtures/rails3/app/Gemfile +0 -17
- data/features/fixtures/rails3/app/Rakefile +0 -7
- data/features/fixtures/rails3/app/app/assets/images/rails.png +0 -0
- data/features/fixtures/rails3/app/app/assets/javascripts/application.js +0 -15
- data/features/fixtures/rails3/app/app/assets/stylesheets/application.css +0 -13
- data/features/fixtures/rails3/app/app/controllers/api_key_controller.rb +0 -20
- data/features/fixtures/rails3/app/app/controllers/app_type_controller.rb +0 -20
- data/features/fixtures/rails3/app/app/controllers/app_version_controller.rb +0 -25
- data/features/fixtures/rails3/app/app/controllers/application_controller.rb +0 -7
- data/features/fixtures/rails3/app/app/controllers/auto_notify_controller.rb +0 -31
- data/features/fixtures/rails3/app/app/controllers/before_notify_controller.rb +0 -44
- data/features/fixtures/rails3/app/app/controllers/breadcrumbs_controller.rb +0 -19
- data/features/fixtures/rails3/app/app/controllers/handled_controller.rb +0 -26
- data/features/fixtures/rails3/app/app/controllers/ignore_classes_controller.rb +0 -23
- data/features/fixtures/rails3/app/app/controllers/metadata_filters_controller.rb +0 -16
- data/features/fixtures/rails3/app/app/controllers/project_root_controller.rb +0 -25
- data/features/fixtures/rails3/app/app/controllers/release_stage_controller.rb +0 -20
- data/features/fixtures/rails3/app/app/controllers/send_code_controller.rb +0 -20
- data/features/fixtures/rails3/app/app/controllers/send_environment_controller.rb +0 -12
- data/features/fixtures/rails3/app/app/controllers/session_tracking_controller.rb +0 -24
- data/features/fixtures/rails3/app/app/controllers/unhandled_controller.rb +0 -11
- data/features/fixtures/rails3/app/app/controllers/warden_controller.rb +0 -30
- data/features/fixtures/rails3/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/rails3/app/app/mailers/.gitkeep +0 -0
- data/features/fixtures/rails3/app/app/models/.gitkeep +0 -0
- data/features/fixtures/rails3/app/app/models/user.rb +0 -6
- data/features/fixtures/rails3/app/app/views/layouts/application.html.erb +0 -14
- data/features/fixtures/rails3/app/config.ru +0 -4
- data/features/fixtures/rails3/app/config/application.rb +0 -67
- data/features/fixtures/rails3/app/config/boot.rb +0 -6
- data/features/fixtures/rails3/app/config/database.yml +0 -31
- data/features/fixtures/rails3/app/config/environment.rb +0 -5
- data/features/fixtures/rails3/app/config/environments/development.rb +0 -37
- data/features/fixtures/rails3/app/config/environments/production.rb +0 -67
- data/features/fixtures/rails3/app/config/environments/rails_env.rb +0 -37
- data/features/fixtures/rails3/app/config/initializers/bugsnag.rb +0 -29
- data/features/fixtures/rails3/app/config/initializers/secret_token.rb +0 -7
- data/features/fixtures/rails3/app/config/initializers/session_store.rb +0 -8
- data/features/fixtures/rails3/app/config/initializers/warden.rb +0 -3
- data/features/fixtures/rails3/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/rails3/app/config/locales/en.yml +0 -5
- data/features/fixtures/rails3/app/config/routes.rb +0 -19
- data/features/fixtures/rails3/app/db/migrate/20180423142727_create_users.rb +0 -45
- data/features/fixtures/rails3/app/db/schema.rb +0 -37
- data/features/fixtures/rails3/app/db/seeds.rb +0 -7
- data/features/fixtures/rails3/app/lib/assets/.gitkeep +0 -0
- data/features/fixtures/rails3/app/lib/strategies/token_strategy.rb +0 -12
- data/features/fixtures/rails3/app/lib/tasks/.gitkeep +0 -0
- data/features/fixtures/rails3/app/log/.gitkeep +0 -0
- data/features/fixtures/rails3/app/public/404.html +0 -26
- data/features/fixtures/rails3/app/public/422.html +0 -26
- data/features/fixtures/rails3/app/public/500.html +0 -25
- data/features/fixtures/rails3/app/public/favicon.ico +0 -0
- data/features/fixtures/rails3/app/public/index.html +0 -241
- data/features/fixtures/rails3/app/public/robots.txt +0 -5
- data/features/fixtures/rails3/app/script/rails +0 -6
- data/features/fixtures/rails4/.dockerignore +0 -1
- data/features/fixtures/rails4/Dockerfile +0 -17
- data/features/fixtures/rails4/app/.gitignore +0 -16
- data/features/fixtures/rails4/app/Gemfile +0 -46
- data/features/fixtures/rails4/app/README.rdoc +0 -28
- data/features/fixtures/rails4/app/Rakefile +0 -6
- data/features/fixtures/rails4/app/app/assets/images/.keep +0 -0
- data/features/fixtures/rails4/app/app/assets/javascripts/application.js +0 -16
- data/features/fixtures/rails4/app/app/assets/stylesheets/application.css +0 -13
- data/features/fixtures/rails4/app/app/controllers/api_key_controller.rb +0 -20
- data/features/fixtures/rails4/app/app/controllers/app_type_controller.rb +0 -20
- data/features/fixtures/rails4/app/app/controllers/app_version_controller.rb +0 -25
- data/features/fixtures/rails4/app/app/controllers/application_controller.rb +0 -7
- data/features/fixtures/rails4/app/app/controllers/auto_notify_controller.rb +0 -31
- data/features/fixtures/rails4/app/app/controllers/before_notify_controller.rb +0 -44
- data/features/fixtures/rails4/app/app/controllers/breadcrumbs_controller.rb +0 -26
- data/features/fixtures/rails4/app/app/controllers/concerns/.keep +0 -0
- data/features/fixtures/rails4/app/app/controllers/devise_controller.rb +0 -32
- data/features/fixtures/rails4/app/app/controllers/handled_controller.rb +0 -26
- data/features/fixtures/rails4/app/app/controllers/ignore_classes_controller.rb +0 -23
- data/features/fixtures/rails4/app/app/controllers/metadata_filters_controller.rb +0 -16
- data/features/fixtures/rails4/app/app/controllers/mongo_controller.rb +0 -23
- data/features/fixtures/rails4/app/app/controllers/project_root_controller.rb +0 -25
- data/features/fixtures/rails4/app/app/controllers/release_stage_controller.rb +0 -20
- data/features/fixtures/rails4/app/app/controllers/send_code_controller.rb +0 -20
- data/features/fixtures/rails4/app/app/controllers/send_environment_controller.rb +0 -12
- data/features/fixtures/rails4/app/app/controllers/session_tracking_controller.rb +0 -24
- data/features/fixtures/rails4/app/app/controllers/unhandled_controller.rb +0 -11
- data/features/fixtures/rails4/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/rails4/app/app/jobs/application_job.rb +0 -2
- data/features/fixtures/rails4/app/app/jobs/notify_job.rb +0 -5
- data/features/fixtures/rails4/app/app/mailers/.keep +0 -0
- data/features/fixtures/rails4/app/app/models/.keep +0 -0
- data/features/fixtures/rails4/app/app/models/concerns/.keep +0 -0
- data/features/fixtures/rails4/app/app/models/mongo_model.rb +0 -6
- data/features/fixtures/rails4/app/app/models/user.rb +0 -6
- data/features/fixtures/rails4/app/app/views/layouts/application.html.erb +0 -14
- data/features/fixtures/rails4/app/config.ru +0 -4
- data/features/fixtures/rails4/app/config/application.rb +0 -23
- data/features/fixtures/rails4/app/config/boot.rb +0 -4
- data/features/fixtures/rails4/app/config/database.yml +0 -31
- data/features/fixtures/rails4/app/config/environment.rb +0 -5
- data/features/fixtures/rails4/app/config/environments/development.rb +0 -31
- data/features/fixtures/rails4/app/config/environments/production.rb +0 -81
- data/features/fixtures/rails4/app/config/environments/rails_env.rb +0 -30
- data/features/fixtures/rails4/app/config/environments/test.rb +0 -31
- data/features/fixtures/rails4/app/config/initializers/backtrace_silencers.rb +0 -7
- data/features/fixtures/rails4/app/config/initializers/bugsnag.rb +0 -29
- data/features/fixtures/rails4/app/config/initializers/devise.rb +0 -283
- data/features/fixtures/rails4/app/config/initializers/filter_parameter_logging.rb +0 -5
- data/features/fixtures/rails4/app/config/initializers/inflections.rb +0 -16
- data/features/fixtures/rails4/app/config/initializers/mime_types.rb +0 -5
- data/features/fixtures/rails4/app/config/initializers/secret_token.rb +0 -12
- data/features/fixtures/rails4/app/config/initializers/session_store.rb +0 -3
- data/features/fixtures/rails4/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/rails4/app/config/locales/devise.en.yml +0 -64
- data/features/fixtures/rails4/app/config/locales/en.yml +0 -23
- data/features/fixtures/rails4/app/config/mongoid.yml +0 -22
- data/features/fixtures/rails4/app/config/routes.rb +0 -21
- data/features/fixtures/rails4/app/db/migrate/20180420160315_devise_create_users.rb +0 -47
- data/features/fixtures/rails4/app/db/seeds.rb +0 -7
- data/features/fixtures/rails4/app/lib/assets/.keep +0 -0
- data/features/fixtures/rails4/app/lib/tasks/.keep +0 -0
- data/features/fixtures/rails4/app/log/.keep +0 -0
- data/features/fixtures/rails4/app/public/404.html +0 -58
- data/features/fixtures/rails4/app/public/422.html +0 -58
- data/features/fixtures/rails4/app/public/500.html +0 -57
- data/features/fixtures/rails4/app/public/favicon.ico +0 -0
- data/features/fixtures/rails4/app/public/robots.txt +0 -5
- data/features/fixtures/rails4/app/test/controllers/.keep +0 -0
- data/features/fixtures/rails4/app/test/fixtures/.keep +0 -0
- data/features/fixtures/rails4/app/test/helpers/.keep +0 -0
- data/features/fixtures/rails4/app/test/integration/.keep +0 -0
- data/features/fixtures/rails4/app/test/mailers/.keep +0 -0
- data/features/fixtures/rails4/app/test/models/.keep +0 -0
- data/features/fixtures/rails4/app/test/test_helper.rb +0 -15
- data/features/fixtures/rails5/.dockerignore +0 -1
- data/features/fixtures/rails5/Dockerfile +0 -17
- data/features/fixtures/rails5/app/.gitignore +0 -21
- data/features/fixtures/rails5/app/Gemfile +0 -52
- data/features/fixtures/rails5/app/README.md +0 -24
- data/features/fixtures/rails5/app/Rakefile +0 -6
- data/features/fixtures/rails5/app/app/assets/config/manifest.js +0 -3
- data/features/fixtures/rails5/app/app/assets/images/.keep +0 -0
- data/features/fixtures/rails5/app/app/assets/javascripts/application.js +0 -16
- data/features/fixtures/rails5/app/app/assets/javascripts/cable.js +0 -13
- data/features/fixtures/rails5/app/app/assets/javascripts/channels/.keep +0 -0
- data/features/fixtures/rails5/app/app/assets/stylesheets/application.css +0 -15
- data/features/fixtures/rails5/app/app/channels/application_cable/channel.rb +0 -4
- data/features/fixtures/rails5/app/app/channels/application_cable/connection.rb +0 -4
- data/features/fixtures/rails5/app/app/controllers/api_key_controller.rb +0 -16
- data/features/fixtures/rails5/app/app/controllers/app_type_controller.rb +0 -16
- data/features/fixtures/rails5/app/app/controllers/app_version_controller.rb +0 -21
- data/features/fixtures/rails5/app/app/controllers/application_controller.rb +0 -7
- data/features/fixtures/rails5/app/app/controllers/auto_notify_controller.rb +0 -27
- data/features/fixtures/rails5/app/app/controllers/before_notify_controller.rb +0 -40
- data/features/fixtures/rails5/app/app/controllers/breadcrumbs_controller.rb +0 -24
- data/features/fixtures/rails5/app/app/controllers/clearance_controller.rb +0 -33
- data/features/fixtures/rails5/app/app/controllers/concerns/.keep +0 -0
- data/features/fixtures/rails5/app/app/controllers/handled_controller.rb +0 -22
- data/features/fixtures/rails5/app/app/controllers/ignore_classes_controller.rb +0 -19
- data/features/fixtures/rails5/app/app/controllers/metadata_filters_controller.rb +0 -12
- data/features/fixtures/rails5/app/app/controllers/mongo_controller.rb +0 -22
- data/features/fixtures/rails5/app/app/controllers/project_root_controller.rb +0 -21
- data/features/fixtures/rails5/app/app/controllers/release_stage_controller.rb +0 -16
- data/features/fixtures/rails5/app/app/controllers/send_code_controller.rb +0 -16
- data/features/fixtures/rails5/app/app/controllers/send_environment_controller.rb +0 -8
- data/features/fixtures/rails5/app/app/controllers/session_tracking_controller.rb +0 -20
- data/features/fixtures/rails5/app/app/controllers/unhandled_controller.rb +0 -7
- data/features/fixtures/rails5/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/rails5/app/app/jobs/application_job.rb +0 -2
- data/features/fixtures/rails5/app/app/jobs/notify_job.rb +0 -5
- data/features/fixtures/rails5/app/app/mailers/application_mailer.rb +0 -4
- data/features/fixtures/rails5/app/app/models/application_record.rb +0 -3
- data/features/fixtures/rails5/app/app/models/concerns/.keep +0 -0
- data/features/fixtures/rails5/app/app/models/mongo_model.rb +0 -6
- data/features/fixtures/rails5/app/app/models/user.rb +0 -3
- data/features/fixtures/rails5/app/app/views/layouts/application.html.erb +0 -14
- data/features/fixtures/rails5/app/app/views/layouts/mailer.html.erb +0 -13
- data/features/fixtures/rails5/app/app/views/layouts/mailer.text.erb +0 -1
- data/features/fixtures/rails5/app/config.ru +0 -5
- data/features/fixtures/rails5/app/config/application.rb +0 -15
- data/features/fixtures/rails5/app/config/boot.rb +0 -3
- data/features/fixtures/rails5/app/config/cable.yml +0 -9
- data/features/fixtures/rails5/app/config/database.yml +0 -29
- data/features/fixtures/rails5/app/config/environment.rb +0 -5
- data/features/fixtures/rails5/app/config/environments/development.rb +0 -55
- data/features/fixtures/rails5/app/config/environments/production.rb +0 -87
- data/features/fixtures/rails5/app/config/environments/rails_env.rb +0 -55
- data/features/fixtures/rails5/app/config/environments/test.rb +0 -55
- data/features/fixtures/rails5/app/config/initializers/assets.rb +0 -11
- data/features/fixtures/rails5/app/config/initializers/backtrace_silencers.rb +0 -7
- data/features/fixtures/rails5/app/config/initializers/bugsnag.rb +0 -29
- data/features/fixtures/rails5/app/config/initializers/clearance.rb +0 -5
- data/features/fixtures/rails5/app/config/initializers/cookies_serializer.rb +0 -5
- data/features/fixtures/rails5/app/config/initializers/filter_parameter_logging.rb +0 -5
- data/features/fixtures/rails5/app/config/initializers/inflections.rb +0 -16
- data/features/fixtures/rails5/app/config/initializers/mime_types.rb +0 -4
- data/features/fixtures/rails5/app/config/initializers/new_framework_defaults.rb +0 -24
- data/features/fixtures/rails5/app/config/initializers/session_store.rb +0 -3
- data/features/fixtures/rails5/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/rails5/app/config/locales/devise.en.yml +0 -64
- data/features/fixtures/rails5/app/config/locales/en.yml +0 -23
- data/features/fixtures/rails5/app/config/mongoid.yml +0 -23
- data/features/fixtures/rails5/app/config/puma.rb +0 -47
- data/features/fixtures/rails5/app/config/routes.rb +0 -62
- data/features/fixtures/rails5/app/config/secrets.yml +0 -25
- data/features/fixtures/rails5/app/config/spring.rb +0 -6
- data/features/fixtures/rails5/app/db/migrate/20180426095545_create_users.rb +0 -17
- data/features/fixtures/rails5/app/db/schema.rb +0 -29
- data/features/fixtures/rails5/app/db/seeds.rb +0 -7
- data/features/fixtures/rails5/app/lib/assets/.keep +0 -0
- data/features/fixtures/rails5/app/lib/tasks/.keep +0 -0
- data/features/fixtures/rails5/app/log/.keep +0 -0
- data/features/fixtures/rails5/app/public/404.html +0 -67
- data/features/fixtures/rails5/app/public/422.html +0 -67
- data/features/fixtures/rails5/app/public/500.html +0 -66
- data/features/fixtures/rails5/app/public/apple-touch-icon-precomposed.png +0 -0
- data/features/fixtures/rails5/app/public/apple-touch-icon.png +0 -0
- data/features/fixtures/rails5/app/public/favicon.ico +0 -0
- data/features/fixtures/rails5/app/public/robots.txt +0 -5
- data/features/fixtures/rails5/app/test/controllers/.keep +0 -0
- data/features/fixtures/rails5/app/test/fixtures/.keep +0 -0
- data/features/fixtures/rails5/app/test/fixtures/files/.keep +0 -0
- data/features/fixtures/rails5/app/test/helpers/.keep +0 -0
- data/features/fixtures/rails5/app/test/integration/.keep +0 -0
- data/features/fixtures/rails5/app/test/mailers/.keep +0 -0
- data/features/fixtures/rails5/app/test/models/.keep +0 -0
- data/features/fixtures/rails5/app/test/test_helper.rb +0 -10
- data/features/fixtures/rails5/app/tmp/.keep +0 -0
- data/features/fixtures/rails6/.dockerignore +0 -1
- data/features/fixtures/rails6/Dockerfile +0 -26
- data/features/fixtures/rails6/app/.browserslistrc +0 -1
- data/features/fixtures/rails6/app/.gitignore +0 -35
- data/features/fixtures/rails6/app/.ruby-version +0 -1
- data/features/fixtures/rails6/app/Gemfile +0 -58
- data/features/fixtures/rails6/app/README.md +0 -24
- data/features/fixtures/rails6/app/Rakefile +0 -6
- data/features/fixtures/rails6/app/app/assets/config/manifest.js +0 -2
- data/features/fixtures/rails6/app/app/assets/images/.keep +0 -0
- data/features/fixtures/rails6/app/app/assets/stylesheets/application.css +0 -15
- data/features/fixtures/rails6/app/app/channels/application_cable/channel.rb +0 -4
- data/features/fixtures/rails6/app/app/channels/application_cable/connection.rb +0 -4
- data/features/fixtures/rails6/app/app/controllers/api_key_controller.rb +0 -16
- data/features/fixtures/rails6/app/app/controllers/app_type_controller.rb +0 -16
- data/features/fixtures/rails6/app/app/controllers/app_version_controller.rb +0 -21
- data/features/fixtures/rails6/app/app/controllers/application_controller.rb +0 -7
- data/features/fixtures/rails6/app/app/controllers/auto_notify_controller.rb +0 -27
- data/features/fixtures/rails6/app/app/controllers/before_notify_controller.rb +0 -40
- data/features/fixtures/rails6/app/app/controllers/breadcrumbs_controller.rb +0 -24
- data/features/fixtures/rails6/app/app/controllers/clearance_controller.rb +0 -33
- data/features/fixtures/rails6/app/app/controllers/concerns/.keep +0 -0
- data/features/fixtures/rails6/app/app/controllers/handled_controller.rb +0 -22
- data/features/fixtures/rails6/app/app/controllers/ignore_classes_controller.rb +0 -19
- data/features/fixtures/rails6/app/app/controllers/metadata_filters_controller.rb +0 -12
- data/features/fixtures/rails6/app/app/controllers/mongo_controller.rb +0 -22
- data/features/fixtures/rails6/app/app/controllers/project_root_controller.rb +0 -21
- data/features/fixtures/rails6/app/app/controllers/release_stage_controller.rb +0 -16
- data/features/fixtures/rails6/app/app/controllers/send_code_controller.rb +0 -16
- data/features/fixtures/rails6/app/app/controllers/send_environment_controller.rb +0 -8
- data/features/fixtures/rails6/app/app/controllers/session_tracking_controller.rb +0 -20
- data/features/fixtures/rails6/app/app/controllers/unhandled_controller.rb +0 -7
- data/features/fixtures/rails6/app/app/helpers/application_helper.rb +0 -2
- data/features/fixtures/rails6/app/app/javascript/channels/consumer.js +0 -6
- data/features/fixtures/rails6/app/app/javascript/channels/index.js +0 -5
- data/features/fixtures/rails6/app/app/javascript/packs/application.js +0 -9
- data/features/fixtures/rails6/app/app/jobs/application_job.rb +0 -7
- data/features/fixtures/rails6/app/app/jobs/notify_job.rb +0 -5
- data/features/fixtures/rails6/app/app/mailers/application_mailer.rb +0 -4
- data/features/fixtures/rails6/app/app/models/application_record.rb +0 -3
- data/features/fixtures/rails6/app/app/models/concerns/.keep +0 -0
- data/features/fixtures/rails6/app/app/models/mongo_model.rb +0 -6
- data/features/fixtures/rails6/app/app/models/user.rb +0 -3
- data/features/fixtures/rails6/app/app/views/layouts/application.html.erb +0 -15
- data/features/fixtures/rails6/app/app/views/layouts/mailer.html.erb +0 -13
- data/features/fixtures/rails6/app/app/views/layouts/mailer.text.erb +0 -1
- data/features/fixtures/rails6/app/babel.config.js +0 -70
- data/features/fixtures/rails6/app/config.ru +0 -5
- data/features/fixtures/rails6/app/config/application.rb +0 -19
- data/features/fixtures/rails6/app/config/boot.rb +0 -4
- data/features/fixtures/rails6/app/config/cable.yml +0 -13
- data/features/fixtures/rails6/app/config/credentials.yml.enc +0 -1
- data/features/fixtures/rails6/app/config/database.yml +0 -29
- data/features/fixtures/rails6/app/config/environment.rb +0 -5
- data/features/fixtures/rails6/app/config/environments/development.rb +0 -64
- data/features/fixtures/rails6/app/config/environments/production.rb +0 -113
- data/features/fixtures/rails6/app/config/environments/rails_env.rb +0 -56
- data/features/fixtures/rails6/app/config/environments/test.rb +0 -48
- data/features/fixtures/rails6/app/config/initializers/application_controller_renderer.rb +0 -8
- data/features/fixtures/rails6/app/config/initializers/assets.rb +0 -14
- data/features/fixtures/rails6/app/config/initializers/backtrace_silencers.rb +0 -7
- data/features/fixtures/rails6/app/config/initializers/bugsnag.rb +0 -29
- data/features/fixtures/rails6/app/config/initializers/content_security_policy.rb +0 -27
- data/features/fixtures/rails6/app/config/initializers/cookies_serializer.rb +0 -5
- data/features/fixtures/rails6/app/config/initializers/filter_parameter_logging.rb +0 -5
- data/features/fixtures/rails6/app/config/initializers/inflections.rb +0 -16
- data/features/fixtures/rails6/app/config/initializers/mime_types.rb +0 -4
- data/features/fixtures/rails6/app/config/initializers/wrap_parameters.rb +0 -14
- data/features/fixtures/rails6/app/config/locales/en.yml +0 -33
- data/features/fixtures/rails6/app/config/mongoid.yml +0 -23
- data/features/fixtures/rails6/app/config/puma.rb +0 -35
- data/features/fixtures/rails6/app/config/routes.rb +0 -62
- data/features/fixtures/rails6/app/config/secrets.yml +0 -25
- data/features/fixtures/rails6/app/config/spring.rb +0 -6
- data/features/fixtures/rails6/app/config/storage.yml +0 -34
- data/features/fixtures/rails6/app/config/webpack/development.js +0 -5
- data/features/fixtures/rails6/app/config/webpack/environment.js +0 -3
- data/features/fixtures/rails6/app/config/webpack/production.js +0 -5
- data/features/fixtures/rails6/app/config/webpack/rails_env.js +0 -5
- data/features/fixtures/rails6/app/config/webpack/test.js +0 -5
- data/features/fixtures/rails6/app/config/webpacker.yml +0 -121
- data/features/fixtures/rails6/app/db/migrate/20180426095545_create_users.rb +0 -17
- data/features/fixtures/rails6/app/db/schema.rb +0 -29
- data/features/fixtures/rails6/app/db/seeds.rb +0 -7
- data/features/fixtures/rails6/app/lib/assets/.keep +0 -0
- data/features/fixtures/rails6/app/lib/tasks/.keep +0 -0
- data/features/fixtures/rails6/app/log/.keep +0 -0
- data/features/fixtures/rails6/app/package.json +0 -15
- data/features/fixtures/rails6/app/postcss.config.js +0 -12
- data/features/fixtures/rails6/app/public/404.html +0 -67
- data/features/fixtures/rails6/app/public/422.html +0 -67
- data/features/fixtures/rails6/app/public/500.html +0 -66
- data/features/fixtures/rails6/app/public/apple-touch-icon-precomposed.png +0 -0
- data/features/fixtures/rails6/app/public/apple-touch-icon.png +0 -0
- data/features/fixtures/rails6/app/public/favicon.ico +0 -0
- data/features/fixtures/rails6/app/public/robots.txt +0 -1
- data/features/fixtures/rails6/app/storage/.keep +0 -0
- data/features/fixtures/rails6/app/test/application_system_test_case.rb +0 -5
- data/features/fixtures/rails6/app/test/channels/application_cable/connection_test.rb +0 -11
- data/features/fixtures/rails6/app/test/controllers/.keep +0 -0
- data/features/fixtures/rails6/app/test/fixtures/.keep +0 -0
- data/features/fixtures/rails6/app/test/fixtures/files/.keep +0 -0
- data/features/fixtures/rails6/app/test/helpers/.keep +0 -0
- data/features/fixtures/rails6/app/test/integration/.keep +0 -0
- data/features/fixtures/rails6/app/test/mailers/.keep +0 -0
- data/features/fixtures/rails6/app/test/models/.keep +0 -0
- data/features/fixtures/rails6/app/test/system/.keep +0 -0
- data/features/fixtures/rails6/app/test/test_helper.rb +0 -13
- data/features/fixtures/rails6/app/tmp/.keep +0 -0
- data/features/fixtures/rails6/app/yarn.lock +0 -6082
- data/features/fixtures/resque/.dockerignore +0 -1
- data/features/fixtures/resque/Dockerfile +0 -14
- data/features/fixtures/resque/Gemfile +0 -6
- data/features/fixtures/resque/Rakefile +0 -4
- data/features/fixtures/resque/app.rb +0 -12
- data/features/fixtures/sidekiq/.dockerignore +0 -2
- data/features/fixtures/sidekiq/Dockerfile +0 -17
- data/features/fixtures/sidekiq/app/Gemfile +0 -7
- data/features/fixtures/sidekiq/app/Rakefile.rb +0 -14
- data/features/fixtures/sidekiq/app/app.rb +0 -35
- data/features/fixtures/sidekiq/app/initializers/HandledError.rb +0 -3
- data/features/fixtures/sidekiq/app/initializers/UnhandledError.rb +0 -3
- data/features/fixtures/sidekiq/payloads/handled_metadata_ca_false.json +0 -11
- data/features/fixtures/sidekiq/payloads/handled_metadata_ca_true.json +0 -12
- data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_false.json +0 -11
- data/features/fixtures/sidekiq/payloads/unhandled_metadata_ca_true.json +0 -12
- data/features/fixtures/sinatra1/.dockerignore +0 -1
- data/features/fixtures/sinatra1/Dockerfile +0 -13
- data/features/fixtures/sinatra1/Gemfile +0 -4
- data/features/fixtures/sinatra1/app.rb +0 -9
- data/features/fixtures/sinatra2/.dockerignore +0 -1
- data/features/fixtures/sinatra2/Dockerfile +0 -13
- data/features/fixtures/sinatra2/Gemfile +0 -4
- data/features/fixtures/sinatra2/app.rb +0 -9
- data/features/plain_features/add_tab.feature +0 -55
- data/features/plain_features/app_type.feature +0 -8
- data/features/plain_features/app_version.feature +0 -8
- data/features/plain_features/auto_notify.feature +0 -7
- data/features/plain_features/delivery.feature +0 -20
- data/features/plain_features/exception_data.feature +0 -50
- data/features/plain_features/filters.feature +0 -14
- data/features/plain_features/handled_errors.feature +0 -42
- data/features/plain_features/ignore_classes.feature +0 -11
- data/features/plain_features/ignore_report.feature +0 -14
- data/features/plain_features/proxies.feature +0 -25
- data/features/plain_features/release_stages.feature +0 -20
- data/features/plain_features/report_api_key.feature +0 -16
- data/features/plain_features/report_severity.feature +0 -17
- data/features/plain_features/report_stack_frames.feature +0 -53
- data/features/plain_features/report_user.feature +0 -51
- data/features/plain_features/unhandled_errors.feature +0 -33
- data/features/rails_features/api_key.feature +0 -15
- data/features/rails_features/app_type.feature +0 -24
- data/features/rails_features/app_version.feature +0 -26
- data/features/rails_features/auto_capture_sessions.feature +0 -34
- data/features/rails_features/auto_notify.feature +0 -41
- data/features/rails_features/before_notify.feature +0 -44
- data/features/rails_features/breadcrumbs.feature +0 -43
- data/features/rails_features/handled.feature +0 -42
- data/features/rails_features/ignore_classes.feature +0 -14
- data/features/rails_features/meta_data_filters.feature +0 -16
- data/features/rails_features/mongo_breadcrumbs.feature +0 -26
- data/features/rails_features/on_error.feature +0 -29
- data/features/rails_features/project_root.feature +0 -35
- data/features/rails_features/release_stage.feature +0 -27
- data/features/rails_features/send_code.feature +0 -18
- data/features/rails_features/send_environment.feature +0 -13
- data/features/rails_features/unhandled.feature +0 -16
- data/features/rails_features/user_info.feature +0 -52
- data/features/sidekiq.feature +0 -30
- data/features/steps/ruby_notifier_steps.rb +0 -75
- data/features/support/env.rb +0 -23
- data/issue_template.md +0 -48
- data/spec/breadcrumbs/breadcrumb_spec.rb +0 -93
- data/spec/breadcrumbs/validator_spec.rb +0 -176
- data/spec/bugsnag_spec.rb +0 -366
- data/spec/cleaner_spec.rb +0 -350
- data/spec/code_extractor_spec.rb +0 -129
- data/spec/configuration_spec.rb +0 -445
- data/spec/fixtures/apps/rails-initializer-config/Gemfile +0 -9
- data/spec/fixtures/apps/rails-initializer-config/config.ru +0 -16
- data/spec/fixtures/apps/rails-initializer-config/config/initializers/bugsnag.rb +0 -3
- data/spec/fixtures/apps/rails-invalid-initializer-config/Gemfile +0 -9
- data/spec/fixtures/apps/rails-invalid-initializer-config/config.ru +0 -16
- data/spec/fixtures/apps/rails-invalid-initializer-config/config/initializers/bugsnag.rb +0 -3
- data/spec/fixtures/apps/rails-no-config/Gemfile +0 -9
- data/spec/fixtures/apps/rails-no-config/config.ru +0 -16
- data/spec/fixtures/apps/scripts/Gemfile +0 -3
- data/spec/fixtures/apps/scripts/configure_invalid_key.rb +0 -5
- data/spec/fixtures/apps/scripts/configure_key.rb +0 -5
- data/spec/fixtures/apps/scripts/no_config.rb +0 -3
- data/spec/fixtures/crashes/end_of_file.rb +0 -9
- data/spec/fixtures/crashes/file1.rb +0 -29
- data/spec/fixtures/crashes/file2.rb +0 -25
- data/spec/fixtures/crashes/file_with_long_lines.rb +0 -7
- data/spec/fixtures/crashes/functions.rb +0 -29
- data/spec/fixtures/crashes/short_file.rb +0 -3
- data/spec/fixtures/crashes/start_of_file.rb +0 -9
- data/spec/fixtures/middleware/internal_info_setter.rb +0 -11
- data/spec/fixtures/middleware/public_info_setter.rb +0 -11
- data/spec/fixtures/tasks/Rakefile +0 -26
- data/spec/helper_spec.rb +0 -131
- data/spec/integration_spec.rb +0 -107
- data/spec/integrations/clearance_user_spec.rb +0 -38
- data/spec/integrations/logger_spec.rb +0 -134
- data/spec/integrations/mailman_spec.rb +0 -83
- data/spec/integrations/mongo_spec.rb +0 -262
- data/spec/integrations/que_spec.rb +0 -94
- data/spec/integrations/rack_spec.rb +0 -232
- data/spec/integrations/rails3_request_spec.rb +0 -67
- data/spec/integrations/rake_spec.rb +0 -71
- data/spec/integrations/resque_spec.rb +0 -99
- data/spec/integrations/shoryuken_spec.rb +0 -70
- data/spec/integrations/sidekiq_spec.rb +0 -137
- data/spec/integrations/warden_user_spec.rb +0 -41
- data/spec/middleware/exception_meta_data_spec.rb +0 -104
- data/spec/middleware_spec.rb +0 -254
- data/spec/middleware_stack_spec.rb +0 -151
- data/spec/on_error_spec.rb +0 -332
- data/spec/report_spec.rb +0 -1583
- data/spec/session_tracker_spec.rb +0 -156
- data/spec/spec_helper.rb +0 -99
- data/spec/stacktrace_spec.rb +0 -443
- data/spec/utility/circular_buffer_spec.rb +0 -98
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cfe6701fa69f8d7c3c78476d17d127f921a6f730cdd3b618f92e6f7c2483da74
|
|
4
|
+
data.tar.gz: '0857ab0742b7a33acfa39a60f4ecf9114f20b30293c78ef7bb1d1ba52ddef664'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3a917b2fc75798b3bd5e95416ab8c26f013133c84739f9d58df7bbd687de5b736184d11eae1e604944ba85267f214999f4a552e7beef1b271401e8598841a966
|
|
7
|
+
data.tar.gz: abb394a0305a254ce1fda64eba446e49949142f42480e6adf176bf1e62e5cfe6a0280421afbfbefda48bfa3dab31f815891705de4eb1d0d59df2b520575aea93
|
data/.yardopts
ADDED
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.
|
|
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("\
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
307
|
-
options = {:headers => report.headers}
|
|
327
|
+
options = { headers: report.headers }
|
|
308
328
|
|
|
309
|
-
Bugsnag::Delivery[configuration.delivery_method]
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
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
|
|
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
|
|
@@ -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
|
-
|
|
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]
|
|
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]
|
|
119
|
+
# The URL session notifications will be delivered to
|
|
120
|
+
# @return [String]
|
|
53
121
|
attr_reader :session_endpoint
|
|
54
122
|
|
|
55
|
-
|
|
56
|
-
# @return [Boolean]
|
|
123
|
+
# Whether sessions will be delivered
|
|
124
|
+
# @return [Boolean]
|
|
57
125
|
attr_reader :enable_sessions
|
|
58
126
|
|
|
59
|
-
|
|
60
|
-
# @
|
|
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>]
|
|
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]
|
|
136
|
+
# The maximum allowable amount of breadcrumbs per thread
|
|
137
|
+
# @return [Integer]
|
|
69
138
|
attr_reader :max_breadcrumbs
|
|
70
139
|
|
|
71
|
-
|
|
72
|
-
# @return [Regexp]
|
|
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.
|
|
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
|