honeybadger 4.5.4 → 4.7.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 +4 -4
- data/CHANGELOG.md +37 -0
- data/README.md +2 -1
- data/lib/honeybadger/agent.rb +10 -4
- data/lib/honeybadger/breadcrumbs/active_support.rb +3 -3
- data/lib/honeybadger/cli/helpers.rb +1 -1
- data/lib/honeybadger/cli/main.rb +1 -1
- data/lib/honeybadger/cli/test.rb +1 -1
- data/lib/honeybadger/config.rb +6 -6
- data/lib/honeybadger/config/defaults.rb +12 -2
- data/lib/honeybadger/config/ruby.rb +6 -6
- data/lib/honeybadger/notice.rb +12 -1
- data/lib/honeybadger/plugin.rb +6 -6
- data/lib/honeybadger/plugins/faktory.rb +52 -0
- data/lib/honeybadger/plugins/sidekiq.rb +17 -7
- data/lib/honeybadger/util/sanitizer.rb +1 -1
- data/lib/honeybadger/util/sql.rb +10 -1
- data/lib/honeybadger/version.rb +1 -1
- data/vendor/capistrano-honeybadger/lib/capistrano/tasks/deploy.cap +1 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c76ef937ae77d449421f97e342bd86f77176a705fb6b7a75e4928e0a48fc71b
|
4
|
+
data.tar.gz: db036be307a2f741187951a46f30845451e5e01d49d266250837dcb6869b084c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e57d7371fa97c9e9f356824ac5ee15454106cbf332d772c0fc74f01a5d8d5aaac7b78f7f09eacc2d4e902c432f24ca30146ed36e697048ee9a9e31902472942d
|
7
|
+
data.tar.gz: 6f14009e5ea56d72bdba4a95a3bcfe23fd29e6bc8870b701e3f6a0869e4aa750bc56485ac149f512484881bdd477af7c8dd41668b104323d54be840c31f13800
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,43 @@ adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [4.7.1] - 2020-08-11
|
9
|
+
### Fixed
|
10
|
+
- ActiveRecord SQL Breadcrumb event pulls adapter from supplied connection,
|
11
|
+
allowing for multiple databases.
|
12
|
+
- Fix Rails deprecation of `ActionDispatch::ParamsParser::ParseError`
|
13
|
+
- Deal with invalid UTF-8 byte sequences during SQL obfuscation
|
14
|
+
- Fix Ruby 2.7 deprecation notice in sql.rb
|
15
|
+
|
16
|
+
## [4.7.0] - 2020-06-02
|
17
|
+
### Fixed
|
18
|
+
- Alias `Notice#controller=` as `Notice#component=`
|
19
|
+
- Fix Rails 6.1 deprecation warning with `ActiveRecord::Base.connection_config`
|
20
|
+
- Fix agent where breadcrumbs.enabled = true and local_context = true
|
21
|
+
|
22
|
+
### Added
|
23
|
+
- Add `honeybadger_skip_rails_load` Capistrano option to skip rails load on
|
24
|
+
deployment notification (#355) -@NielsKSchjoedt
|
25
|
+
|
26
|
+
## [4.6.0] - 2020-03-12
|
27
|
+
### Fixed
|
28
|
+
- Fixed issue where Sidekiq.attempt_threshold was triggering 2 attempts ahead
|
29
|
+
of the setting
|
30
|
+
- Dup notify opts before mutating (#345)
|
31
|
+
|
32
|
+
### Changed
|
33
|
+
- Breadcrumbs on by default
|
34
|
+
- Added Faktory plugin -@scottrobertson
|
35
|
+
|
36
|
+
## [4.5.6] - 2020-01-08
|
37
|
+
### Fixed
|
38
|
+
- Fix remaining Ruby 2.7 deprecation warnings
|
39
|
+
|
40
|
+
## [4.5.5] - 2020-01-06
|
41
|
+
### Fixed
|
42
|
+
- Replace empty `Proc.new` with explicit block param to suppress warnings
|
43
|
+
in Ruby 2.7
|
44
|
+
|
8
45
|
## [4.5.4] - 2019-12-09
|
9
46
|
### Fixed
|
10
47
|
- Re-released to remove vendor cruft
|
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Honeybadger for Ruby
|
2
2
|
|
3
|
-
|
3
|
+

|
4
|
+

|
4
5
|
[](http://badge.fury.io/rb/honeybadger)
|
5
6
|
[](https://dependabot.com/compatibility-score.html?dependency-name=honeybadger&package-manager=bundler&version-scheme=semver)
|
6
7
|
|
data/lib/honeybadger/agent.rb
CHANGED
@@ -63,13 +63,17 @@ module Honeybadger
|
|
63
63
|
end
|
64
64
|
|
65
65
|
@context = opts.delete(:context)
|
66
|
-
|
66
|
+
local_context = opts.delete(:local_context)
|
67
|
+
|
68
|
+
@config ||= Config.new(opts)
|
69
|
+
|
70
|
+
if local_context
|
67
71
|
@context ||= ContextManager.new
|
68
72
|
@breadcrumbs = Breadcrumbs::Collector.new(config)
|
73
|
+
else
|
74
|
+
@breadcrumbs = nil
|
69
75
|
end
|
70
76
|
|
71
|
-
@config ||= Config.new(opts)
|
72
|
-
|
73
77
|
init_worker
|
74
78
|
end
|
75
79
|
|
@@ -115,6 +119,8 @@ module Honeybadger
|
|
115
119
|
# @return [String] UUID reference to the notice within Honeybadger.
|
116
120
|
# @return [false] when ignored.
|
117
121
|
def notify(exception_or_opts, opts = {})
|
122
|
+
opts = opts.dup
|
123
|
+
|
118
124
|
if exception_or_opts.is_a?(Exception)
|
119
125
|
opts[:exception] = exception_or_opts
|
120
126
|
elsif exception_or_opts.respond_to?(:to_hash)
|
@@ -278,7 +284,7 @@ module Honeybadger
|
|
278
284
|
metadata: metadata
|
279
285
|
})
|
280
286
|
|
281
|
-
breadcrumbs.add!(Breadcrumbs::Breadcrumb.new(params))
|
287
|
+
breadcrumbs.add!(Breadcrumbs::Breadcrumb.new(**params))
|
282
288
|
|
283
289
|
self
|
284
290
|
end
|
@@ -15,10 +15,11 @@ module Honeybadger
|
|
15
15
|
["Active Record", name].compact.join(" - ")
|
16
16
|
end,
|
17
17
|
category: "query",
|
18
|
-
select_keys: [:sql, :name, :connection_id, :cached],
|
18
|
+
select_keys: [:sql, :name, :connection, :connection_id, :cached],
|
19
19
|
transform: lambda do |data|
|
20
20
|
if data[:sql]
|
21
|
-
|
21
|
+
connection = data.delete(:connection) || ::ActiveRecord::Base.connection
|
22
|
+
adapter = connection.adapter_name.downcase
|
22
23
|
data[:sql] = Util::SQL.obfuscate(data[:sql], adapter)
|
23
24
|
end
|
24
25
|
data
|
@@ -102,7 +103,6 @@ module Honeybadger
|
|
102
103
|
}
|
103
104
|
}
|
104
105
|
end
|
105
|
-
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
@@ -15,7 +15,7 @@ To fix this issue, please try the following:
|
|
15
15
|
|
16
16
|
- Make sure the gem is configured properly.
|
17
17
|
- Retry executing this command a few times.
|
18
|
-
- Make sure you can connect to #{host} (`
|
18
|
+
- Make sure you can connect to #{host} (`curl https://#{host}/v1/notices`).
|
19
19
|
- Email support@honeybadger.io for help. Include as much debug info as you
|
20
20
|
can for a faster resolution!
|
21
21
|
|
data/lib/honeybadger/cli/main.rb
CHANGED
@@ -196,7 +196,7 @@ WELCOME
|
|
196
196
|
# What can I do?
|
197
197
|
|
198
198
|
- Retry the command.
|
199
|
-
- Make sure you can connect to api.honeybadger.io (`
|
199
|
+
- Make sure you can connect to api.honeybadger.io (`curl https://api.honeybadger.io/v1/notices`).
|
200
200
|
- If you continue to see this message, email us at support@honeybadger.io
|
201
201
|
(don't forget to attach this output!)
|
202
202
|
|
data/lib/honeybadger/cli/test.rb
CHANGED
@@ -175,7 +175,7 @@ To fix this issue, please try the following:
|
|
175
175
|
|
176
176
|
- Make sure the gem is configured properly.
|
177
177
|
- Retry executing this command a few times.
|
178
|
-
- Make sure you can connect to #{host} (`
|
178
|
+
- Make sure you can connect to #{host} (`curl https://#{host}/v1/notices`).
|
179
179
|
- Email support@honeybadger.io for help. Include as much debug info as you
|
180
180
|
can for a faster resolution!
|
181
181
|
|
data/lib/honeybadger/config.rb
CHANGED
@@ -79,10 +79,10 @@ module Honeybadger
|
|
79
79
|
self
|
80
80
|
end
|
81
81
|
|
82
|
-
def backtrace_filter
|
82
|
+
def backtrace_filter(&block)
|
83
83
|
if block_given?
|
84
84
|
warn('DEPRECATED: backtrace_filter is deprecated. Please use before_notify instead. See https://docs.honeybadger.io/ruby/support/v4-upgrade#backtrace_filter')
|
85
|
-
self[:backtrace_filter] =
|
85
|
+
self[:backtrace_filter] = block
|
86
86
|
end
|
87
87
|
|
88
88
|
self[:backtrace_filter]
|
@@ -92,19 +92,19 @@ module Honeybadger
|
|
92
92
|
(ruby[:before_notify] || []).clone
|
93
93
|
end
|
94
94
|
|
95
|
-
def exception_filter
|
95
|
+
def exception_filter(&block)
|
96
96
|
if block_given?
|
97
97
|
warn('DEPRECATED: exception_filter is deprecated. Please use before_notify instead. See https://docs.honeybadger.io/ruby/support/v4-upgrade#exception_filter')
|
98
|
-
self[:exception_filter] =
|
98
|
+
self[:exception_filter] = block
|
99
99
|
end
|
100
100
|
|
101
101
|
self[:exception_filter]
|
102
102
|
end
|
103
103
|
|
104
|
-
def exception_fingerprint
|
104
|
+
def exception_fingerprint(&block)
|
105
105
|
if block_given?
|
106
106
|
warn('DEPRECATED: exception_fingerprint is deprecated. Please use before_notify instead. See https://docs.honeybadger.io/ruby/support/v4-upgrade#exception_fingerprint')
|
107
|
-
self[:exception_fingerprint] =
|
107
|
+
self[:exception_fingerprint] = block
|
108
108
|
end
|
109
109
|
|
110
110
|
self[:exception_fingerprint]
|
@@ -13,7 +13,12 @@ module Honeybadger
|
|
13
13
|
'ActionController::UnknownFormat',
|
14
14
|
'ActionController::InvalidAuthenticityToken',
|
15
15
|
'ActionController::InvalidCrossOriginRequest',
|
16
|
+
# ActionDispatch::ParamsParser::ParseError was removed in Rails 6.0
|
17
|
+
# and may be removed here once support for Rails 5.2 is dropped.
|
18
|
+
# https://github.com/rails/rails/commit/e16c765ac6dcff068ff2e5554d69ff345c003de1
|
19
|
+
# https://github.com/honeybadger-io/honeybadger-ruby/pull/358
|
16
20
|
'ActionDispatch::ParamsParser::ParseError',
|
21
|
+
'ActionDispatch::Http::Parameters::ParseError',
|
17
22
|
'ActionController::BadRequest',
|
18
23
|
'ActionController::ParameterMissing',
|
19
24
|
'ActiveRecord::RecordNotFound',
|
@@ -279,6 +284,11 @@ module Honeybadger
|
|
279
284
|
default: 0,
|
280
285
|
type: Integer
|
281
286
|
},
|
287
|
+
:'faktory.attempt_threshold' => {
|
288
|
+
description: 'The number of attempts before notifications will be sent.',
|
289
|
+
default: 0,
|
290
|
+
type: Integer
|
291
|
+
},
|
282
292
|
:'sidekiq.use_component' => {
|
283
293
|
description: 'Automatically set the component to the class of the job. Helps with grouping.',
|
284
294
|
default: true,
|
@@ -295,8 +305,8 @@ module Honeybadger
|
|
295
305
|
type: Boolean
|
296
306
|
},
|
297
307
|
:'breadcrumbs.enabled' => {
|
298
|
-
description: '
|
299
|
-
default:
|
308
|
+
description: 'Disable breadcrumb functionality.',
|
309
|
+
default: true,
|
300
310
|
type: Boolean
|
301
311
|
},
|
302
312
|
:'breadcrumbs.active_support_notifications' => {
|
@@ -93,28 +93,28 @@ module Honeybadger
|
|
93
93
|
hash[:before_notify] = hooks
|
94
94
|
end
|
95
95
|
|
96
|
-
def backtrace_filter
|
96
|
+
def backtrace_filter(&block)
|
97
97
|
if block_given?
|
98
98
|
logger.warn('DEPRECATED: backtrace_filter is deprecated. Please use before_notify instead. See https://docs.honeybadger.io/ruby/support/v4-upgrade#backtrace_filter')
|
99
|
-
hash[:backtrace_filter] =
|
99
|
+
hash[:backtrace_filter] = block if block_given?
|
100
100
|
end
|
101
101
|
|
102
102
|
get(:backtrace_filter)
|
103
103
|
end
|
104
104
|
|
105
|
-
def exception_filter
|
105
|
+
def exception_filter(&block)
|
106
106
|
if block_given?
|
107
107
|
logger.warn('DEPRECATED: exception_filter is deprecated. Please use before_notify instead. See https://docs.honeybadger.io/ruby/support/v4-upgrade#exception_filter')
|
108
|
-
hash[:exception_filter] =
|
108
|
+
hash[:exception_filter] = block
|
109
109
|
end
|
110
110
|
|
111
111
|
get(:exception_filter)
|
112
112
|
end
|
113
113
|
|
114
|
-
def exception_fingerprint
|
114
|
+
def exception_fingerprint(&block)
|
115
115
|
if block_given?
|
116
116
|
logger.warn('DEPRECATED: exception_fingerprint is deprecated. Please use before_notify instead. See https://docs.honeybadger.io/ruby/support/v4-upgrade#exception_fingerprint')
|
117
|
-
hash[:exception_fingerprint] =
|
117
|
+
hash[:exception_fingerprint] = block
|
118
118
|
end
|
119
119
|
|
120
120
|
get(:exception_fingerprint)
|
data/lib/honeybadger/notice.rb
CHANGED
@@ -42,6 +42,10 @@ module Honeybadger
|
|
42
42
|
# @api private
|
43
43
|
MAX_EXCEPTION_CAUSES = 5
|
44
44
|
|
45
|
+
# @api private
|
46
|
+
# Binding#source_location was added in Ruby 2.6.
|
47
|
+
BINDING_HAS_SOURCE_LOCATION = Binding.method_defined?(:source_location)
|
48
|
+
|
45
49
|
class Notice
|
46
50
|
extend Forwardable
|
47
51
|
|
@@ -114,6 +118,7 @@ module Honeybadger
|
|
114
118
|
# The component (if any) which was used in this request (usually the controller).
|
115
119
|
attr_accessor :component
|
116
120
|
alias_method :controller, :component
|
121
|
+
alias_method :controller=, :component=
|
117
122
|
|
118
123
|
# The action (if any) that was called in this request.
|
119
124
|
attr_accessor :action
|
@@ -444,7 +449,13 @@ module Honeybadger
|
|
444
449
|
return {} if exception.__honeybadger_bindings_stack.empty?
|
445
450
|
|
446
451
|
if config[:root]
|
447
|
-
binding = exception.__honeybadger_bindings_stack.find { |b|
|
452
|
+
binding = exception.__honeybadger_bindings_stack.find { |b|
|
453
|
+
if BINDING_HAS_SOURCE_LOCATION
|
454
|
+
b.source_location[0]
|
455
|
+
else
|
456
|
+
b.eval('__FILE__')
|
457
|
+
end =~ /^#{Regexp.escape(config[:root].to_s)}/
|
458
|
+
}
|
448
459
|
end
|
449
460
|
|
450
461
|
binding ||= exception.__honeybadger_bindings_stack[0]
|
data/lib/honeybadger/plugin.rb
CHANGED
@@ -66,11 +66,11 @@ module Honeybadger
|
|
66
66
|
# +snake_case+. The name is inferred from the current file name if omitted.
|
67
67
|
#
|
68
68
|
# @return nil
|
69
|
-
def register(name = nil)
|
69
|
+
def register(name = nil, &block)
|
70
70
|
name ||= name_from_caller(caller) or
|
71
71
|
raise(ArgumentError, 'Plugin name is required, but was nil.')
|
72
72
|
instances[key = name.to_sym] and fail("Already registered: #{name}")
|
73
|
-
instances[key] = new(name).tap { |d| d.instance_eval(&
|
73
|
+
instances[key] = new(name).tap { |d| d.instance_eval(&block) }
|
74
74
|
end
|
75
75
|
|
76
76
|
# @api private
|
@@ -136,8 +136,8 @@ module Honeybadger
|
|
136
136
|
# end
|
137
137
|
#
|
138
138
|
# @return nil
|
139
|
-
def requirement
|
140
|
-
@requirements <<
|
139
|
+
def requirement(&block)
|
140
|
+
@requirements << block
|
141
141
|
end
|
142
142
|
|
143
143
|
# Define an execution block. Execution blocks will be executed if all
|
@@ -161,8 +161,8 @@ module Honeybadger
|
|
161
161
|
# end
|
162
162
|
#
|
163
163
|
# @return nil
|
164
|
-
def execution
|
165
|
-
@executions <<
|
164
|
+
def execution(&block)
|
165
|
+
@executions << block
|
166
166
|
end
|
167
167
|
|
168
168
|
# @api private
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'honeybadger/plugin'
|
2
|
+
require 'honeybadger/ruby'
|
3
|
+
|
4
|
+
module Honeybadger
|
5
|
+
module Plugins
|
6
|
+
module Faktory
|
7
|
+
class Middleware
|
8
|
+
def call(worker, job)
|
9
|
+
Honeybadger.clear!
|
10
|
+
yield
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
Plugin.register do
|
15
|
+
requirement { defined?(::Faktory) }
|
16
|
+
|
17
|
+
execution do
|
18
|
+
::Faktory.configure_worker do |faktory|
|
19
|
+
faktory.worker_middleware do |chain|
|
20
|
+
chain.prepend Middleware
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
::Faktory.configure_worker do |faktory|
|
25
|
+
faktory.error_handlers << lambda do |ex, params|
|
26
|
+
opts = {parameters: params}
|
27
|
+
|
28
|
+
if job = params[:job]
|
29
|
+
if (threshold = config[:'faktory.attempt_threshold'].to_i) > 0
|
30
|
+
# If job.failure is nil, it is the first attempt. The first
|
31
|
+
# retry has a job.failure.retry_count of 0, which would be
|
32
|
+
# the second attempt in our case.
|
33
|
+
retry_count = job.dig('failure', 'retry_count')
|
34
|
+
attempt = retry_count ? retry_count + 1 : 0
|
35
|
+
|
36
|
+
limit = [job['retry'].to_i, threshold].min
|
37
|
+
|
38
|
+
return if attempt < limit
|
39
|
+
end
|
40
|
+
|
41
|
+
opts[:component] = job['jobtype']
|
42
|
+
opts[:action] = 'perform'
|
43
|
+
end
|
44
|
+
|
45
|
+
Honeybadger.notify(ex, opts)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -25,20 +25,30 @@ module Honeybadger
|
|
25
25
|
::Sidekiq.configure_server do |sidekiq|
|
26
26
|
sidekiq.error_handlers << lambda {|ex, params|
|
27
27
|
job = params[:job] || params
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
28
|
+
job_retry = job['retry'.freeze]
|
29
|
+
|
30
|
+
if (threshold = config[:'sidekiq.attempt_threshold'].to_i) > 0 && job_retry
|
31
|
+
# We calculate the job attempts to determine the need to
|
32
|
+
# skip. Sidekiq's first job execution will have nil for the
|
33
|
+
# 'retry_count' job key. The first retry will have 0 set for
|
34
|
+
# the 'retry_count' key, incrementing on each execution
|
35
|
+
# afterwards.
|
36
|
+
retry_count = job['retry_count'.freeze]
|
37
|
+
attempt = retry_count ? retry_count + 1 : 0
|
38
|
+
|
39
|
+
# Ensure we account for modified max_retries setting
|
40
|
+
retry_limit = job_retry == true ? (sidekiq.options[:max_retries] || 25) : job_retry.to_i
|
41
|
+
limit = [retry_limit, threshold].min
|
42
|
+
|
43
|
+
return if attempt < limit
|
34
44
|
end
|
35
45
|
|
36
|
-
return if retry_opt && retry_count < max_retries
|
37
46
|
opts = {parameters: params}
|
38
47
|
if config[:'sidekiq.use_component']
|
39
48
|
opts[:component] = job['wrapped'.freeze] || job['class'.freeze]
|
40
49
|
opts[:action] = 'perform' if opts[:component]
|
41
50
|
end
|
51
|
+
|
42
52
|
Honeybadger.notify(ex, opts)
|
43
53
|
}
|
44
54
|
end
|
data/lib/honeybadger/util/sql.rb
CHANGED
@@ -11,7 +11,7 @@ module Honeybadger
|
|
11
11
|
DoubleQuoters = /(postgres|sqlite|postgis)/.freeze
|
12
12
|
|
13
13
|
def self.obfuscate(sql, adapter)
|
14
|
-
sql.dup.tap do |s|
|
14
|
+
force_utf_8(sql.dup).tap do |s|
|
15
15
|
s.gsub!(EscapedQuotes, EmptyReplacement)
|
16
16
|
s.gsub!(SQuotedData, Replacement)
|
17
17
|
s.gsub!(DQuotedData, Replacement) if adapter =~ DoubleQuoters
|
@@ -20,6 +20,15 @@ module Honeybadger
|
|
20
20
|
s.squeeze!(' ')
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
24
|
+
def self.force_utf_8(string)
|
25
|
+
string.encode(
|
26
|
+
Encoding.find('UTF-8'),
|
27
|
+
invalid: :replace,
|
28
|
+
undef: :replace,
|
29
|
+
replace: ''
|
30
|
+
)
|
31
|
+
end
|
23
32
|
end
|
24
33
|
end
|
25
34
|
end
|
data/lib/honeybadger/version.rb
CHANGED
@@ -24,6 +24,7 @@ namespace :honeybadger do
|
|
24
24
|
|
25
25
|
api_key = fetch(:honeybadger_api_key, ENV['HONEYBADGER_API_KEY'])
|
26
26
|
options += ['--api-key', api_key] if api_key
|
27
|
+
options << '--skip-rails-load' if fetch(:honeybadger_skip_rails_load, false)
|
27
28
|
|
28
29
|
if fetch(:honeybadger_async_notify, false)
|
29
30
|
::SSHKit.config.command_map.prefix[:honeybadger].push(:nohup)
|
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.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Honeybadger Industries LLC
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Make managing application errors a more pleasant experience.
|
14
14
|
email:
|
@@ -65,6 +65,7 @@ files:
|
|
65
65
|
- lib/honeybadger/plugins/breadcrumbs.rb
|
66
66
|
- lib/honeybadger/plugins/delayed_job.rb
|
67
67
|
- lib/honeybadger/plugins/delayed_job/plugin.rb
|
68
|
+
- lib/honeybadger/plugins/faktory.rb
|
68
69
|
- lib/honeybadger/plugins/lambda.rb
|
69
70
|
- lib/honeybadger/plugins/local_variables.rb
|
70
71
|
- lib/honeybadger/plugins/passenger.rb
|
@@ -134,7 +135,7 @@ homepage: https://github.com/honeybadger-io/honeybadger-ruby
|
|
134
135
|
licenses:
|
135
136
|
- MIT
|
136
137
|
metadata: {}
|
137
|
-
post_install_message:
|
138
|
+
post_install_message:
|
138
139
|
rdoc_options:
|
139
140
|
- "--markup=tomdoc"
|
140
141
|
- "--main=README.md"
|
@@ -152,8 +153,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
153
|
- !ruby/object:Gem::Version
|
153
154
|
version: '0'
|
154
155
|
requirements: []
|
155
|
-
rubygems_version: 3.
|
156
|
-
signing_key:
|
156
|
+
rubygems_version: 3.1.2
|
157
|
+
signing_key:
|
157
158
|
specification_version: 4
|
158
159
|
summary: Error reports you can be happy about.
|
159
160
|
test_files: []
|