airbrake 9.5.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 +7 -0
- data/lib/airbrake.rb +30 -0
- data/lib/airbrake/capistrano.rb +6 -0
- data/lib/airbrake/capistrano/capistrano2.rb +38 -0
- data/lib/airbrake/capistrano/capistrano3.rb +21 -0
- data/lib/airbrake/delayed_job.rb +48 -0
- data/lib/airbrake/logger.rb +101 -0
- data/lib/airbrake/rack.rb +35 -0
- data/lib/airbrake/rack/context_filter.rb +58 -0
- data/lib/airbrake/rack/http_headers_filter.rb +42 -0
- data/lib/airbrake/rack/http_params_filter.rb +25 -0
- data/lib/airbrake/rack/instrumentable.rb +28 -0
- data/lib/airbrake/rack/middleware.rb +100 -0
- data/lib/airbrake/rack/request_body_filter.rb +31 -0
- data/lib/airbrake/rack/request_store.rb +32 -0
- data/lib/airbrake/rack/route_filter.rb +53 -0
- data/lib/airbrake/rack/session_filter.rb +23 -0
- data/lib/airbrake/rack/user.rb +70 -0
- data/lib/airbrake/rack/user_filter.rb +23 -0
- data/lib/airbrake/rails.rb +32 -0
- data/lib/airbrake/rails/action_cable.rb +33 -0
- data/lib/airbrake/rails/action_cable/notify_callback.rb +20 -0
- data/lib/airbrake/rails/action_controller.rb +35 -0
- data/lib/airbrake/rails/action_controller_notify_subscriber.rb +28 -0
- data/lib/airbrake/rails/action_controller_performance_breakdown_subscriber.rb +46 -0
- data/lib/airbrake/rails/action_controller_route_subscriber.rb +46 -0
- data/lib/airbrake/rails/active_job.rb +33 -0
- data/lib/airbrake/rails/active_record.rb +34 -0
- data/lib/airbrake/rails/active_record_subscriber.rb +42 -0
- data/lib/airbrake/rails/app.rb +43 -0
- data/lib/airbrake/rails/backtrace_cleaner.rb +10 -0
- data/lib/airbrake/rails/curb.rb +35 -0
- data/lib/airbrake/rails/event.rb +83 -0
- data/lib/airbrake/rails/excon_subscriber.rb +21 -0
- data/lib/airbrake/rails/http.rb +12 -0
- data/lib/airbrake/rails/http_client.rb +10 -0
- data/lib/airbrake/rails/net_http.rb +10 -0
- data/lib/airbrake/rails/railtie.rb +141 -0
- data/lib/airbrake/rails/typhoeus.rb +12 -0
- data/lib/airbrake/rake.rb +63 -0
- data/lib/airbrake/rake/tasks.rb +110 -0
- data/lib/airbrake/resque.rb +29 -0
- data/lib/airbrake/shoryuken.rb +40 -0
- data/lib/airbrake/sidekiq.rb +47 -0
- data/lib/airbrake/sidekiq/retryable_jobs_filter.rb +51 -0
- data/lib/airbrake/sneakers.rb +34 -0
- data/lib/airbrake/version.rb +5 -0
- data/lib/generators/airbrake_generator.rb +23 -0
- data/lib/generators/airbrake_initializer.rb.erb +78 -0
- metadata +416 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
module Airbrake
|
2
|
+
module Sidekiq
|
3
|
+
# Filter that can ignore notices from jobs that failed but will be retried
|
4
|
+
# by Sidekiq
|
5
|
+
# @since v7.3.0
|
6
|
+
class RetryableJobsFilter
|
7
|
+
if Gem::Version.new(::Sidekiq::VERSION) < Gem::Version.new('5.0.0')
|
8
|
+
require 'sidekiq/middleware/server/retry_jobs'
|
9
|
+
DEFAULT_MAX_RETRY_ATTEMPTS = \
|
10
|
+
::Sidekiq::Middleware::Server::RetryJobs::DEFAULT_MAX_RETRY_ATTEMPTS
|
11
|
+
else
|
12
|
+
require 'sidekiq/job_retry'
|
13
|
+
DEFAULT_MAX_RETRY_ATTEMPTS = ::Sidekiq::JobRetry::DEFAULT_MAX_RETRY_ATTEMPTS
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(max_retries: nil)
|
17
|
+
@max_retries = max_retries
|
18
|
+
end
|
19
|
+
|
20
|
+
def call(notice)
|
21
|
+
job = notice[:params][:job]
|
22
|
+
|
23
|
+
notice.ignore! if retryable?(job)
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def retryable?(job)
|
29
|
+
return false unless job && job['retry']
|
30
|
+
|
31
|
+
max_attempts = max_attempts_for(job)
|
32
|
+
retry_count = (job['retry_count'] || -1) + 1
|
33
|
+
retry_count < max_attempts
|
34
|
+
end
|
35
|
+
|
36
|
+
def max_attempts_for(job)
|
37
|
+
if @max_retries
|
38
|
+
@max_retries
|
39
|
+
elsif job['retry'].is_a?(Integer)
|
40
|
+
job['retry']
|
41
|
+
else
|
42
|
+
max_retries
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def max_retries
|
47
|
+
@max_retries ||= ::Sidekiq.options[:max_retries] || DEFAULT_MAX_RETRY_ATTEMPTS
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Airbrake
|
2
|
+
module Sneakers
|
3
|
+
# Provides integration with Sneakers.
|
4
|
+
#
|
5
|
+
# @see https://github.com/jondot/sneakers
|
6
|
+
# @since v7.2.0
|
7
|
+
class ErrorReporter
|
8
|
+
# @return [Array<Symbol>] ignored keys values of which raise
|
9
|
+
# SystemStackError when `as_json` is called on them
|
10
|
+
# @see https://github.com/airbrake/airbrake/issues/850
|
11
|
+
IGNORED_KEYS = %i[delivery_tag consumer channel].freeze
|
12
|
+
|
13
|
+
def call(exception, worker = nil, **context)
|
14
|
+
Airbrake.notify(exception, filter_context(context)) do |notice|
|
15
|
+
notice[:context][:component] = 'sneakers'
|
16
|
+
notice[:context][:action] = worker.class.to_s
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def filter_context(context)
|
23
|
+
return context unless context[:delivery_info]
|
24
|
+
h = context.dup
|
25
|
+
h[:delivery_info] = context[:delivery_info].reject do |k, _v|
|
26
|
+
IGNORED_KEYS.include?(k)
|
27
|
+
end
|
28
|
+
h
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
Sneakers.error_reporters << Airbrake::Sneakers::ErrorReporter.new
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Creates the Airbrake initializer file for Rails apps.
|
2
|
+
#
|
3
|
+
# @example Invokation from terminal
|
4
|
+
# rails generate airbrake PROJECT_KEY PROJECT_ID [NAME]
|
5
|
+
#
|
6
|
+
class AirbrakeGenerator < Rails::Generators::Base
|
7
|
+
# Adds current directory to source paths, so we can find the template file.
|
8
|
+
source_root File.expand_path(__dir__)
|
9
|
+
|
10
|
+
argument :project_id, required: false
|
11
|
+
argument :project_key, required: false
|
12
|
+
|
13
|
+
# Makes the NAME option optional, which allows to subclass from Base, so we
|
14
|
+
# can pass arguments to the ERB template.
|
15
|
+
#
|
16
|
+
# @see http://asciicasts.com/episodes/218-making-generators-in-rails-3
|
17
|
+
argument :name, type: :string, default: 'application'
|
18
|
+
|
19
|
+
desc 'Configures the Airbrake notifier with your project id and project key'
|
20
|
+
def generate_layout
|
21
|
+
template 'airbrake_initializer.rb.erb', 'config/initializers/airbrake.rb'
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# Airbrake is an online tool that provides robust exception tracking in your Rails
|
2
|
+
# applications. In doing so, it allows you to easily review errors, tie an error
|
3
|
+
# to an individual piece of code, and trace the cause back to recent
|
4
|
+
# changes. Airbrake enables for easy categorization, searching, and prioritization
|
5
|
+
# of exceptions so that when errors occur, your team can quickly determine the
|
6
|
+
# root cause.
|
7
|
+
#
|
8
|
+
# Configuration details:
|
9
|
+
# https://github.com/airbrake/airbrake-ruby#configuration
|
10
|
+
Airbrake.configure do |c|
|
11
|
+
# You must set both project_id & project_key. To find your project_id and
|
12
|
+
# project_key navigate to your project's General Settings and copy the values
|
13
|
+
# from the right sidebar.
|
14
|
+
# https://github.com/airbrake/airbrake-ruby#project_id--project_key
|
15
|
+
<% if project_id -%>
|
16
|
+
c.project_id = <%= project_id %>
|
17
|
+
<% else -%>
|
18
|
+
c.project_id = ENV['AIRBRAKE_PROJECT_ID']
|
19
|
+
<% end -%>
|
20
|
+
<% if project_key -%>
|
21
|
+
c.project_key = '<%= project_key %>'
|
22
|
+
<% else -%>
|
23
|
+
c.project_key = ENV['AIRBRAKE_API_KEY']
|
24
|
+
<% end -%>
|
25
|
+
|
26
|
+
# Configures the root directory of your project. Expects a String or a
|
27
|
+
# Pathname, which represents the path to your project. Providing this option
|
28
|
+
# helps us to filter out repetitive data from backtrace frames and link to
|
29
|
+
# GitHub files from our dashboard.
|
30
|
+
# https://github.com/airbrake/airbrake-ruby#root_directory
|
31
|
+
c.root_directory = Rails.root
|
32
|
+
|
33
|
+
# By default, Airbrake Ruby outputs to STDOUT. In Rails apps it makes sense to
|
34
|
+
# use the Rails' logger.
|
35
|
+
# https://github.com/airbrake/airbrake-ruby#logger
|
36
|
+
c.logger = Airbrake::Rails.logger
|
37
|
+
|
38
|
+
# Configures the environment the application is running in. Helps the Airbrake
|
39
|
+
# dashboard to distinguish between exceptions occurring in different
|
40
|
+
# environments.
|
41
|
+
# NOTE: This option must be set in order to make the 'ignore_environments'
|
42
|
+
# option work.
|
43
|
+
# https://github.com/airbrake/airbrake-ruby#environment
|
44
|
+
c.environment = Rails.env
|
45
|
+
|
46
|
+
# Setting this option allows Airbrake to filter exceptions occurring in
|
47
|
+
# unwanted environments such as :test.
|
48
|
+
# NOTE: This option *does not* work if you don't set the 'environment' option.
|
49
|
+
# https://github.com/airbrake/airbrake-ruby#ignore_environments
|
50
|
+
c.ignore_environments = %w[test]
|
51
|
+
|
52
|
+
# A list of parameters that should be filtered out of what is sent to
|
53
|
+
# Airbrake. By default, all "password" attributes will have their contents
|
54
|
+
# replaced.
|
55
|
+
# https://github.com/airbrake/airbrake-ruby#blacklist_keys
|
56
|
+
c.blacklist_keys = [/password/i, /authorization/i]
|
57
|
+
|
58
|
+
# Alternatively, you can integrate with Rails' filter_parameters.
|
59
|
+
# Read more: https://goo.gl/gqQ1xS
|
60
|
+
# c.blacklist_keys = Rails.application.config.filter_parameters
|
61
|
+
end
|
62
|
+
|
63
|
+
# A filter that collects request body information. Enable it if you are sure you
|
64
|
+
# don't send sensitive information to Airbrake in your body (such as passwords).
|
65
|
+
# https://github.com/airbrake/airbrake#requestbodyfilter
|
66
|
+
# Airbrake.add_filter(Airbrake::Rack::RequestBodyFilter.new)
|
67
|
+
|
68
|
+
# Attaches thread & fiber local variables along with general thread information.
|
69
|
+
# Airbrake.add_filter(Airbrake::Filters::ThreadFilter.new)
|
70
|
+
|
71
|
+
# Attaches loaded dependencies to the notice object
|
72
|
+
# (under context/versions/dependencies).
|
73
|
+
# Airbrake.add_filter(Airbrake::Filters::DependencyFilter.new)
|
74
|
+
|
75
|
+
# If you want to convert your log messages to Airbrake errors, we offer an
|
76
|
+
# integration with the Logger class from stdlib.
|
77
|
+
# https://github.com/airbrake/airbrake#logger
|
78
|
+
# Rails.logger = Airbrake::AirbrakeLogger.new(Rails.logger)
|
metadata
ADDED
@@ -0,0 +1,416 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: airbrake
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 9.5.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Airbrake Technologies, Inc.
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-10-24 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: airbrake-ruby
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.8'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec-wait
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '12'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '12'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: appraisal
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rack
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: webmock
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '2'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '2'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: sneakers
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: amq-protocol
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 2.2.0
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 2.2.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rack-test
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.6.3
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.6.3
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: redis
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - '='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 3.3.3
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 3.3.3
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: public_suffix
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '2.0'
|
188
|
+
- - "<"
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '3.0'
|
191
|
+
type: :development
|
192
|
+
prerelease: false
|
193
|
+
version_requirements: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - "~>"
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '2.0'
|
198
|
+
- - "<"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '3.0'
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: nokogiri
|
203
|
+
requirement: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - '='
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: 1.9.1
|
208
|
+
type: :development
|
209
|
+
prerelease: false
|
210
|
+
version_requirements: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
212
|
+
- - '='
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: 1.9.1
|
215
|
+
- !ruby/object:Gem::Dependency
|
216
|
+
name: parallel
|
217
|
+
requirement: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - '='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: 1.13.0
|
222
|
+
type: :development
|
223
|
+
prerelease: false
|
224
|
+
version_requirements: !ruby/object:Gem::Requirement
|
225
|
+
requirements:
|
226
|
+
- - '='
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: 1.13.0
|
229
|
+
- !ruby/object:Gem::Dependency
|
230
|
+
name: minitest
|
231
|
+
requirement: !ruby/object:Gem::Requirement
|
232
|
+
requirements:
|
233
|
+
- - '='
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: 5.11.3
|
236
|
+
type: :development
|
237
|
+
prerelease: false
|
238
|
+
version_requirements: !ruby/object:Gem::Requirement
|
239
|
+
requirements:
|
240
|
+
- - '='
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: 5.11.3
|
243
|
+
- !ruby/object:Gem::Dependency
|
244
|
+
name: sidekiq
|
245
|
+
requirement: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - "~>"
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: '5'
|
250
|
+
type: :development
|
251
|
+
prerelease: false
|
252
|
+
version_requirements: !ruby/object:Gem::Requirement
|
253
|
+
requirements:
|
254
|
+
- - "~>"
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: '5'
|
257
|
+
- !ruby/object:Gem::Dependency
|
258
|
+
name: curb
|
259
|
+
requirement: !ruby/object:Gem::Requirement
|
260
|
+
requirements:
|
261
|
+
- - "~>"
|
262
|
+
- !ruby/object:Gem::Version
|
263
|
+
version: '0.9'
|
264
|
+
type: :development
|
265
|
+
prerelease: false
|
266
|
+
version_requirements: !ruby/object:Gem::Requirement
|
267
|
+
requirements:
|
268
|
+
- - "~>"
|
269
|
+
- !ruby/object:Gem::Version
|
270
|
+
version: '0.9'
|
271
|
+
- !ruby/object:Gem::Dependency
|
272
|
+
name: excon
|
273
|
+
requirement: !ruby/object:Gem::Requirement
|
274
|
+
requirements:
|
275
|
+
- - "~>"
|
276
|
+
- !ruby/object:Gem::Version
|
277
|
+
version: '0.64'
|
278
|
+
type: :development
|
279
|
+
prerelease: false
|
280
|
+
version_requirements: !ruby/object:Gem::Requirement
|
281
|
+
requirements:
|
282
|
+
- - "~>"
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
version: '0.64'
|
285
|
+
- !ruby/object:Gem::Dependency
|
286
|
+
name: http
|
287
|
+
requirement: !ruby/object:Gem::Requirement
|
288
|
+
requirements:
|
289
|
+
- - "~>"
|
290
|
+
- !ruby/object:Gem::Version
|
291
|
+
version: '2.2'
|
292
|
+
type: :development
|
293
|
+
prerelease: false
|
294
|
+
version_requirements: !ruby/object:Gem::Requirement
|
295
|
+
requirements:
|
296
|
+
- - "~>"
|
297
|
+
- !ruby/object:Gem::Version
|
298
|
+
version: '2.2'
|
299
|
+
- !ruby/object:Gem::Dependency
|
300
|
+
name: httpclient
|
301
|
+
requirement: !ruby/object:Gem::Requirement
|
302
|
+
requirements:
|
303
|
+
- - "~>"
|
304
|
+
- !ruby/object:Gem::Version
|
305
|
+
version: '2.8'
|
306
|
+
type: :development
|
307
|
+
prerelease: false
|
308
|
+
version_requirements: !ruby/object:Gem::Requirement
|
309
|
+
requirements:
|
310
|
+
- - "~>"
|
311
|
+
- !ruby/object:Gem::Version
|
312
|
+
version: '2.8'
|
313
|
+
- !ruby/object:Gem::Dependency
|
314
|
+
name: typhoeus
|
315
|
+
requirement: !ruby/object:Gem::Requirement
|
316
|
+
requirements:
|
317
|
+
- - "~>"
|
318
|
+
- !ruby/object:Gem::Version
|
319
|
+
version: '1.3'
|
320
|
+
type: :development
|
321
|
+
prerelease: false
|
322
|
+
version_requirements: !ruby/object:Gem::Requirement
|
323
|
+
requirements:
|
324
|
+
- - "~>"
|
325
|
+
- !ruby/object:Gem::Version
|
326
|
+
version: '1.3'
|
327
|
+
description: |
|
328
|
+
Airbrake is an online tool that provides robust exception tracking in any of
|
329
|
+
your Ruby applications. In doing so, it allows you to easily review errors, tie
|
330
|
+
an error to an individual piece of code, and trace the cause back to recent
|
331
|
+
changes. The Airbrake dashboard provides easy categorization, searching, and
|
332
|
+
prioritization of exceptions so that when errors occur, your team can quickly
|
333
|
+
determine the root cause.
|
334
|
+
|
335
|
+
Additionally, this gem includes integrations with such popular libraries and
|
336
|
+
frameworks as Rails, Sinatra, Resque, Sidekiq, Delayed Job, Shoryuken,
|
337
|
+
ActiveJob and many more.
|
338
|
+
email: support@airbrake.io
|
339
|
+
executables: []
|
340
|
+
extensions: []
|
341
|
+
extra_rdoc_files: []
|
342
|
+
files:
|
343
|
+
- lib/airbrake.rb
|
344
|
+
- lib/airbrake/capistrano.rb
|
345
|
+
- lib/airbrake/capistrano/capistrano2.rb
|
346
|
+
- lib/airbrake/capistrano/capistrano3.rb
|
347
|
+
- lib/airbrake/delayed_job.rb
|
348
|
+
- lib/airbrake/logger.rb
|
349
|
+
- lib/airbrake/rack.rb
|
350
|
+
- lib/airbrake/rack/context_filter.rb
|
351
|
+
- lib/airbrake/rack/http_headers_filter.rb
|
352
|
+
- lib/airbrake/rack/http_params_filter.rb
|
353
|
+
- lib/airbrake/rack/instrumentable.rb
|
354
|
+
- lib/airbrake/rack/middleware.rb
|
355
|
+
- lib/airbrake/rack/request_body_filter.rb
|
356
|
+
- lib/airbrake/rack/request_store.rb
|
357
|
+
- lib/airbrake/rack/route_filter.rb
|
358
|
+
- lib/airbrake/rack/session_filter.rb
|
359
|
+
- lib/airbrake/rack/user.rb
|
360
|
+
- lib/airbrake/rack/user_filter.rb
|
361
|
+
- lib/airbrake/rails.rb
|
362
|
+
- lib/airbrake/rails/action_cable.rb
|
363
|
+
- lib/airbrake/rails/action_cable/notify_callback.rb
|
364
|
+
- lib/airbrake/rails/action_controller.rb
|
365
|
+
- lib/airbrake/rails/action_controller_notify_subscriber.rb
|
366
|
+
- lib/airbrake/rails/action_controller_performance_breakdown_subscriber.rb
|
367
|
+
- lib/airbrake/rails/action_controller_route_subscriber.rb
|
368
|
+
- lib/airbrake/rails/active_job.rb
|
369
|
+
- lib/airbrake/rails/active_record.rb
|
370
|
+
- lib/airbrake/rails/active_record_subscriber.rb
|
371
|
+
- lib/airbrake/rails/app.rb
|
372
|
+
- lib/airbrake/rails/backtrace_cleaner.rb
|
373
|
+
- lib/airbrake/rails/curb.rb
|
374
|
+
- lib/airbrake/rails/event.rb
|
375
|
+
- lib/airbrake/rails/excon_subscriber.rb
|
376
|
+
- lib/airbrake/rails/http.rb
|
377
|
+
- lib/airbrake/rails/http_client.rb
|
378
|
+
- lib/airbrake/rails/net_http.rb
|
379
|
+
- lib/airbrake/rails/railtie.rb
|
380
|
+
- lib/airbrake/rails/typhoeus.rb
|
381
|
+
- lib/airbrake/rake.rb
|
382
|
+
- lib/airbrake/rake/tasks.rb
|
383
|
+
- lib/airbrake/resque.rb
|
384
|
+
- lib/airbrake/shoryuken.rb
|
385
|
+
- lib/airbrake/sidekiq.rb
|
386
|
+
- lib/airbrake/sidekiq/retryable_jobs_filter.rb
|
387
|
+
- lib/airbrake/sneakers.rb
|
388
|
+
- lib/airbrake/version.rb
|
389
|
+
- lib/generators/airbrake_generator.rb
|
390
|
+
- lib/generators/airbrake_initializer.rb.erb
|
391
|
+
homepage: https://airbrake.io
|
392
|
+
licenses:
|
393
|
+
- MIT
|
394
|
+
metadata: {}
|
395
|
+
post_install_message:
|
396
|
+
rdoc_options: []
|
397
|
+
require_paths:
|
398
|
+
- lib
|
399
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
400
|
+
requirements:
|
401
|
+
- - ">="
|
402
|
+
- !ruby/object:Gem::Version
|
403
|
+
version: '2.1'
|
404
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
405
|
+
requirements:
|
406
|
+
- - ">="
|
407
|
+
- !ruby/object:Gem::Version
|
408
|
+
version: '0'
|
409
|
+
requirements: []
|
410
|
+
rubyforge_project:
|
411
|
+
rubygems_version: 2.7.6.2
|
412
|
+
signing_key:
|
413
|
+
specification_version: 4
|
414
|
+
summary: Airbrake is an online tool that provides robust exception tracking in any
|
415
|
+
of your Ruby applications.
|
416
|
+
test_files: []
|