honeybadger 4.7.2 → 5.0.2
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 +77 -1
- data/README.md +0 -1
- data/lib/honeybadger/agent.rb +30 -0
- data/lib/honeybadger/backend/base.rb +9 -0
- data/lib/honeybadger/backend/test.rb +1 -0
- data/lib/honeybadger/cli/heroku.rb +2 -2
- data/lib/honeybadger/cli/install.rb +26 -0
- data/lib/honeybadger/cli/test.rb +1 -1
- data/lib/honeybadger/config/defaults.rb +8 -1
- data/lib/honeybadger/config/yaml.rb +5 -1
- data/lib/honeybadger/init/rails.rb +4 -1
- data/lib/honeybadger/notice.rb +2 -2
- data/lib/honeybadger/plugin.rb +2 -2
- data/lib/honeybadger/plugins/lambda.rb +45 -0
- data/lib/honeybadger/plugins/rails.rb +15 -0
- data/lib/honeybadger/plugins/sidekiq.rb +6 -4
- data/lib/honeybadger/rack/error_notifier.rb +1 -1
- data/lib/honeybadger/singleton.rb +1 -0
- data/lib/honeybadger/templates/feedback_form.erb +0 -1
- data/lib/honeybadger/util/lambda.rb +1 -1
- data/lib/honeybadger/util/request_hash.rb +1 -1
- data/lib/honeybadger/util/revision.rb +8 -3
- data/lib/honeybadger/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 807947f2bfdd4fac0c50e1665b0538eb42e5811f30903b7f9e6e19cacc5e999b
|
4
|
+
data.tar.gz: 1e3b8f5e462963083a41e336378d2e8a25a6efadf70e5216992be5e2517f814c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0dad8d9da2e9a648796ad3cedc58fadc7f5c1144e4b0985556f7dbba92348ee36b08073fb8d67a0b1ff2920c12b853b8b937b80f1f351fd172348fd3119f9dc0
|
7
|
+
data.tar.gz: f5c7cc958c542c60a85abe624e6625fe30e449e6d3bef6760f05a8218134ea92b74b6c982460739d828069aa17e21cb6303adb5e6568699543099587c406fb9c
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,82 @@ adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [5.0.2] - 2022-11-04
|
9
|
+
### Fixed
|
10
|
+
- `Honeybadger.check_in` would raise an exception when used with the test backend (#449)
|
11
|
+
|
12
|
+
## [5.0.1] - 2022-10-27
|
13
|
+
### Fixed
|
14
|
+
- Ignore `Sidekiq::JobRetry` skip exception. Since support was added for Rails 7
|
15
|
+
error reporting interface these exceptions are being reported in addition to
|
16
|
+
the exception that caused the job to be retried. Mike Perham says these
|
17
|
+
exceptions can safely be ignored.
|
18
|
+
See https://github.com/rails/rails/pull/43625#issuecomment-1071574110
|
19
|
+
|
20
|
+
## [5.0.0] - 2022-10-18
|
21
|
+
### Changed
|
22
|
+
- `Honeybadger.notify` is now idempotent; it will skip reporting exception
|
23
|
+
objects that have already been reported before, and simply return the existing
|
24
|
+
notice ID.
|
25
|
+
- Honeybadger is now initialized before Rails' initializers, allowing you to
|
26
|
+
report errors raised during startup. Config added via `Honeybadger.configure`
|
27
|
+
is added later in the Rails initialization process.
|
28
|
+
|
29
|
+
### Added
|
30
|
+
- Support Rails 7 error reporting interface (#443)
|
31
|
+
|
32
|
+
### Fixed
|
33
|
+
- Replace deployhook with release webhook (#444)
|
34
|
+
See https://blog.heroku.com/deployhooks-sunset
|
35
|
+
|
36
|
+
## [4.12.2] - 2022-08-15
|
37
|
+
### Fixed
|
38
|
+
- Fix a bug where the auto-detected revision is blank instead of nil
|
39
|
+
- Fix inadvertent creation of invalid sessions (#441)
|
40
|
+
|
41
|
+
## [4.12.1] - 2022-04-01
|
42
|
+
### Fixed
|
43
|
+
- Fix Lambda plugin: support Ruby <2.5 (#428)
|
44
|
+
|
45
|
+
## [4.12.0] - 2022-03-30
|
46
|
+
### Added
|
47
|
+
- Added `hb_wrap_handler` to automatically capture AWS Lambda handler errors
|
48
|
+
|
49
|
+
### Fixed
|
50
|
+
- Change `:exception_message` key name to just `:exception` for error breadcrumb metadata.
|
51
|
+
|
52
|
+
## [4.11.0] - 2022-02-15
|
53
|
+
### Fixed
|
54
|
+
- Allow special characters in tags. Also support space-delimited tags:
|
55
|
+
"one two three" and "one, two, three" are equivalent
|
56
|
+
|
57
|
+
## [4.10.0] - 2022-01-19
|
58
|
+
### Added
|
59
|
+
- Add more items to the default config file
|
60
|
+
|
61
|
+
### Fixed
|
62
|
+
- Fix a Ruby 3.1 bug that breaks regexp classes in honeybadger.yml (#418)
|
63
|
+
|
64
|
+
## [4.9.0] - 2021-06-28
|
65
|
+
### Fixed
|
66
|
+
- Replaced fixed number for retries in Sidekiq Plugin with Sidekiq::JobRetry constant
|
67
|
+
- Properly set environment in deployment tracking (#404, @stmllr)
|
68
|
+
|
69
|
+
### Added
|
70
|
+
- Added 'ActionDispatch::Http::MimeNegotiation::InvalidType' (Rails 6.1) to
|
71
|
+
default ignore list. (#402, @jrochkind)
|
72
|
+
|
73
|
+
## [4.8.0] - 2021-03-16
|
74
|
+
### Fixed
|
75
|
+
- Suppress any error output from the `git rev-parse` command. ([#394](https://github.com/honeybadger-io/honeybadger-ruby/pull/394))
|
76
|
+
|
77
|
+
### Added
|
78
|
+
- Support deployment tracking in code (#397, @danleyden)
|
79
|
+
|
80
|
+
## [4.7.3] - 2021-02-10
|
81
|
+
### Fixed
|
82
|
+
- Don't enable Lambda plugin in non-Lambda execution environments
|
83
|
+
|
8
84
|
## [4.7.2] - 2020-08-17
|
9
85
|
### Fixed
|
10
86
|
- Remove usage of `ActiveRecord::Base.connection` (thanks @jcoyne for testing)
|
@@ -32,7 +108,7 @@ adheres to [Semantic Versioning](http://semver.org/).
|
|
32
108
|
### Fixed
|
33
109
|
- Fixed issue where Sidekiq.attempt_threshold was triggering 2 attempts ahead
|
34
110
|
of the setting
|
35
|
-
-
|
111
|
+
- Dupe notify opts before mutating (#345)
|
36
112
|
|
37
113
|
### Changed
|
38
114
|
- Breadcrumbs on by default
|
data/README.md
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|

|
4
4
|

|
5
5
|
[](http://badge.fury.io/rb/honeybadger)
|
6
|
-
[](https://dependabot.com/compatibility-score.html?dependency-name=honeybadger&package-manager=bundler&version-scheme=semver)
|
7
6
|
|
8
7
|
This is the notifier gem for integrating apps with the :zap: [Honeybadger Exception Notifier for Ruby and Rails](http://honeybadger.io).
|
9
8
|
|
data/lib/honeybadger/agent.rb
CHANGED
@@ -122,6 +122,9 @@ module Honeybadger
|
|
122
122
|
opts = opts.dup
|
123
123
|
|
124
124
|
if exception_or_opts.is_a?(Exception)
|
125
|
+
already_reported_notice_id = exception_or_opts.instance_variable_get(:@__hb_notice_id)
|
126
|
+
return already_reported_notice_id if already_reported_notice_id
|
127
|
+
|
125
128
|
opts[:exception] = exception_or_opts
|
126
129
|
elsif exception_or_opts.respond_to?(:to_hash)
|
127
130
|
opts.merge!(exception_or_opts.to_hash)
|
@@ -171,6 +174,10 @@ module Honeybadger
|
|
171
174
|
push(notice)
|
172
175
|
end
|
173
176
|
|
177
|
+
if exception_or_opts.is_a?(Exception)
|
178
|
+
exception_or_opts.instance_variable_set(:@__hb_notice_id, notice.id) unless exception_or_opts.frozen?
|
179
|
+
end
|
180
|
+
|
174
181
|
notice.id
|
175
182
|
end
|
176
183
|
|
@@ -190,6 +197,29 @@ module Honeybadger
|
|
190
197
|
response.success?
|
191
198
|
end
|
192
199
|
|
200
|
+
# Track a new deployment
|
201
|
+
#
|
202
|
+
# @example
|
203
|
+
# Honeybadger.track_deployment(revision: 'be2ceb6')
|
204
|
+
#
|
205
|
+
# @param [String] :environment The environment name. Defaults to the current configured environment.
|
206
|
+
# @param [String] :revision The VCS revision being deployed. Defaults to the currently configured revision.
|
207
|
+
# @param [String] :local_username The name of the user who performed the deploy.
|
208
|
+
# @param [String] :repository The base URL of the VCS repository. It should be HTTPS-style.
|
209
|
+
#
|
210
|
+
# @return [Boolean] true if the deployment was successfully tracked and false
|
211
|
+
# otherwise.
|
212
|
+
def track_deployment(environment: nil, revision: nil, local_username: nil, repository: nil)
|
213
|
+
opts = {
|
214
|
+
environment: environment || config[:env],
|
215
|
+
revision: revision || config[:revision],
|
216
|
+
local_username: local_username,
|
217
|
+
repository: repository
|
218
|
+
}
|
219
|
+
response = backend.track_deployment(opts)
|
220
|
+
response.success?
|
221
|
+
end
|
222
|
+
|
193
223
|
# Save global context for the current request.
|
194
224
|
#
|
195
225
|
# @example
|
@@ -99,6 +99,15 @@ module Honeybadger
|
|
99
99
|
raise NotImplementedError, 'must define #check_in on subclass.'
|
100
100
|
end
|
101
101
|
|
102
|
+
# Track a deployment
|
103
|
+
# @example
|
104
|
+
# backend.track_deployment({ revision: 'be2ceb6' })
|
105
|
+
#
|
106
|
+
# @param [#to_json] payload The JSON payload containing all deployment data.
|
107
|
+
def track_deployment(payload)
|
108
|
+
notify(:deploys, payload)
|
109
|
+
end
|
110
|
+
|
102
111
|
private
|
103
112
|
|
104
113
|
attr_reader :config
|
@@ -23,7 +23,7 @@ module Honeybadger
|
|
23
23
|
exit(1)
|
24
24
|
end
|
25
25
|
|
26
|
-
cmd = %Q(heroku
|
26
|
+
cmd = %Q(heroku webhooks:add -i api:release -l notify -u "https://api.honeybadger.io/v1/deploys/heroku?environment=#{rails_env}&api_key=#{api_key}"#{app ? " --app #{app}" : ''})
|
27
27
|
|
28
28
|
say("Running: `#{cmd}`")
|
29
29
|
say(run(cmd))
|
@@ -93,7 +93,7 @@ module Honeybadger
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def run(cmd)
|
96
|
-
Bundler.
|
96
|
+
Bundler.with_unbundled_env { `#{cmd}` }
|
97
97
|
end
|
98
98
|
|
99
99
|
def heroku_var(var, app_name, default = nil)
|
@@ -43,10 +43,36 @@ module Honeybadger
|
|
43
43
|
exit(1)
|
44
44
|
end
|
45
45
|
|
46
|
+
default_env = defined?(::Rails.application) ? "Rails.env" : "ENV['RUBY_ENV'] || ENV['RACK_ENV']"
|
47
|
+
default_root = defined?(::Rails.application) ? "Rails.root.to_s" : "Dir.pwd"
|
46
48
|
File.open(path, 'w+') do |file|
|
47
49
|
file.write(<<-CONFIG)
|
48
50
|
---
|
51
|
+
# For more options, see https://docs.honeybadger.io/lib/ruby/gem-reference/configuration
|
52
|
+
|
49
53
|
api_key: '#{api_key}'
|
54
|
+
|
55
|
+
# The environment your app is running in.
|
56
|
+
env: "<%= #{default_env} %>"
|
57
|
+
|
58
|
+
# The absolute path to your project folder.
|
59
|
+
root: "<%= #{default_root} %>"
|
60
|
+
|
61
|
+
# Honeybadger won't report errors in these environments.
|
62
|
+
development_environments:
|
63
|
+
- test
|
64
|
+
- development
|
65
|
+
- cucumber
|
66
|
+
|
67
|
+
# By default, Honeybadger won't report errors in the development_environments.
|
68
|
+
# You can override this by explicitly setting report_data to true or false.
|
69
|
+
# report_data: true
|
70
|
+
|
71
|
+
# The current Git revision of your project. Defaults to the last commit hash.
|
72
|
+
# revision: null
|
73
|
+
|
74
|
+
# Enable verbose debug logging (useful for troubleshooting).
|
75
|
+
debug: false
|
50
76
|
CONFIG
|
51
77
|
end
|
52
78
|
end
|
data/lib/honeybadger/cli/test.rb
CHANGED
@@ -23,11 +23,13 @@ module Honeybadger
|
|
23
23
|
'ActionController::ParameterMissing',
|
24
24
|
'ActiveRecord::RecordNotFound',
|
25
25
|
'ActionController::UnknownAction',
|
26
|
+
'ActionDispatch::Http::MimeNegotiation::InvalidType',
|
26
27
|
'Rack::QueryParser::ParameterTypeError',
|
27
28
|
'Rack::QueryParser::InvalidParameterError',
|
28
29
|
'CGI::Session::CookieStore::TamperedWithCookie',
|
29
30
|
'Mongoid::Errors::DocumentNotFound',
|
30
|
-
'Sinatra::NotFound'
|
31
|
+
'Sinatra::NotFound',
|
32
|
+
'Sidekiq::JobRetry::Skip'].map(&:freeze).freeze
|
31
33
|
|
32
34
|
DEVELOPMENT_ENVIRONMENTS = ['development', 'test', 'cucumber'].map(&:freeze).freeze
|
33
35
|
|
@@ -299,6 +301,11 @@ module Honeybadger
|
|
299
301
|
default: true,
|
300
302
|
type: Boolean
|
301
303
|
},
|
304
|
+
:'rails.subscriber_ignore_sources' => {
|
305
|
+
description: "Sources (strings or regexes) that should be ignored when using the Rails' (7+) native error reporter.",
|
306
|
+
default: [],
|
307
|
+
type: Array
|
308
|
+
},
|
302
309
|
:'resque.resque_retry.send_exceptions_when_retrying' => {
|
303
310
|
description: 'Send exceptions when retrying job.',
|
304
311
|
default: true,
|
@@ -26,7 +26,11 @@ module Honeybadger
|
|
26
26
|
|
27
27
|
def self.load_yaml(path)
|
28
28
|
begin
|
29
|
-
|
29
|
+
# This uses `YAML.unsafe_load` to support loading arbitrary Ruby
|
30
|
+
# classes, such as !ruby/regexp. This was the default behavior prior
|
31
|
+
# to Psych 4. https://bugs.ruby-lang.org/issues/17866
|
32
|
+
method = YAML.respond_to?(:unsafe_load) ? :unsafe_load : :load
|
33
|
+
yaml = YAML.send(method, ERB.new(path.read).result)
|
30
34
|
rescue => e
|
31
35
|
config_error = ConfigError.new(e.to_s)
|
32
36
|
|
@@ -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.
|
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
|
data/lib/honeybadger/notice.rb
CHANGED
@@ -53,11 +53,11 @@ module Honeybadger
|
|
53
53
|
|
54
54
|
# @api private
|
55
55
|
# The String character used to split tag strings.
|
56
|
-
TAG_SEPERATOR =
|
56
|
+
TAG_SEPERATOR = /,|\s/.freeze
|
57
57
|
|
58
58
|
# @api private
|
59
59
|
# The Regexp used to strip invalid characters from individual tags.
|
60
|
-
TAG_SANITIZER =
|
60
|
+
TAG_SANITIZER = /\s/.freeze
|
61
61
|
|
62
62
|
# @api private
|
63
63
|
class Cause
|
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,57 @@ 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
|
+
Kernel.singleton_class.prepend(mod) if self == TOPLEVEL_BINDING.eval("self")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
6
46
|
# @api private
|
7
47
|
Plugin.register :lambda do
|
8
48
|
requirement { Util::Lambda.lambda_execution? }
|
9
49
|
|
10
50
|
execution do
|
11
51
|
config[:sync] = true
|
52
|
+
config[:'exceptions.notify_at_exit'] = false
|
53
|
+
|
54
|
+
main = TOPLEVEL_BINDING.eval("self")
|
55
|
+
main.extend(LambdaExtension)
|
56
|
+
|
12
57
|
(config[:before_notify] ||= []) << lambda do |notice|
|
13
58
|
data = Util::Lambda.normalized_data
|
14
59
|
|
@@ -29,6 +29,16 @@ 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
|
+
end
|
40
|
+
end
|
41
|
+
|
32
42
|
Plugin.register :rails_exceptions_catcher do
|
33
43
|
requirement { defined?(::Rails.application) && ::Rails.application }
|
34
44
|
|
@@ -41,6 +51,11 @@ module Honeybadger
|
|
41
51
|
# Rails 3.0.x and 3.1.x
|
42
52
|
::ActionDispatch::ShowExceptions.prepend(ExceptionsCatcher)
|
43
53
|
end
|
54
|
+
|
55
|
+
if defined?(::ActiveSupport::ErrorReporter)
|
56
|
+
# Rails 7
|
57
|
+
::Rails.error.subscribe(ErrorSubscriber)
|
58
|
+
end
|
44
59
|
end
|
45
60
|
end
|
46
61
|
end
|
@@ -5,7 +5,7 @@ module Honeybadger
|
|
5
5
|
module Plugins
|
6
6
|
module Sidekiq
|
7
7
|
class Middleware
|
8
|
-
def call(
|
8
|
+
def call(_worker, _msg, _queue)
|
9
9
|
Honeybadger.clear!
|
10
10
|
yield
|
11
11
|
end
|
@@ -23,7 +23,7 @@ module Honeybadger
|
|
23
23
|
|
24
24
|
if defined?(::Sidekiq::VERSION) && ::Sidekiq::VERSION > '3'
|
25
25
|
::Sidekiq.configure_server do |sidekiq|
|
26
|
-
sidekiq.error_handlers << lambda {|ex, params|
|
26
|
+
sidekiq.error_handlers << lambda { |ex, params|
|
27
27
|
job = params[:job] || params
|
28
28
|
job_retry = job['retry'.freeze]
|
29
29
|
|
@@ -37,13 +37,15 @@ module Honeybadger
|
|
37
37
|
attempt = retry_count ? retry_count + 1 : 0
|
38
38
|
|
39
39
|
# Ensure we account for modified max_retries setting
|
40
|
-
|
40
|
+
default_max_retry_attempts = defined?(::Sidekiq::JobRetry::DEFAULT_MAX_RETRY_ATTEMPTS) ? ::Sidekiq::JobRetry::DEFAULT_MAX_RETRY_ATTEMPTS : 25
|
41
|
+
retry_limit = job_retry == true ? (sidekiq.options[:max_retries] || default_max_retry_attempts) : job_retry.to_i
|
42
|
+
|
41
43
|
limit = [retry_limit, threshold].min
|
42
44
|
|
43
45
|
return if attempt < limit
|
44
46
|
end
|
45
47
|
|
46
|
-
opts = {parameters: params}
|
48
|
+
opts = { parameters: params }
|
47
49
|
if config[:'sidekiq.use_component']
|
48
50
|
opts[:component] = job['wrapped'.freeze] || job['class'.freeze]
|
49
51
|
opts[:action] = 'perform' if opts[:component]
|
@@ -37,6 +37,7 @@ module Honeybadger
|
|
37
37
|
def_delegator :'Honeybadger::Agent.instance', :add_breadcrumb
|
38
38
|
def_delegator :'Honeybadger::Agent.instance', :breadcrumbs
|
39
39
|
def_delegator :'Honeybadger::Agent.instance', :clear!
|
40
|
+
def_delegator :'Honeybadger::Agent.instance', :track_deployment
|
40
41
|
|
41
42
|
# @!macro [attach] def_delegator
|
42
43
|
# @!method $2(...)
|
@@ -4,7 +4,6 @@
|
|
4
4
|
#honeybadger_feedback_form label { font-weight: bold; }
|
5
5
|
#honeybadger_feedback_name, #honeybadger_feedback_email, #honeybadger_feedback_comment { width: 100%; padding: 0.5em; }
|
6
6
|
#honeybadger_feedback_comment { height: 10em; }
|
7
|
-
#honeybadger_feedback_submit { height: 1em; }
|
8
7
|
#honeybadger_feedback_form .honeybadger-feedback-phone { display: none; }
|
9
8
|
#honeybadger_feedback_link { font-size: 90%; }
|
10
9
|
</style>
|
@@ -28,7 +28,7 @@ module Honeybadger
|
|
28
28
|
return {} unless defined?(::Rack::Request)
|
29
29
|
return {} unless env
|
30
30
|
|
31
|
-
hash, request = {}, ::Rack::Request.new(env)
|
31
|
+
hash, request = {}, ::Rack::Request.new(env.dup)
|
32
32
|
|
33
33
|
hash[:url] = extract_url(request)
|
34
34
|
hash[:params] = extract_params(request)
|
@@ -3,9 +3,14 @@ module Honeybadger
|
|
3
3
|
class Revision
|
4
4
|
class << self
|
5
5
|
def detect(root = Dir.pwd)
|
6
|
-
from_heroku ||
|
6
|
+
revision = from_heroku ||
|
7
7
|
from_capistrano(root) ||
|
8
8
|
from_git
|
9
|
+
|
10
|
+
revision = revision.to_s.strip
|
11
|
+
return unless revision =~ /\S/
|
12
|
+
|
13
|
+
revision
|
9
14
|
end
|
10
15
|
|
11
16
|
private
|
@@ -21,12 +26,12 @@ module Honeybadger
|
|
21
26
|
def from_capistrano(root)
|
22
27
|
file = File.join(root, 'REVISION')
|
23
28
|
return nil unless File.file?(file)
|
24
|
-
File.read(file)
|
29
|
+
File.read(file) rescue nil
|
25
30
|
end
|
26
31
|
|
27
32
|
def from_git
|
28
33
|
return nil unless File.directory?('.git')
|
29
|
-
`git rev-parse HEAD
|
34
|
+
`git rev-parse HEAD 2> #{File::NULL}` rescue nil
|
30
35
|
end
|
31
36
|
end
|
32
37
|
end
|
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
|
+
version: 5.0.2
|
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:
|
11
|
+
date: 2022-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Make managing application errors a more pleasant experience.
|
14
14
|
email:
|
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
153
|
- !ruby/object:Gem::Version
|
154
154
|
version: '0'
|
155
155
|
requirements: []
|
156
|
-
rubygems_version: 3.
|
156
|
+
rubygems_version: 3.2.3
|
157
157
|
signing_key:
|
158
158
|
specification_version: 4
|
159
159
|
summary: Error reports you can be happy about.
|