honeybadger 4.11.0 → 4.12.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/CHANGELOG.md +7 -0
- data/lib/honeybadger/plugin.rb +2 -2
- data/lib/honeybadger/plugins/lambda.rb +42 -0
- data/lib/honeybadger/rack/error_notifier.rb +1 -1
- data/lib/honeybadger/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc234e187c3022616088debc469df8f765cde38e4f3f8bf008eab97ce1d0133e
|
4
|
+
data.tar.gz: 45d332816e07aa7d25e78cc075c2b2017eb51a97583ed0ba4709087adab023b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f344e35e9a2928a3660aa0d6a55d695d58854f81b13d0ab13be4771c6a54a38893d2d0b2cee10f44e88f19140122803aa6f423072f1c39db0124686b252884e
|
7
|
+
data.tar.gz: bb7844be57da52cabf400a22fe09d5a45c9b3187e1eee224672f0ad000ea262002e16d36c754a2f5a7eedbce9b1e46bae9d765b351bf7b59c8df87a1fab46a3d
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,13 @@ adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [4.12.0] - 2022-03-30
|
9
|
+
### Added
|
10
|
+
- Added `hb_wrap_handler` to automatically capture AWS Lambda handler errors
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
- Change `:exception_message` key name to just `:exception` for error breadcrumb metadata.
|
14
|
+
|
8
15
|
## [4.11.0] - 2022-02-15
|
9
16
|
### Fixed
|
10
17
|
- Allow special characters in tags. Also support space-delimited tags:
|
data/lib/honeybadger/plugin.rb
CHANGED
@@ -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
|
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,54 @@ 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
|
+
Honeybadger.context(aws_request_id: context.aws_request_id) if context.respond_to?(:aws_request_id)
|
30
|
+
|
31
|
+
super(event: event, context: context)
|
32
|
+
rescue => e
|
33
|
+
Honeybadger.notify(e)
|
34
|
+
raise
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
self.singleton_class.prepend(mod)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
6
43
|
# @api private
|
7
44
|
Plugin.register :lambda do
|
8
45
|
requirement { Util::Lambda.lambda_execution? }
|
9
46
|
|
10
47
|
execution do
|
11
48
|
config[:sync] = true
|
49
|
+
config[:'exceptions.notify_at_exit'] = false
|
50
|
+
|
51
|
+
main = TOPLEVEL_BINDING.eval("self")
|
52
|
+
main.extend(LambdaExtension)
|
53
|
+
|
12
54
|
(config[:before_notify] ||= []) << lambda do |notice|
|
13
55
|
data = Util::Lambda.normalized_data
|
14
56
|
|
data/lib/honeybadger/version.rb
CHANGED
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.
|
4
|
+
version: 4.12.0
|
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-
|
11
|
+
date: 2022-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Make managing application errors a more pleasant experience.
|
14
14
|
email:
|