sentry-raven 2.1.3 → 3.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.craft.yml +19 -0
- data/.scripts/bump-version.rb +5 -0
- data/CHANGELOG.md +703 -0
- data/Gemfile +37 -0
- data/Makefile +3 -0
- data/README.md +116 -18
- data/Rakefile +30 -0
- data/exe/raven +32 -0
- data/lib/raven/backtrace.rb +16 -6
- data/lib/raven/base.rb +17 -4
- data/lib/raven/breadcrumbs/{activesupport.rb → active_support_logger.rb} +9 -3
- data/lib/raven/breadcrumbs/logger.rb +2 -92
- data/lib/raven/breadcrumbs/sentry_logger.rb +73 -0
- data/lib/raven/breadcrumbs.rb +3 -1
- data/lib/raven/cli.rb +31 -43
- data/lib/raven/client.rb +39 -17
- data/lib/raven/configuration.rb +277 -37
- data/lib/raven/context.rb +17 -11
- data/lib/raven/core_ext/object/deep_dup.rb +57 -0
- data/lib/raven/core_ext/object/duplicable.rb +153 -0
- data/lib/raven/event.rb +172 -233
- data/lib/raven/helpers/deprecation_helper.rb +17 -0
- data/lib/raven/instance.rb +51 -25
- data/lib/raven/integrations/delayed_job.rb +18 -18
- data/lib/raven/integrations/rack-timeout.rb +11 -5
- data/lib/raven/integrations/rack.rb +36 -19
- data/lib/raven/integrations/rails/active_job.rb +52 -20
- data/lib/raven/integrations/rails/backtrace_cleaner.rb +29 -0
- data/lib/raven/integrations/rails/controller_transaction.rb +13 -0
- data/lib/raven/integrations/rails/overrides/debug_exceptions_catcher.rb +2 -2
- data/lib/raven/integrations/rails.rb +24 -8
- data/lib/raven/integrations/rake.rb +6 -1
- data/lib/raven/integrations/sidekiq/cleanup_middleware.rb +13 -0
- data/lib/raven/integrations/sidekiq/error_handler.rb +38 -0
- data/lib/raven/integrations/sidekiq.rb +6 -57
- data/lib/raven/interface.rb +2 -2
- data/lib/raven/interfaces/exception.rb +0 -2
- data/lib/raven/interfaces/http.rb +0 -2
- data/lib/raven/interfaces/message.rb +1 -1
- data/lib/raven/interfaces/single_exception.rb +0 -2
- data/lib/raven/interfaces/stack_trace.rb +19 -27
- data/lib/raven/linecache.rb +34 -17
- data/lib/raven/logger.rb +11 -18
- data/lib/raven/processor/cookies.rb +27 -7
- data/lib/raven/processor/http_headers.rb +18 -5
- data/lib/raven/processor/post_data.rb +16 -3
- data/lib/raven/processor/removecircularreferences.rb +12 -8
- data/lib/raven/processor/removestacktrace.rb +17 -6
- data/lib/raven/processor/sanitizedata.rb +88 -29
- data/lib/raven/processor/utf8conversion.rb +39 -14
- data/lib/raven/processor.rb +1 -1
- data/lib/raven/transports/http.rb +29 -21
- data/lib/raven/transports/stdout.rb +20 -0
- data/lib/raven/transports.rb +4 -8
- data/lib/raven/utils/context_filter.rb +42 -0
- data/lib/raven/utils/deep_merge.rb +6 -12
- data/lib/raven/utils/exception_cause_chain.rb +20 -0
- data/lib/raven/utils/real_ip.rb +1 -1
- data/lib/raven/utils/request_id.rb +16 -0
- data/lib/raven/version.rb +2 -2
- data/lib/sentry-raven-without-integrations.rb +6 -1
- data/lib/sentry_raven_without_integrations.rb +1 -0
- data/sentry-raven.gemspec +28 -0
- metadata +37 -103
- data/lib/raven/error.rb +0 -4
@@ -1,28 +1,53 @@
|
|
1
1
|
module Raven
|
2
2
|
class Processor::UTF8Conversion < Processor
|
3
|
+
# Slightly misnamed - actually just removes any bytes with invalid encoding
|
4
|
+
# Previously, our JSON backend required UTF-8. Since we now use the built-in
|
5
|
+
# JSON, we can use any encoding, but it must be valid anyway so we can do
|
6
|
+
# things like call #match and #slice on strings
|
7
|
+
REPLACE = "".freeze
|
8
|
+
|
3
9
|
def process(value)
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
+
case value
|
11
|
+
when Hash
|
12
|
+
!value.frozen? ? value.merge!(value) { |_, v| process v } : value.merge(value) { |_, v| process v }
|
13
|
+
when Array
|
14
|
+
!value.frozen? ? value.map! { |v| process v } : value.map { |v| process v }
|
15
|
+
when Exception
|
16
|
+
return value if value.message.valid_encoding?
|
17
|
+
|
18
|
+
clean_exc = value.class.new(remove_invalid_bytes(value.message))
|
10
19
|
clean_exc.set_backtrace(value.backtrace)
|
11
20
|
clean_exc
|
21
|
+
when String
|
22
|
+
# Encoding::BINARY / Encoding::ASCII_8BIT is a special binary encoding.
|
23
|
+
# valid_encoding? will always return true because it contains all codepoints,
|
24
|
+
# so instead we check if it only contains actual ASCII codepoints, and if
|
25
|
+
# not we assume it's actually just UTF8 and scrub accordingly.
|
26
|
+
if value.encoding == Encoding::BINARY && !value.ascii_only?
|
27
|
+
value = value.dup
|
28
|
+
value.force_encoding(Encoding::UTF_8)
|
29
|
+
end
|
30
|
+
return value if value.valid_encoding?
|
31
|
+
|
32
|
+
remove_invalid_bytes(value)
|
12
33
|
else
|
13
|
-
|
34
|
+
value
|
14
35
|
end
|
15
36
|
end
|
16
37
|
|
17
38
|
private
|
18
39
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
40
|
+
# Stolen from RSpec
|
41
|
+
# https://github.com/rspec/rspec-support/blob/f0af3fd74a94ff7bb700f6ba06dbdc67bba17fbf/lib/rspec/support/encoded_string.rb#L120-L139
|
42
|
+
if String.method_defined?(:scrub) # 2.1+
|
43
|
+
def remove_invalid_bytes(string)
|
44
|
+
string.scrub(REPLACE)
|
45
|
+
end
|
46
|
+
else
|
47
|
+
def remove_invalid_bytes(string)
|
48
|
+
string.chars.map do |char|
|
49
|
+
char.valid_encoding? ? char : REPLACE
|
50
|
+
end.join
|
26
51
|
end
|
27
52
|
end
|
28
53
|
end
|
data/lib/raven/processor.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
require 'faraday'
|
2
2
|
|
3
|
-
require 'raven/transports'
|
4
|
-
require 'raven/error'
|
5
|
-
|
6
3
|
module Raven
|
7
4
|
module Transports
|
8
5
|
class HTTP < Transport
|
@@ -15,6 +12,11 @@ module Raven
|
|
15
12
|
end
|
16
13
|
|
17
14
|
def send_event(auth_header, data, options = {})
|
15
|
+
unless configuration.sending_allowed?
|
16
|
+
configuration.logger.debug("Event not sent: #{configuration.error_messages}")
|
17
|
+
return
|
18
|
+
end
|
19
|
+
|
18
20
|
project_id = configuration[:project_id]
|
19
21
|
path = configuration[:path] + "/"
|
20
22
|
|
@@ -23,36 +25,42 @@ module Raven
|
|
23
25
|
req.headers['X-Sentry-Auth'] = auth_header
|
24
26
|
req.body = data
|
25
27
|
end
|
26
|
-
rescue Faraday::
|
27
|
-
|
28
|
+
rescue Faraday::Error => e
|
29
|
+
error_info = e.message
|
30
|
+
if e.response && e.response[:headers]['x-sentry-error']
|
31
|
+
error_info += " Error in headers is: #{e.response[:headers]['x-sentry-error']}"
|
32
|
+
end
|
33
|
+
raise Raven::Error, error_info
|
28
34
|
end
|
29
35
|
|
30
36
|
private
|
31
37
|
|
32
38
|
def set_conn
|
33
|
-
|
34
|
-
|
35
|
-
Raven.logger.debug "Raven HTTP Transport connecting to #{configuration.server}"
|
39
|
+
configuration.logger.debug "Raven HTTP Transport connecting to #{configuration.server}"
|
36
40
|
|
37
|
-
|
38
|
-
ssl_configuration[:verify] = configuration.ssl_verification
|
39
|
-
ssl_configuration[:ca_file] = configuration.ssl_ca_file
|
41
|
+
proxy = configuration.public_send(:proxy)
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
-
:ssl => ssl_configuration
|
44
|
-
) do |builder|
|
43
|
+
Faraday.new(configuration.server, :ssl => ssl_configuration, :proxy => proxy) do |builder|
|
44
|
+
configuration.faraday_builder&.call(builder)
|
45
45
|
builder.response :raise_error
|
46
|
+
builder.options.merge! faraday_opts
|
47
|
+
builder.headers[:user_agent] = "sentry-ruby/#{Raven::VERSION}"
|
46
48
|
builder.adapter(*adapter)
|
47
49
|
end
|
50
|
+
end
|
48
51
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
52
|
+
# TODO: deprecate and replace where possible w/Faraday Builder
|
53
|
+
def faraday_opts
|
54
|
+
[:timeout, :open_timeout].each_with_object({}) do |opt, memo|
|
55
|
+
memo[opt] = configuration.public_send(opt) if configuration.public_send(opt)
|
56
|
+
end
|
57
|
+
end
|
54
58
|
|
55
|
-
|
59
|
+
def ssl_configuration
|
60
|
+
(configuration.ssl || {}).merge(
|
61
|
+
:verify => configuration.ssl_verification,
|
62
|
+
:ca_file => configuration.ssl_ca_file
|
63
|
+
)
|
56
64
|
end
|
57
65
|
end
|
58
66
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Raven
|
2
|
+
module Transports
|
3
|
+
class Stdout < Transport
|
4
|
+
attr_accessor :events
|
5
|
+
|
6
|
+
def initialize(*)
|
7
|
+
super
|
8
|
+
end
|
9
|
+
|
10
|
+
def send_event(_auth_header, data, _options = {})
|
11
|
+
unless configuration.sending_allowed?
|
12
|
+
logger.debug("Event not sent: #{configuration.error_messages}")
|
13
|
+
end
|
14
|
+
|
15
|
+
$stdout.puts data
|
16
|
+
$stdout.flush
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/raven/transports.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'raven/error'
|
2
|
-
|
3
1
|
module Raven
|
4
2
|
module Transports
|
5
3
|
class Transport
|
@@ -12,12 +10,10 @@ module Raven
|
|
12
10
|
def send_event # (auth_header, data, options = {})
|
13
11
|
raise NotImplementedError, 'Abstract method not implemented'
|
14
12
|
end
|
15
|
-
|
16
|
-
protected
|
17
|
-
|
18
|
-
def verify_configuration
|
19
|
-
configuration.verify!
|
20
|
-
end
|
21
13
|
end
|
22
14
|
end
|
23
15
|
end
|
16
|
+
|
17
|
+
require "raven/transports/dummy"
|
18
|
+
require "raven/transports/http"
|
19
|
+
require "raven/transports/stdout"
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Raven
|
2
|
+
module Utils
|
3
|
+
module ContextFilter
|
4
|
+
class << self
|
5
|
+
ACTIVEJOB_RESERVED_PREFIX_REGEX = /^_aj_/.freeze
|
6
|
+
HAS_GLOBALID = const_defined?('GlobalID')
|
7
|
+
|
8
|
+
# Once an ActiveJob is queued, ActiveRecord references get serialized into
|
9
|
+
# some internal reserved keys, such as _aj_globalid.
|
10
|
+
#
|
11
|
+
# The problem is, if this job in turn gets queued back into ActiveJob with
|
12
|
+
# these magic reserved keys, ActiveJob will throw up and error. We want to
|
13
|
+
# capture these and mutate the keys so we can sanely report it.
|
14
|
+
def filter_context(context)
|
15
|
+
case context
|
16
|
+
when Array
|
17
|
+
context.map { |arg| filter_context(arg) }
|
18
|
+
when Hash
|
19
|
+
Hash[context.map { |key, value| filter_context_hash(key, value) }]
|
20
|
+
else
|
21
|
+
format_globalid(context)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def filter_context_hash(key, value)
|
28
|
+
key = key.to_s.sub(ACTIVEJOB_RESERVED_PREFIX_REGEX, "") if key.match(ACTIVEJOB_RESERVED_PREFIX_REGEX)
|
29
|
+
[key, filter_context(value)]
|
30
|
+
end
|
31
|
+
|
32
|
+
def format_globalid(context)
|
33
|
+
if HAS_GLOBALID && context.is_a?(GlobalID)
|
34
|
+
context.to_s
|
35
|
+
else
|
36
|
+
context
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -7,21 +7,15 @@ module Raven
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.deep_merge!(hash, other_hash, &block)
|
10
|
-
other_hash
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
hash.merge!(other_hash) do |key, this_val, other_val|
|
11
|
+
if this_val.is_a?(Hash) && other_val.is_a?(Hash)
|
12
|
+
deep_merge(this_val, other_val, &block)
|
13
|
+
elsif block_given?
|
14
|
+
block.call(key, this_val, other_val)
|
15
15
|
else
|
16
|
-
|
17
|
-
block.call(current_key, this_value, other_value)
|
18
|
-
else
|
19
|
-
other_value
|
20
|
-
end
|
16
|
+
other_val
|
21
17
|
end
|
22
18
|
end
|
23
|
-
|
24
|
-
hash
|
25
19
|
end
|
26
20
|
end
|
27
21
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Raven
|
2
|
+
module Utils
|
3
|
+
module ExceptionCauseChain
|
4
|
+
def self.exception_to_array(exception)
|
5
|
+
if exception.respond_to?(:cause) && exception.cause
|
6
|
+
exceptions = [exception]
|
7
|
+
while exception.cause
|
8
|
+
exception = exception.cause
|
9
|
+
break if exceptions.any? { |e| e.object_id == exception.object_id }
|
10
|
+
|
11
|
+
exceptions << exception
|
12
|
+
end
|
13
|
+
exceptions
|
14
|
+
else
|
15
|
+
[exception]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/raven/utils/real_ip.rb
CHANGED
@@ -13,7 +13,7 @@ module Raven
|
|
13
13
|
"fc00::/7", # private IPv6 range fc00::/7
|
14
14
|
"10.0.0.0/8", # private IPv4 range 10.x.x.x
|
15
15
|
"172.16.0.0/12", # private IPv4 range 172.16.0.0 .. 172.31.255.255
|
16
|
-
"192.168.0.0/16"
|
16
|
+
"192.168.0.0/16" # private IPv4 range 192.168.x.x
|
17
17
|
].map { |proxy| IPAddr.new(proxy) }
|
18
18
|
|
19
19
|
attr_accessor :ip, :ip_addresses
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Raven
|
2
|
+
module Utils
|
3
|
+
module RequestId
|
4
|
+
REQUEST_ID_HEADERS = %w(action_dispatch.request_id HTTP_X_REQUEST_ID).freeze
|
5
|
+
|
6
|
+
# Request ID based on ActionDispatch::RequestId
|
7
|
+
def self.read_from(env_hash)
|
8
|
+
REQUEST_ID_HEADERS.each do |key|
|
9
|
+
request_id = env_hash[key]
|
10
|
+
return request_id if request_id
|
11
|
+
end
|
12
|
+
nil
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/raven/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
require 'raven/base'
|
@@ -0,0 +1,28 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
2
|
+
require 'raven/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.name = "sentry-raven"
|
6
|
+
gem.authors = ["Sentry Team"]
|
7
|
+
gem.description = gem.summary = "A gem that provides a client interface for the Sentry error logger"
|
8
|
+
gem.email = "accounts@sentry.io"
|
9
|
+
gem.license = 'Apache-2.0'
|
10
|
+
gem.homepage = "https://github.com/getsentry/raven-ruby"
|
11
|
+
|
12
|
+
gem.version = Raven::VERSION
|
13
|
+
gem.platform = Gem::Platform::RUBY
|
14
|
+
gem.required_ruby_version = '>= 2.3'
|
15
|
+
gem.extra_rdoc_files = ["README.md", "LICENSE"]
|
16
|
+
gem.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples)'`.split("\n")
|
17
|
+
gem.bindir = "exe"
|
18
|
+
gem.executables = "raven"
|
19
|
+
|
20
|
+
gem.add_dependency "faraday", ">= 1.0"
|
21
|
+
|
22
|
+
gem.post_install_message = <<~EOS
|
23
|
+
`sentry-raven` is deprecated! Please migrate to `sentry-ruby`
|
24
|
+
|
25
|
+
See https://docs.sentry.io/platforms/ruby/migration for the migration guide.
|
26
|
+
|
27
|
+
EOS
|
28
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sentry-raven
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sentry Team
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,138 +16,63 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.10.x
|
19
|
+
version: '1.0'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 0.10.x
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: rake
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - ">="
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '0'
|
40
|
-
type: :development
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: rubocop
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 0.41.1
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 0.41.1
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: rspec
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '0'
|
68
|
-
type: :development
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '0'
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: rspec-rails
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - ">="
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '0'
|
82
|
-
type: :development
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - ">="
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '0'
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: timecop
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - ">="
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '0'
|
96
|
-
type: :development
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - ">="
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: test-unit
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - ">="
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - ">="
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '0'
|
26
|
+
version: '1.0'
|
117
27
|
description: A gem that provides a client interface for the Sentry error logger
|
118
|
-
email:
|
119
|
-
executables:
|
28
|
+
email: accounts@sentry.io
|
29
|
+
executables:
|
30
|
+
- raven
|
120
31
|
extensions: []
|
121
32
|
extra_rdoc_files:
|
122
33
|
- README.md
|
123
34
|
- LICENSE
|
124
35
|
files:
|
36
|
+
- ".craft.yml"
|
37
|
+
- ".scripts/bump-version.rb"
|
38
|
+
- CHANGELOG.md
|
39
|
+
- Gemfile
|
125
40
|
- LICENSE
|
41
|
+
- Makefile
|
126
42
|
- README.md
|
43
|
+
- Rakefile
|
44
|
+
- exe/raven
|
127
45
|
- lib/raven.rb
|
128
46
|
- lib/raven/backtrace.rb
|
129
47
|
- lib/raven/base.rb
|
130
48
|
- lib/raven/breadcrumbs.rb
|
131
|
-
- lib/raven/breadcrumbs/
|
49
|
+
- lib/raven/breadcrumbs/active_support_logger.rb
|
132
50
|
- lib/raven/breadcrumbs/logger.rb
|
51
|
+
- lib/raven/breadcrumbs/sentry_logger.rb
|
133
52
|
- lib/raven/cli.rb
|
134
53
|
- lib/raven/client.rb
|
135
54
|
- lib/raven/configuration.rb
|
136
55
|
- lib/raven/context.rb
|
137
|
-
- lib/raven/
|
56
|
+
- lib/raven/core_ext/object/deep_dup.rb
|
57
|
+
- lib/raven/core_ext/object/duplicable.rb
|
138
58
|
- lib/raven/event.rb
|
59
|
+
- lib/raven/helpers/deprecation_helper.rb
|
139
60
|
- lib/raven/instance.rb
|
140
61
|
- lib/raven/integrations/delayed_job.rb
|
141
62
|
- lib/raven/integrations/rack-timeout.rb
|
142
63
|
- lib/raven/integrations/rack.rb
|
143
64
|
- lib/raven/integrations/rails.rb
|
144
65
|
- lib/raven/integrations/rails/active_job.rb
|
66
|
+
- lib/raven/integrations/rails/backtrace_cleaner.rb
|
145
67
|
- lib/raven/integrations/rails/controller_methods.rb
|
68
|
+
- lib/raven/integrations/rails/controller_transaction.rb
|
146
69
|
- lib/raven/integrations/rails/overrides/debug_exceptions_catcher.rb
|
147
70
|
- lib/raven/integrations/rails/overrides/streaming_reporter.rb
|
148
71
|
- lib/raven/integrations/railties.rb
|
149
72
|
- lib/raven/integrations/rake.rb
|
150
73
|
- lib/raven/integrations/sidekiq.rb
|
74
|
+
- lib/raven/integrations/sidekiq/cleanup_middleware.rb
|
75
|
+
- lib/raven/integrations/sidekiq/error_handler.rb
|
151
76
|
- lib/raven/integrations/tasks.rb
|
152
77
|
- lib/raven/interface.rb
|
153
78
|
- lib/raven/interfaces/exception.rb
|
@@ -168,16 +93,26 @@ files:
|
|
168
93
|
- lib/raven/transports.rb
|
169
94
|
- lib/raven/transports/dummy.rb
|
170
95
|
- lib/raven/transports/http.rb
|
96
|
+
- lib/raven/transports/stdout.rb
|
97
|
+
- lib/raven/utils/context_filter.rb
|
171
98
|
- lib/raven/utils/deep_merge.rb
|
99
|
+
- lib/raven/utils/exception_cause_chain.rb
|
172
100
|
- lib/raven/utils/real_ip.rb
|
101
|
+
- lib/raven/utils/request_id.rb
|
173
102
|
- lib/raven/version.rb
|
174
103
|
- lib/sentry-raven-without-integrations.rb
|
175
104
|
- lib/sentry-raven.rb
|
105
|
+
- lib/sentry_raven_without_integrations.rb
|
106
|
+
- sentry-raven.gemspec
|
176
107
|
homepage: https://github.com/getsentry/raven-ruby
|
177
108
|
licenses:
|
178
109
|
- Apache-2.0
|
179
110
|
metadata: {}
|
180
|
-
post_install_message:
|
111
|
+
post_install_message: |+
|
112
|
+
`sentry-raven` is deprecated! Please migrate to `sentry-ruby`
|
113
|
+
|
114
|
+
See https://docs.sentry.io/platforms/ruby/migration for the migration guide.
|
115
|
+
|
181
116
|
rdoc_options: []
|
182
117
|
require_paths:
|
183
118
|
- lib
|
@@ -185,15 +120,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
120
|
requirements:
|
186
121
|
- - ">="
|
187
122
|
- !ruby/object:Gem::Version
|
188
|
-
version:
|
123
|
+
version: '2.3'
|
189
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
125
|
requirements:
|
191
126
|
- - ">="
|
192
127
|
- !ruby/object:Gem::Version
|
193
128
|
version: '0'
|
194
129
|
requirements: []
|
195
|
-
|
196
|
-
rubygems_version: 2.6.8
|
130
|
+
rubygems_version: 3.0.3
|
197
131
|
signing_key:
|
198
132
|
specification_version: 4
|
199
133
|
summary: A gem that provides a client interface for the Sentry error logger
|
data/lib/raven/error.rb
DELETED