bugsnag 6.13.1 → 6.18.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 +88 -0
- data/VERSION +1 -1
- data/bugsnag.gemspec +1 -1
- data/lib/bugsnag.rb +181 -29
- data/lib/bugsnag/breadcrumbs/breadcrumb.rb +1 -1
- data/lib/bugsnag/breadcrumbs/breadcrumbs.rb +0 -2
- data/lib/bugsnag/breadcrumbs/validator.rb +0 -6
- data/lib/bugsnag/cleaner.rb +109 -56
- data/lib/bugsnag/code_extractor.rb +137 -0
- data/lib/bugsnag/configuration.rb +226 -23
- data/lib/bugsnag/delivery/synchronous.rb +1 -1
- data/lib/bugsnag/delivery/thread_queue.rb +18 -3
- data/lib/bugsnag/helpers.rb +4 -6
- data/lib/bugsnag/integrations/delayed_job.rb +13 -1
- data/lib/bugsnag/integrations/mailman.rb +2 -1
- data/lib/bugsnag/integrations/que.rb +2 -1
- data/lib/bugsnag/integrations/rack.rb +3 -1
- data/lib/bugsnag/integrations/railtie.rb +17 -5
- 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/delayed_job.rb +1 -0
- data/lib/bugsnag/middleware/discard_error_class.rb +30 -0
- data/lib/bugsnag/middleware/ignore_error_class.rb +2 -0
- data/lib/bugsnag/middleware/rack_request.rb +2 -4
- data/lib/bugsnag/middleware_stack.rb +38 -3
- data/lib/bugsnag/on_error_callbacks.rb +33 -0
- data/lib/bugsnag/report.rb +88 -16
- data/lib/bugsnag/session_tracker.rb +3 -3
- data/lib/bugsnag/stacktrace.rb +28 -72
- metadata +6 -619
- 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 -2
- data/.rubocop_todo.yml +0 -679
- data/CONTRIBUTING.md +0 -64
- data/Gemfile +0 -48
- 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 -299
- 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/unhandled_before_notify.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/unhandled_before_notify.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 -20
- 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 -20
- 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 -20
- 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 -20
- 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 -49
- 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 -12
- 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 -14
- data/features/plain_features/report_severity.feature +0 -15
- data/features/plain_features/report_stack_frames.feature +0 -49
- data/features/plain_features/report_user.feature +0 -45
- 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 -14
- data/features/rails_features/mongo_breadcrumbs.feature +0 -26
- 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 -201
- data/spec/bugsnag_spec.rb +0 -366
- data/spec/cleaner_spec.rb +0 -244
- data/spec/configuration_spec.rb +0 -441
- 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/short_file.rb +0 -1
- 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 -217
- 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 -230
- 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/report_spec.rb +0 -1282
- data/spec/session_tracker_spec.rb +0 -156
- data/spec/spec_helper.rb +0 -86
- data/spec/stacktrace_spec.rb +0 -129
- 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: 29a2a991d8e578989dee9cd0d83e348641c8985c2ac59de3840abe7dbe2691da
|
|
4
|
+
data.tar.gz: a75ca7b1949633520ced32c604299f9f625f980d7d2efaabf253529d1e2acae6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a0dacb630c81e3a867df883040c3f6d16174706be29d56974b759850a9c19e6518e2fdb793365007b9d0caaecf2d8c18cc937e8df82d86fa8796fe5a08940bd2
|
|
7
|
+
data.tar.gz: 53d5f08ac9f375bfea5c629f0a1cf0b83684e4ae865058fdf2dd7939d9d36a888b1b87cb33af9fe04ce32e0daaca140a354c9eb4a5b3fa725a626348a47ef117
|
data/.yardopts
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,94 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
+
## 6.18.0 (27 October 2020)
|
|
5
|
+
|
|
6
|
+
### Enhancements
|
|
7
|
+
|
|
8
|
+
* Bugsnag should now report uncaught exceptions inside Bundler's 'friendly errors'
|
|
9
|
+
| [#634](https://github.com/bugsnag/bugsnag-ruby/pull/634)
|
|
10
|
+
|
|
11
|
+
* Improve the display of breadrumbs in the Bugsnag app by including milliseconds in timestamps
|
|
12
|
+
| [#639](https://github.com/bugsnag/bugsnag-ruby/pull/639)
|
|
13
|
+
|
|
14
|
+
## 6.17.0 (27 August 2020)
|
|
15
|
+
|
|
16
|
+
### Enhancements
|
|
17
|
+
|
|
18
|
+
* Sidekiq now uses `thread_queue` delivery by default
|
|
19
|
+
| [#626](https://github.com/bugsnag/bugsnag-ruby/pull/626)
|
|
20
|
+
|
|
21
|
+
* Rescue now uses `thread_queue` delivery when `at_exit` hooks are enabled
|
|
22
|
+
| [#629](https://github.com/bugsnag/bugsnag-ruby/pull/629)
|
|
23
|
+
|
|
24
|
+
## 6.16.0 (12 August 2020)
|
|
25
|
+
|
|
26
|
+
### Enhancements
|
|
27
|
+
|
|
28
|
+
* Set default Delayed Job error context to job class
|
|
29
|
+
| [#499](https://github.com/bugsnag/bugsnag-ruby/pull/499)
|
|
30
|
+
| [Mike Stewart](https://github.com/mike-stewart)
|
|
31
|
+
|
|
32
|
+
* The `BUGSNAG_RELEASE_STAGE` environment variable can now be used to set the release stage. Previously this was only used in Rails applications
|
|
33
|
+
| [#613](https://github.com/bugsnag/bugsnag-ruby/pull/613)
|
|
34
|
+
|
|
35
|
+
* Add support for runtime versions to Delayed Job, Mailman and Shoryuken integrations
|
|
36
|
+
| [#620](https://github.com/bugsnag/bugsnag-ruby/pull/620)
|
|
37
|
+
|
|
38
|
+
* Reduce the size of the bundled gem
|
|
39
|
+
| [#571](https://github.com/bugsnag/bugsnag-ruby/pull/571)
|
|
40
|
+
| [t-richards](https://github.com/t-richards)
|
|
41
|
+
|
|
42
|
+
* Move serialization of Reports onto the background thread when using the thread_queue delivery method
|
|
43
|
+
| [#623](https://github.com/bugsnag/bugsnag-ruby/pull/623)
|
|
44
|
+
|
|
45
|
+
## Fixes
|
|
46
|
+
|
|
47
|
+
* The `app_type` configuration option should no longer be overwritten by Bugsnag and integrations should set this more consistently
|
|
48
|
+
| [#619](https://github.com/bugsnag/bugsnag-ruby/pull/619)
|
|
49
|
+
|
|
50
|
+
## 6.15.0 (27 July 2020)
|
|
51
|
+
|
|
52
|
+
### Enhancements
|
|
53
|
+
|
|
54
|
+
* Add `on_error` callbacks to replace `before_notify_callbacks`
|
|
55
|
+
| [#608](https://github.com/bugsnag/bugsnag-ruby/pull/608)
|
|
56
|
+
|
|
57
|
+
* Improve performance when extracting code from files in stacktraces
|
|
58
|
+
| [#604](https://github.com/bugsnag/bugsnag-ruby/pull/604)
|
|
59
|
+
|
|
60
|
+
* Reduce memory use when session tracking is disabled
|
|
61
|
+
| [#606](https://github.com/bugsnag/bugsnag-ruby/pull/606)
|
|
62
|
+
|
|
63
|
+
### Deprecated
|
|
64
|
+
|
|
65
|
+
* `before_notify_callbacks` have been deprecated in favour of `on_error` and will be removed in the next major release
|
|
66
|
+
|
|
67
|
+
## 6.14.0 (20 July 2020)
|
|
68
|
+
|
|
69
|
+
### Enhancements
|
|
70
|
+
|
|
71
|
+
* Add configurable `discard_classes` option to allow filtering errors using either a `String` or `Regexp` matched against the error's class name
|
|
72
|
+
| [#597](https://github.com/bugsnag/bugsnag-ruby/pull/597)
|
|
73
|
+
|
|
74
|
+
* The Breadcrumb name limit of 30 characters has been removed
|
|
75
|
+
| [#600](https://github.com/bugsnag/bugsnag-ruby/pull/600)
|
|
76
|
+
|
|
77
|
+
* Improve performance of payload cleaning
|
|
78
|
+
| [#601](https://github.com/bugsnag/bugsnag-ruby/pull/601)
|
|
79
|
+
|
|
80
|
+
* Improve performance when processing stacktraces
|
|
81
|
+
| [#602](https://github.com/bugsnag/bugsnag-ruby/pull/602)
|
|
82
|
+
| [#603](https://github.com/bugsnag/bugsnag-ruby/pull/603)
|
|
83
|
+
|
|
84
|
+
* If a custom object responds to `id` method, show the id and class in error reports
|
|
85
|
+
| [#531](https://github.com/bugsnag/bugsnag-ruby/pull/531)
|
|
86
|
+
| [manojmj92](https://github.com/manojmj92)
|
|
87
|
+
|
|
88
|
+
### Deprecated
|
|
89
|
+
|
|
90
|
+
* The `ignore_classes` configuration option has been deprecated in favour of `discard_classes`. `ignore_classes` will be removed in the next major release
|
|
91
|
+
|
|
4
92
|
## 6.13.1 (11 May 2020)
|
|
5
93
|
|
|
6
94
|
### Fixes
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
6.
|
|
1
|
+
6.18.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
|
|
|
@@ -33,6 +32,7 @@ require "bugsnag/breadcrumbs/validator"
|
|
|
33
32
|
require "bugsnag/breadcrumbs/breadcrumb"
|
|
34
33
|
require "bugsnag/breadcrumbs/breadcrumbs"
|
|
35
34
|
|
|
35
|
+
# rubocop:todo Metrics/ModuleLength
|
|
36
36
|
module Bugsnag
|
|
37
37
|
LOCK = Mutex.new
|
|
38
38
|
INTEGRATIONS = [:resque, :sidekiq, :mailman, :delayed_job, :shoryuken, :que, :mongo]
|
|
@@ -43,10 +43,19 @@ module Bugsnag
|
|
|
43
43
|
##
|
|
44
44
|
# Configure the Bugsnag notifier application-wide settings.
|
|
45
45
|
#
|
|
46
|
-
# Yields a
|
|
46
|
+
# Yields a {Configuration} object to use to set application settings.
|
|
47
|
+
#
|
|
48
|
+
# @yieldparam configuration [Configuration]
|
|
49
|
+
# @return [void]
|
|
47
50
|
def configure(validate_api_key=true)
|
|
48
51
|
yield(configuration) if block_given?
|
|
49
52
|
|
|
53
|
+
# Create the session tracker if sessions are enabled to avoid the overhead
|
|
54
|
+
# of creating it on the first request. We skip this if we're not validating
|
|
55
|
+
# the API key as we use this internally before the user's configure block
|
|
56
|
+
# has run, so we don't know if sessions are enabled yet.
|
|
57
|
+
session_tracker if validate_api_key && configuration.auto_capture_sessions
|
|
58
|
+
|
|
50
59
|
check_key_valid if validate_api_key
|
|
51
60
|
check_endpoint_setup
|
|
52
61
|
|
|
@@ -63,7 +72,7 @@ module Bugsnag
|
|
|
63
72
|
auto_notify = false
|
|
64
73
|
end
|
|
65
74
|
|
|
66
|
-
return unless
|
|
75
|
+
return unless should_deliver_notification?(exception, auto_notify)
|
|
67
76
|
|
|
68
77
|
exception = NIL_EXCEPTION_DESCRIPTION if exception.nil?
|
|
69
78
|
|
|
@@ -71,6 +80,7 @@ module Bugsnag
|
|
|
71
80
|
|
|
72
81
|
# If this is an auto_notify we yield the block before the any middleware is run
|
|
73
82
|
yield(report) if block_given? && auto_notify
|
|
83
|
+
|
|
74
84
|
if report.ignore?
|
|
75
85
|
configuration.debug("Not notifying #{report.exceptions.last[:errorClass]} due to ignore being signified in auto_notify block")
|
|
76
86
|
return
|
|
@@ -97,6 +107,7 @@ module Bugsnag
|
|
|
97
107
|
# If this is not an auto_notify then the block was provided by the user. This should be the last
|
|
98
108
|
# block that is run as it is the users "most specific" block.
|
|
99
109
|
yield(report) if block_given? && !auto_notify
|
|
110
|
+
|
|
100
111
|
if report.ignore?
|
|
101
112
|
configuration.debug("Not notifying #{report.exceptions.last[:errorClass]} due to ignore being signified in user provided block")
|
|
102
113
|
return
|
|
@@ -111,24 +122,22 @@ module Bugsnag
|
|
|
111
122
|
report.severity_reason = initial_reason
|
|
112
123
|
end
|
|
113
124
|
|
|
114
|
-
|
|
115
|
-
configuration.info("Notifying #{configuration.notify_endpoint} of #{report.exceptions.last[:errorClass]}")
|
|
116
|
-
options = {:headers => report.headers}
|
|
117
|
-
payload = ::JSON.dump(Bugsnag::Helpers.trim_if_needed(report.as_json))
|
|
118
|
-
Bugsnag::Delivery[configuration.delivery_method].deliver(configuration.notify_endpoint, payload, configuration, options)
|
|
119
|
-
report_summary = report.summary
|
|
120
|
-
leave_breadcrumb(report_summary[:error_class], report_summary, Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPE, :auto)
|
|
125
|
+
deliver_notification(report)
|
|
121
126
|
end
|
|
122
127
|
end
|
|
123
128
|
|
|
124
129
|
##
|
|
125
|
-
# 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]
|
|
126
133
|
def register_at_exit
|
|
127
134
|
return if at_exit_handler_installed?
|
|
128
135
|
@exit_handler_added = true
|
|
129
136
|
at_exit do
|
|
130
137
|
if $!
|
|
131
|
-
|
|
138
|
+
exception = unwrap_bundler_exception($!)
|
|
139
|
+
|
|
140
|
+
Bugsnag.notify(exception, true) do |report|
|
|
132
141
|
report.severity = 'error'
|
|
133
142
|
report.severity_reason = {
|
|
134
143
|
:type => Bugsnag::Report::UNHANDLED_EXCEPTION
|
|
@@ -139,14 +148,20 @@ module Bugsnag
|
|
|
139
148
|
end
|
|
140
149
|
|
|
141
150
|
##
|
|
142
|
-
# 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]
|
|
143
157
|
def at_exit_handler_installed?
|
|
144
158
|
@exit_handler_added ||= false
|
|
145
159
|
end
|
|
146
160
|
|
|
147
|
-
# Configuration getters
|
|
148
161
|
##
|
|
149
162
|
# Returns the client's Configuration object, or creates one if not yet created.
|
|
163
|
+
#
|
|
164
|
+
# @return [Configuration]
|
|
150
165
|
def configuration
|
|
151
166
|
@configuration = nil unless defined?(@configuration)
|
|
152
167
|
@configuration || LOCK.synchronize { @configuration ||= Bugsnag::Configuration.new }
|
|
@@ -154,6 +169,8 @@ module Bugsnag
|
|
|
154
169
|
|
|
155
170
|
##
|
|
156
171
|
# Returns the client's SessionTracker object, or creates one if not yet created.
|
|
172
|
+
#
|
|
173
|
+
# @return [SessionTracker]
|
|
157
174
|
def session_tracker
|
|
158
175
|
@session_tracker = nil unless defined?(@session_tracker)
|
|
159
176
|
@session_tracker || LOCK.synchronize { @session_tracker ||= Bugsnag::SessionTracker.new}
|
|
@@ -171,11 +188,16 @@ module Bugsnag
|
|
|
171
188
|
# Allow access to "before notify" callbacks as an array.
|
|
172
189
|
#
|
|
173
190
|
# These callbacks will be called whenever an error notification is being made.
|
|
191
|
+
#
|
|
192
|
+
# @deprecated Use {Bugsnag#add_on_error} instead
|
|
174
193
|
def before_notify_callbacks
|
|
175
194
|
Bugsnag.configuration.request_data[:before_callbacks] ||= []
|
|
176
195
|
end
|
|
177
196
|
|
|
178
|
-
|
|
197
|
+
##
|
|
198
|
+
# Attempts to load all integrations through auto-discovery.
|
|
199
|
+
#
|
|
200
|
+
# @return [void]
|
|
179
201
|
def load_integrations
|
|
180
202
|
require "bugsnag/integrations/railtie" if defined?(Rails::Railtie)
|
|
181
203
|
INTEGRATIONS.each do |integration|
|
|
@@ -186,7 +208,11 @@ module Bugsnag
|
|
|
186
208
|
end
|
|
187
209
|
end
|
|
188
210
|
|
|
189
|
-
|
|
211
|
+
##
|
|
212
|
+
# Load a specific integration.
|
|
213
|
+
#
|
|
214
|
+
# @param integration [Symbol] One of the integrations in {INTEGRATIONS}
|
|
215
|
+
# @return [void]
|
|
190
216
|
def load_integration(integration)
|
|
191
217
|
integration = :railtie if integration == :rails
|
|
192
218
|
if INTEGRATIONS.include?(integration) || integration == :railtie
|
|
@@ -203,6 +229,7 @@ module Bugsnag
|
|
|
203
229
|
# @param meta_data [Hash] String, Numeric, or Boolean meta data to attach
|
|
204
230
|
# @param type [String] the breadcrumb type, from Bugsnag::Breadcrumbs::VALID_BREADCRUMB_TYPES
|
|
205
231
|
# @param auto [Symbol] set to :auto if the breadcrumb is automatically created
|
|
232
|
+
# @return [void]
|
|
206
233
|
def leave_breadcrumb(name, meta_data={}, type=Bugsnag::Breadcrumbs::MANUAL_BREADCRUMB_TYPE, auto=:manual)
|
|
207
234
|
breadcrumb = Bugsnag::Breadcrumbs::Breadcrumb.new(name, type, meta_data, auto)
|
|
208
235
|
validator = Bugsnag::Breadcrumbs::Validator.new(configuration)
|
|
@@ -211,27 +238,67 @@ module Bugsnag
|
|
|
211
238
|
validator.validate(breadcrumb)
|
|
212
239
|
|
|
213
240
|
# Skip if it's already invalid
|
|
214
|
-
|
|
215
|
-
# Run callbacks
|
|
216
|
-
configuration.before_breadcrumb_callbacks.each do |c|
|
|
217
|
-
c.arity > 0 ? c.call(breadcrumb) : c.call
|
|
218
|
-
break if breadcrumb.ignore?
|
|
219
|
-
end
|
|
241
|
+
return if breadcrumb.ignore?
|
|
220
242
|
|
|
221
|
-
|
|
222
|
-
|
|
243
|
+
# Run callbacks
|
|
244
|
+
configuration.before_breadcrumb_callbacks.each do |c|
|
|
245
|
+
c.arity > 0 ? c.call(breadcrumb) : c.call
|
|
246
|
+
break if breadcrumb.ignore?
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
# Return early if ignored
|
|
250
|
+
return if breadcrumb.ignore?
|
|
251
|
+
|
|
252
|
+
# Validate again in case of callback alteration
|
|
253
|
+
validator.validate(breadcrumb)
|
|
254
|
+
|
|
255
|
+
# Add to breadcrumbs buffer if still valid
|
|
256
|
+
configuration.breadcrumbs << breadcrumb unless breadcrumb.ignore?
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
##
|
|
260
|
+
# Add the given callback to the list of on_error callbacks
|
|
261
|
+
#
|
|
262
|
+
# The on_error callbacks will be called when an error is captured or reported
|
|
263
|
+
# and are passed a {Bugsnag::Report} object
|
|
264
|
+
#
|
|
265
|
+
# Returning false from an on_error callback will cause the error to be ignored
|
|
266
|
+
# and will prevent any remaining callbacks from being called
|
|
267
|
+
#
|
|
268
|
+
# @param callback [Proc]
|
|
269
|
+
# @return [void]
|
|
270
|
+
def add_on_error(callback)
|
|
271
|
+
configuration.add_on_error(callback)
|
|
272
|
+
end
|
|
223
273
|
|
|
224
|
-
|
|
225
|
-
|
|
274
|
+
##
|
|
275
|
+
# Remove the given callback from the list of on_error callbacks
|
|
276
|
+
#
|
|
277
|
+
# Note that this must be the same Proc instance that was passed to
|
|
278
|
+
# {Bugsnag#add_on_error}, otherwise it will not be removed
|
|
279
|
+
#
|
|
280
|
+
# @param callback [Proc]
|
|
281
|
+
# @return [void]
|
|
282
|
+
def remove_on_error(callback)
|
|
283
|
+
configuration.remove_on_error(callback)
|
|
284
|
+
end
|
|
226
285
|
|
|
227
|
-
|
|
228
|
-
|
|
286
|
+
##
|
|
287
|
+
# Returns the client's Cleaner object, or creates one if not yet created.
|
|
288
|
+
#
|
|
289
|
+
# @api private
|
|
290
|
+
#
|
|
291
|
+
# @return [Cleaner]
|
|
292
|
+
def cleaner
|
|
293
|
+
@cleaner = nil unless defined?(@cleaner)
|
|
294
|
+
@cleaner || LOCK.synchronize do
|
|
295
|
+
@cleaner ||= Bugsnag::Cleaner.new(configuration)
|
|
229
296
|
end
|
|
230
297
|
end
|
|
231
298
|
|
|
232
299
|
private
|
|
233
300
|
|
|
234
|
-
def
|
|
301
|
+
def should_deliver_notification?(exception, auto_notify)
|
|
235
302
|
reason = abort_reason(exception, auto_notify)
|
|
236
303
|
configuration.debug(reason) unless reason.nil?
|
|
237
304
|
reason.nil?
|
|
@@ -249,6 +316,42 @@ module Bugsnag
|
|
|
249
316
|
end
|
|
250
317
|
end
|
|
251
318
|
|
|
319
|
+
##
|
|
320
|
+
# Deliver the notification to Bugsnag
|
|
321
|
+
#
|
|
322
|
+
# @param report [Report]
|
|
323
|
+
# @return void
|
|
324
|
+
def deliver_notification(report)
|
|
325
|
+
configuration.info("Notifying #{configuration.notify_endpoint} of #{report.exceptions.last[:errorClass]}")
|
|
326
|
+
|
|
327
|
+
options = { headers: report.headers }
|
|
328
|
+
|
|
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
|
|
346
|
+
|
|
347
|
+
leave_breadcrumb(
|
|
348
|
+
report.summary[:error_class],
|
|
349
|
+
report.summary,
|
|
350
|
+
Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPE,
|
|
351
|
+
:auto
|
|
352
|
+
)
|
|
353
|
+
end
|
|
354
|
+
|
|
252
355
|
# Check if the API key is valid and warn (once) if it is not
|
|
253
356
|
def check_key_valid
|
|
254
357
|
@key_warning = false unless defined?(@key_warning)
|
|
@@ -273,7 +376,56 @@ module Bugsnag
|
|
|
273
376
|
raise ArgumentError, "The session endpoint cannot be modified without the notify endpoint"
|
|
274
377
|
end
|
|
275
378
|
end
|
|
379
|
+
|
|
380
|
+
##
|
|
381
|
+
# Convert the Report object to JSON
|
|
382
|
+
#
|
|
383
|
+
# We ensure the report is safe to send by removing recursion, fixing
|
|
384
|
+
# encoding errors and redacting metadata according to "meta_data_filters"
|
|
385
|
+
#
|
|
386
|
+
# @param report [Report]
|
|
387
|
+
# @return [String]
|
|
388
|
+
def report_to_json(report)
|
|
389
|
+
cleaned = cleaner.clean_object(report.as_json)
|
|
390
|
+
trimmed = Bugsnag::Helpers.trim_if_needed(cleaned)
|
|
391
|
+
|
|
392
|
+
::JSON.dump(trimmed)
|
|
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
|
|
276
427
|
end
|
|
277
428
|
end
|
|
429
|
+
# rubocop:enable Metrics/ModuleLength
|
|
278
430
|
|
|
279
431
|
Bugsnag.load_integrations unless ENV["BUGSNAG_DISABLE_AUTOCONFIGURE"]
|