honeybadger 4.12.2 → 5.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 27ff7c374bbf6bcfb0086d8494399ecaf46b20cca0f37cb032abc883e3115c85
4
- data.tar.gz: 658f3b9ef36a76771265af32bddbf3c6e720385c8051cece4b15f339abdad364
3
+ metadata.gz: d8c1f4882921eae85434c329f8d6a8fa8aaac7c0ad31bd7cef40e3e9930b5502
4
+ data.tar.gz: a7d0336a1bd9aa7bae7e5523c801a226e37faa9f55824b41b0c12b8310b7e527
5
5
  SHA512:
6
- metadata.gz: 0641dd6546f0ac77ed8175331791708f0de21a540ab6e0d7aacb56e39ed60c5e65252f6f8d7c3959df859f2dedf210df2055d38337e546e92d74ff46f0aadefa
7
- data.tar.gz: a1ee0bd23a820ef6bcb90e05901d984418347987e2d23202ea02e43799e2f4c6ef9a7f5f84bba8a888ff7747baef76280b7a79e8993ceadafaa05d0bd465e4ac
6
+ metadata.gz: ebb6062a2fa493e86b80ad4019bb4d04f52f1b241ff2eb7219a54385e49b45bf7a86f4c6f373c3c147a65d0eda9308931c813916961da7a122e2e2a9319d975f
7
+ data.tar.gz: 8f9a0f61ab7d97b6abb9660059b91689a47ebb91f770e75aa0688a10352d992e8881966034f34f6a90911d50089134a5b0a5e8dbf7ff674c93d28501aed2e367
data/CHANGELOG.md CHANGED
@@ -5,6 +5,15 @@ adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [5.0.0.beta1] - 2022-08-15
9
+ ### Changed
10
+ - Honeybadger is now initialized before Rails' initializers, allowing you to
11
+ report errors raised during startup. Config added via `Honeybadger.configure`
12
+ is added later in the Rails initialization process.
13
+
14
+ ### Added
15
+ - Support Rails 7 error reporting interface (#443)
16
+
8
17
  ## [4.12.2] - 2022-08-15
9
18
  ### Fixed
10
19
  - Fix a bug where the auto-detected revision is blank instead of nil
@@ -122,6 +122,7 @@ module Honeybadger
122
122
  opts = opts.dup
123
123
 
124
124
  if exception_or_opts.is_a?(Exception)
125
+ return nil if exception_or_opts.instance_variable_get(:@__hb_handled)
125
126
  opts[:exception] = exception_or_opts
126
127
  elsif exception_or_opts.respond_to?(:to_hash)
127
128
  opts.merge!(exception_or_opts.to_hash)
@@ -300,6 +300,11 @@ module Honeybadger
300
300
  default: true,
301
301
  type: Boolean
302
302
  },
303
+ :'rails.subscriber_ignore_sources' => {
304
+ description: "Sources (strings or regexes) that should be ignored when using the Rails' (7+) native error reporter.",
305
+ default: [],
306
+ type: Array
307
+ },
303
308
  :'resque.resque_retry.send_exceptions_when_retrying' => {
304
309
  description: 'Send exceptions when retrying job.',
305
310
  default: true,
@@ -17,7 +17,7 @@ module Honeybadger
17
17
  app.config.middleware.insert_before(Honeybadger::Rack::ErrorNotifier, Honeybadger::Rack::UserFeedback)
18
18
  end
19
19
 
20
- config.after_initialize do
20
+ config.before_initialize do
21
21
  Honeybadger.init!({
22
22
  :root => ::Rails.root.to_s,
23
23
  :env => ::Rails.env,
@@ -25,6 +25,9 @@ module Honeybadger
25
25
  :logger => Logging::FormattedLogger.new(::Rails.logger),
26
26
  :framework => :rails
27
27
  })
28
+ end
29
+
30
+ config.after_initialize do
28
31
  Honeybadger.load_plugins!
29
32
  end
30
33
  end
@@ -29,6 +29,17 @@ module Honeybadger
29
29
  end
30
30
  end
31
31
 
32
+ class ErrorSubscriber
33
+ def self.report(exception, handled:, severity:, context: {}, source: nil)
34
+ return if source && ::Honeybadger.config[:'rails.subscriber_ignore_sources'].any? { |regex| regex.match?(source) }
35
+
36
+ tags = ["severity:#{severity}", "handled:#{handled}"]
37
+ tags << "source:#{source}" if source
38
+ Honeybadger.notify(exception, context: context, tags: tags)
39
+ exception.instance_variable_set(:@__hb_handled, true)
40
+ end
41
+ end
42
+
32
43
  Plugin.register :rails_exceptions_catcher do
33
44
  requirement { defined?(::Rails.application) && ::Rails.application }
34
45
 
@@ -41,6 +52,11 @@ module Honeybadger
41
52
  # Rails 3.0.x and 3.1.x
42
53
  ::ActionDispatch::ShowExceptions.prepend(ExceptionsCatcher)
43
54
  end
55
+
56
+ if defined?(::ActiveSupport::ErrorReporter)
57
+ # Rails 7
58
+ ::Rails.error.subscribe(ErrorSubscriber)
59
+ end
44
60
  end
45
61
  end
46
62
  end
@@ -1,4 +1,4 @@
1
1
  module Honeybadger
2
2
  # The current String Honeybadger version.
3
- VERSION = '4.12.2'.freeze
3
+ VERSION = '5.0.0.beta1'.freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybadger
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.12.2
4
+ version: 5.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Honeybadger Industries LLC
@@ -149,9 +149,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
149
  version: 2.3.0
150
150
  required_rubygems_version: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - ">="
152
+ - - ">"
153
153
  - !ruby/object:Gem::Version
154
- version: '0'
154
+ version: 1.3.1
155
155
  requirements: []
156
156
  rubygems_version: 3.2.3
157
157
  signing_key: