honeybadger 4.11.0 → 4.12.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1542f59cbe55ad29fba4ea1ccc9acf4cc6fb36fa14bf6485f127846442682bdc
4
- data.tar.gz: 84f3fe4e7ed2b07548107f247585a3ecc38f411f8f8ac8ec23bd271fa80c942e
3
+ metadata.gz: d985044e0beefd1486ddc3052c4d5f727bd24b8c05ba710b1cd0e8043531754b
4
+ data.tar.gz: f1dbce0ac245935193d5594a8fa3a2aecbd3c1edf4c8a68793d9b687e1b69b2d
5
5
  SHA512:
6
- metadata.gz: 074db0c6d16b50320a7ee86c4c63b229ecc97ce4841c6e5ba7791b637481150a236a6900fa55ff97075843b87b773c92f8469aaad46559e73624f46c0b5caf70
7
- data.tar.gz: 9a7968da09fa17c8e6c60768baeaea4173387b494913e5d90cca8984d39b0565886f387e9f113e7d321a8bc33f09a82419d6170fdf6dfa2f2fc74bfd3e79d35d
6
+ metadata.gz: db5ca1dca68890022b29ee5b9afc206bcf8bfe4bb8bbb774207e61497372d8b2a1a6e43d8b5d2d356e8c3a8207da872d8d5a01574ecf968139072586f47734d1
7
+ data.tar.gz: e15cc2b6bfd1873027354d9ee1f92ad7e7cfbe870b504b881689040d414ba24048f4c8346cf8f219aed5e9479c6ced1cc12f6b069ea80ca7da27f9e3b57d09c9
data/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [4.12.1] - 2022-04-01
9
+ ### Fixed
10
+ - Fix Lambda plugin: support Ruby <2.5 (#428)
11
+
12
+ ## [4.12.0] - 2022-03-30
13
+ ### Added
14
+ - Added `hb_wrap_handler` to automatically capture AWS Lambda handler errors
15
+
16
+ ### Fixed
17
+ - Change `:exception_message` key name to just `:exception` for error breadcrumb metadata.
18
+
8
19
  ## [4.11.0] - 2022-02-15
9
20
  ### Fixed
10
21
  - Allow special characters in tags. Also support space-delimited tags:
@@ -256,7 +256,7 @@ love: making developers awesome.
256
256
  Happy 'badgering!
257
257
 
258
258
  Sincerely,
259
- Ben, Josh and Starr
259
+ The Honeybadger Crew
260
260
  https://www.honeybadger.io/about/
261
261
 
262
262
  ⚡ --- End --------------------------------------------------------------------
@@ -2,7 +2,7 @@ require 'forwardable'
2
2
 
3
3
  module Honeybadger
4
4
  # +Honeybadger::Plugin+ defines the API for registering plugins with
5
- # Honeybadger. Each plugin has requirements which must be satisified before
5
+ # Honeybadger. Each plugin has requirements which must be satisfied before
6
6
  # executing the plugin's execution block(s). This allows us to detect
7
7
  # optional dependencies and load the plugin for each dependency only if it's
8
8
  # present in the application.
@@ -62,7 +62,7 @@ module Honeybadger
62
62
  # execution { }
63
63
  # end
64
64
  #
65
- # @param [String] name The optional name of the plugin. Should use
65
+ # @param [String, Symbol] name The optional name of the plugin. Should use
66
66
  # +snake_case+. The name is inferred from the current file name if omitted.
67
67
  #
68
68
  # @return nil
@@ -3,12 +3,56 @@ require 'honeybadger/util/lambda'
3
3
 
4
4
  module Honeybadger
5
5
  module Plugins
6
+ module LambdaExtension
7
+ # Wrap Lambda handlers so exceptions can be automatically captured
8
+ #
9
+ # Usage:
10
+ #
11
+ # # Automatically included in the top-level main object
12
+ # hb_wrap_handler :my_handler_1, :my_handler_2
13
+ #
14
+ # def my_handler_1(event:, context:)
15
+ # end
16
+ #
17
+ # class MyLambdaApp
18
+ # extend ::Honeybadger::Plugins::LambdaExtension
19
+ #
20
+ # hb_wrap_handler :my_handler_1, :my_handler_2
21
+ #
22
+ # def self.my_handler_1(event:, context:)
23
+ # end
24
+ # end
25
+ def hb_wrap_handler(*handler_names)
26
+ mod = Module.new do
27
+ handler_names.each do |handler|
28
+ define_method(handler) do |event:, context:|
29
+ begin
30
+ Honeybadger.context(aws_request_id: context.aws_request_id) if context.respond_to?(:aws_request_id)
31
+
32
+ super(event: event, context: context)
33
+ rescue => e
34
+ Honeybadger.notify(e)
35
+ raise
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ self.singleton_class.prepend(mod)
42
+ end
43
+ end
44
+
6
45
  # @api private
7
46
  Plugin.register :lambda do
8
47
  requirement { Util::Lambda.lambda_execution? }
9
48
 
10
49
  execution do
11
50
  config[:sync] = true
51
+ config[:'exceptions.notify_at_exit'] = false
52
+
53
+ main = TOPLEVEL_BINDING.eval("self")
54
+ main.extend(LambdaExtension)
55
+
12
56
  (config[:before_notify] ||= []) << lambda do |notice|
13
57
  data = Util::Lambda.normalized_data
14
58
 
@@ -74,7 +74,7 @@ module Honeybadger
74
74
  agent.add_breadcrumb(
75
75
  exception.class,
76
76
  metadata: {
77
- exception_message: exception.message
77
+ message: exception.message
78
78
  },
79
79
  category: "error"
80
80
  )
@@ -1,4 +1,4 @@
1
1
  module Honeybadger
2
2
  # The current String Honeybadger version.
3
- VERSION = '4.11.0'.freeze
3
+ VERSION = '4.12.1'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybadger
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.11.0
4
+ version: 4.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Honeybadger Industries LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-15 00:00:00.000000000 Z
11
+ date: 2022-04-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Make managing application errors a more pleasant experience.
14
14
  email: