sentry-raven 2.9.0 → 2.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +7 -7
- data/README.md +2 -2
- data/changelog.md +57 -1
- data/lib/raven/base.rb +1 -1
- data/lib/raven/breadcrumbs/logger.rb +1 -1
- data/lib/raven/client.rb +19 -6
- data/lib/raven/configuration.rb +8 -3
- data/lib/raven/event.rb +1 -7
- data/lib/raven/instance.rb +8 -0
- data/lib/raven/integrations/delayed_job.rb +2 -2
- data/lib/raven/integrations/rails/active_job.rb +6 -4
- data/lib/raven/integrations/rails/controller_transaction.rb +1 -1
- data/lib/raven/processor/utf8conversion.rb +1 -1
- data/lib/raven/version.rb +1 -1
- data/sentry-raven.gemspec +1 -1
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 478a0cd677f1508fc2153381addf6956e189c5f9491ede8f79b6097977dd59b9
|
4
|
+
data.tar.gz: d87fe2f303acf7e1d8b658950a1e591800eaf8a0f8bbdd35637355ac6856f571
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c83298b6f11a500e50f4e530de5421f32d15f7ea72d3a6aea18cd4330f832073a2000a68228b0237313e709b3e4adba570b140837256798ff3987b9eb0bb0fc9
|
7
|
+
data.tar.gz: 80405a6c1d1f99a7b65ed9491bd17c0d4143a5d5f212c6408988c9de329bc2bee2f2c6c1421d6134cc7f3d4c23ed2da06d0ba76509f6ae191f0236e83c53bdf8
|
data/.travis.yml
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
language: ruby
|
2
2
|
dist: trusty
|
3
|
-
sudo: false
|
4
3
|
group: beta
|
5
4
|
cache: bundler
|
6
5
|
|
@@ -11,10 +10,11 @@ branches:
|
|
11
10
|
only: [master]
|
12
11
|
|
13
12
|
rvm:
|
14
|
-
- 2.2.
|
15
|
-
- 2.3.
|
16
|
-
- 2.4.
|
17
|
-
- 2.5.
|
13
|
+
- 2.2.10
|
14
|
+
- 2.3.8
|
15
|
+
- 2.4.9
|
16
|
+
- 2.5.7
|
17
|
+
- 2.6.5
|
18
18
|
|
19
19
|
env:
|
20
20
|
- RAILS_VERSION=4
|
@@ -37,9 +37,9 @@ matrix:
|
|
37
37
|
env: RAILS_VERSION=4
|
38
38
|
- rvm: jruby-1.7.27
|
39
39
|
env: JRUBY_OPTS="--dev" RAILS_VERSION=4
|
40
|
-
- rvm: jruby-9.2.
|
40
|
+
- rvm: jruby-9.2.9.0
|
41
41
|
env: JRUBY_OPTS="--dev -J-Djruby.launch.inproc=true -J-Xmx1024M" RAILS_VERSION=4
|
42
|
-
- rvm: jruby-9.2.
|
42
|
+
- rvm: jruby-9.2.9.0
|
43
43
|
env: JRUBY_OPTS="--dev -J-Djruby.launch.inproc=true -J-Xmx1024M" RAILS_VERSION=5
|
44
44
|
- rvm: ruby-head
|
45
45
|
env: RAILS_VERSION=0
|
data/README.md
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
[![SemVer](https://api.dependabot.com/badges/compatibility_score?dependency-name=sentry-raven&package-manager=bundler&version-scheme=semver)](https://dependabot.com/compatibility-score.html?dependency-name=sentry-raven&package-manager=bundler&version-scheme=semver)
|
14
14
|
|
15
15
|
|
16
|
-
[Documentation](https://docs.
|
16
|
+
[Documentation](https://docs.sentry.io/clients/ruby/) | [Bug Tracker](https://github.com/getsentry/raven-ruby/issues) | [Forum](https://forum.sentry.io/) | IRC: irc.freenode.net, #sentry
|
17
17
|
|
18
18
|
The official Ruby-language client and integration layer for the [Sentry](https://github.com/getsentry/sentry) error reporting API.
|
19
19
|
|
@@ -133,4 +133,4 @@ For more information, see [Context](https://docs.sentry.io/clients/ruby/context/
|
|
133
133
|
* [Documentation](https://docs.sentry.io/clients/ruby/)
|
134
134
|
* [Bug Tracker](https://github.com/getsentry/raven-ruby/issues)
|
135
135
|
* [Forum](https://forum.sentry.io/)
|
136
|
-
|
136
|
+
- [Discord](https://discord.gg/ez5KZN7)
|
data/changelog.md
CHANGED
@@ -1,3 +1,59 @@
|
|
1
|
+
2.13.0
|
2
|
+
----
|
3
|
+
|
4
|
+
* FIX: Sanitize event data before they are sent to async job. [@edariedl, #895]
|
5
|
+
* FIX: Serialization MongoDB ObjectId to JSON problem with gem delayed_job_mongoid conjunction. [@eagleas, #935]
|
6
|
+
* FEAT: Skip ActiveJob integration if there is a better one [@fsateler, #909]
|
7
|
+
* FIX: Bugs with send_event in asynchronous mode (#940) [@cstyles, #940]
|
8
|
+
|
9
|
+
2.12.3
|
10
|
+
----
|
11
|
+
|
12
|
+
* FIX: crash when Process.wait is used [@asBrettisay, #895]
|
13
|
+
|
14
|
+
2.12.2
|
15
|
+
----
|
16
|
+
|
17
|
+
* FIX: return tags/extra for [@rivayama, #931]
|
18
|
+
|
19
|
+
2.12.1
|
20
|
+
----
|
21
|
+
|
22
|
+
* FIX: undefined method `[]' for nil:NilClass [@HazAT, #932]
|
23
|
+
|
24
|
+
2.12.0
|
25
|
+
----
|
26
|
+
|
27
|
+
* FIX: Remove duplicate message when exception is emitted
|
28
|
+
* FIX: Frozen string bug in utf8conversation
|
29
|
+
* FEATURE: Allow block on tags_context and extra_context
|
30
|
+
|
31
|
+
2.11.3
|
32
|
+
----
|
33
|
+
|
34
|
+
* FIX: infinite backoff under pressure [@Bonias, #886]
|
35
|
+
|
36
|
+
2.11.2
|
37
|
+
----
|
38
|
+
|
39
|
+
* REF: Warn on 4xx error [@iloveitaly, #862]
|
40
|
+
|
41
|
+
2.11.1
|
42
|
+
----
|
43
|
+
|
44
|
+
* FIX: Call `to_s` on breadcrumb message [@halkeye, #914]
|
45
|
+
|
46
|
+
2.11.0
|
47
|
+
----
|
48
|
+
|
49
|
+
* FEATURE: Prepend the transaction around_action so libraries with controllers can alter the value. [@drcapulet, #887]
|
50
|
+
|
51
|
+
2.10.0
|
52
|
+
-----
|
53
|
+
|
54
|
+
* FEATURE: Added support for `SENTRY_ENVIRONMENT` [@mtsmfm, #910]
|
55
|
+
* FEATURE: Added support for `SENTRY_RELEASE` [@coorasse, #911]
|
56
|
+
|
1
57
|
2.9.0
|
2
58
|
-----
|
3
59
|
|
@@ -7,7 +63,7 @@
|
|
7
63
|
2.8.0
|
8
64
|
-----
|
9
65
|
|
10
|
-
* FEATURE: Added `config.before_send`. Provide a lambda or proc to this config setting, which will be `call`ed
|
66
|
+
* FEATURE: Added `config.before_send`. Provide a lambda or proc to this config setting, which will be `call`ed before sending an event to Sentry. Receives `event` and `hint` as parameters. `hint` is a hash `{:exception => ex | nil, :message => message | nil}`. [@hazat, #882]
|
11
67
|
|
12
68
|
2.7.4
|
13
69
|
-----
|
data/lib/raven/base.rb
CHANGED
@@ -100,7 +100,7 @@ module Raven
|
|
100
100
|
|
101
101
|
def sys_command(command)
|
102
102
|
result = `#{command} 2>&1` rescue nil
|
103
|
-
return if result.nil? || result.empty? || $CHILD_STATUS.exitstatus != 0
|
103
|
+
return if result.nil? || result.empty? || ($CHILD_STATUS && $CHILD_STATUS.exitstatus != 0)
|
104
104
|
result.strip
|
105
105
|
end
|
106
106
|
end
|
@@ -36,7 +36,7 @@ module Raven
|
|
36
36
|
|
37
37
|
# some loggers will add leading/trailing space as they (incorrectly, mind you)
|
38
38
|
# think of logging as a shortcut to std{out,err}
|
39
|
-
message = message.strip
|
39
|
+
message = message.to_s.strip
|
40
40
|
|
41
41
|
last_crumb = Raven.breadcrumbs.peek
|
42
42
|
# try to avoid dupes from logger broadcasts
|
data/lib/raven/client.rb
CHANGED
@@ -35,7 +35,8 @@ module Raven
|
|
35
35
|
return
|
36
36
|
end
|
37
37
|
|
38
|
-
|
38
|
+
event_id = event[:event_id] || event['event_id']
|
39
|
+
configuration.logger.info "Sending event #{event_id} to Sentry"
|
39
40
|
|
40
41
|
content_type, encoded_data = encode(event)
|
41
42
|
|
@@ -79,8 +80,20 @@ module Raven
|
|
79
80
|
end
|
80
81
|
end
|
81
82
|
|
83
|
+
def get_message_from_exception(event)
|
84
|
+
(
|
85
|
+
event &&
|
86
|
+
event[:exception] &&
|
87
|
+
event[:exception][:values] &&
|
88
|
+
event[:exception][:values][0] &&
|
89
|
+
event[:exception][:values][0][:type] &&
|
90
|
+
event[:exception][:values][0][:value] &&
|
91
|
+
"#{event[:exception][:values][0][:type]}: #{event[:exception][:values][0][:value]}"
|
92
|
+
)
|
93
|
+
end
|
94
|
+
|
82
95
|
def get_log_message(event)
|
83
|
-
(event && event[:message]) || '<no message value>'
|
96
|
+
(event && event[:message]) || (event && event['message']) || get_message_from_exception(event) || '<no message value>'
|
84
97
|
end
|
85
98
|
|
86
99
|
def generate_auth_header
|
@@ -100,13 +113,13 @@ module Raven
|
|
100
113
|
end
|
101
114
|
|
102
115
|
def failed_send(e, event)
|
103
|
-
@state.failure
|
104
116
|
if e # exception was raised
|
105
|
-
|
117
|
+
@state.failure
|
118
|
+
configuration.logger.warn "Unable to record event with remote Sentry server (#{e.class} - #{e.message}):\n#{e.backtrace[0..10].join("\n")}"
|
106
119
|
else
|
107
|
-
configuration.logger.
|
120
|
+
configuration.logger.warn "Not sending event due to previous failure(s)."
|
108
121
|
end
|
109
|
-
configuration.logger.
|
122
|
+
configuration.logger.warn("Failed to submit event: #{get_log_message(event)}")
|
110
123
|
configuration.transport_failure_callback.call(event) if configuration.transport_failure_callback
|
111
124
|
end
|
112
125
|
end
|
data/lib/raven/configuration.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'uri'
|
2
2
|
|
3
3
|
module Raven
|
4
|
-
class Configuration
|
4
|
+
class Configuration
|
5
5
|
# Directories to be recognized as part of your app. e.g. if you
|
6
6
|
# have an `engines` dir at the root of your project, you may want
|
7
7
|
# to set this to something like /(app|config|engines|lib)/
|
@@ -347,7 +347,8 @@ module Raven
|
|
347
347
|
end
|
348
348
|
|
349
349
|
def detect_release
|
350
|
-
|
350
|
+
detect_release_from_env ||
|
351
|
+
detect_release_from_git ||
|
351
352
|
detect_release_from_capistrano ||
|
352
353
|
detect_release_from_heroku
|
353
354
|
rescue => ex
|
@@ -411,6 +412,10 @@ module Raven
|
|
411
412
|
Raven.sys_command("git rev-parse --short HEAD") if File.directory?(".git")
|
412
413
|
end
|
413
414
|
|
415
|
+
def detect_release_from_env
|
416
|
+
ENV['SENTRY_RELEASE']
|
417
|
+
end
|
418
|
+
|
414
419
|
def capture_in_current_environment?
|
415
420
|
return true unless environments.any? && !environments.include?(current_environment)
|
416
421
|
@errors << "Not configured to send/capture in environment '#{current_environment}'"
|
@@ -453,7 +458,7 @@ module Raven
|
|
453
458
|
end
|
454
459
|
|
455
460
|
def current_environment_from_env
|
456
|
-
ENV['SENTRY_CURRENT_ENV'] || ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'default'
|
461
|
+
ENV['SENTRY_CURRENT_ENV'] || ENV['SENTRY_ENVIRONMENT'] || ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'default'
|
457
462
|
end
|
458
463
|
|
459
464
|
def server_name_from_env
|
data/lib/raven/event.rb
CHANGED
@@ -59,10 +59,7 @@ module Raven
|
|
59
59
|
return unless configuration.exception_class_allowed?(exc)
|
60
60
|
|
61
61
|
new(options) do |evt|
|
62
|
-
evt.message = "#{exc.class}: #{exc.message}"
|
63
|
-
|
64
62
|
evt.add_exception_interface(exc)
|
65
|
-
|
66
63
|
yield evt if block
|
67
64
|
end
|
68
65
|
end
|
@@ -231,10 +228,7 @@ module Raven
|
|
231
228
|
end
|
232
229
|
|
233
230
|
def async_json_processors
|
234
|
-
|
235
|
-
Raven::Processor::RemoveCircularReferences,
|
236
|
-
Raven::Processor::UTF8Conversion
|
237
|
-
].map { |v| v.new(self) }
|
231
|
+
configuration.processors.map { |v| v.new(self) }
|
238
232
|
end
|
239
233
|
|
240
234
|
def list_gem_specs
|
data/lib/raven/instance.rb
CHANGED
@@ -183,6 +183,10 @@ module Raven
|
|
183
183
|
# Raven.tags_context('my_custom_tag' => 'tag_value')
|
184
184
|
def tags_context(options = nil)
|
185
185
|
context.tags.merge!(options || {})
|
186
|
+
yield if block_given?
|
187
|
+
context.tags
|
188
|
+
ensure
|
189
|
+
context.tags.delete_if { |k, _| options.keys.include? k } if block_given?
|
186
190
|
end
|
187
191
|
|
188
192
|
# Bind extra context. Merges with existing context (if any).
|
@@ -194,6 +198,10 @@ module Raven
|
|
194
198
|
# Raven.extra_context('my_custom_data' => 'value')
|
195
199
|
def extra_context(options = nil)
|
196
200
|
context.extra.merge!(options || {})
|
201
|
+
yield if block_given?
|
202
|
+
context.extra
|
203
|
+
ensure
|
204
|
+
context.extra.delete_if { |k, _| options.keys.include? k } if block_given?
|
197
205
|
end
|
198
206
|
|
199
207
|
def rack_context(env)
|
@@ -13,7 +13,7 @@ module Delayed
|
|
13
13
|
# Log error to Sentry
|
14
14
|
extra = {
|
15
15
|
:delayed_job => {
|
16
|
-
:id => job.id,
|
16
|
+
:id => job.id.to_s,
|
17
17
|
:priority => job.priority,
|
18
18
|
:attempts => job.attempts,
|
19
19
|
:run_at => job.run_at,
|
@@ -36,7 +36,7 @@ module Delayed
|
|
36
36
|
:logger => 'delayed_job',
|
37
37
|
:tags => {
|
38
38
|
:delayed_job_queue => job.queue,
|
39
|
-
:delayed_job_id => job.id
|
39
|
+
:delayed_job_id => job.id.to_s
|
40
40
|
},
|
41
41
|
:extra => extra)
|
42
42
|
|
@@ -9,7 +9,11 @@ module Raven
|
|
9
9
|
def self.included(base)
|
10
10
|
base.class_eval do
|
11
11
|
around_perform do |job, block|
|
12
|
-
|
12
|
+
if already_supported_by_specific_integration?(job)
|
13
|
+
block.call
|
14
|
+
else
|
15
|
+
capture_and_reraise_with_sentry(job, block)
|
16
|
+
end
|
13
17
|
end
|
14
18
|
end
|
15
19
|
end
|
@@ -18,9 +22,7 @@ module Raven
|
|
18
22
|
block.call
|
19
23
|
rescue Exception => exception # rubocop:disable Lint/RescueException
|
20
24
|
return if rescue_with_handler(exception)
|
21
|
-
|
22
|
-
Raven.capture_exception(exception, :extra => raven_context(job))
|
23
|
-
end
|
25
|
+
Raven.capture_exception(exception, :extra => raven_context(job))
|
24
26
|
raise exception
|
25
27
|
ensure
|
26
28
|
Context.clear!
|
@@ -2,7 +2,7 @@ module Raven
|
|
2
2
|
class Rails
|
3
3
|
module ControllerTransaction
|
4
4
|
def self.included(base)
|
5
|
-
base.
|
5
|
+
base.prepend_around_action do |controller, block|
|
6
6
|
Raven.context.transaction.push "#{controller.class}##{controller.action_name}"
|
7
7
|
block.call
|
8
8
|
Raven.context.transaction.pop
|
@@ -39,7 +39,7 @@ module Raven
|
|
39
39
|
# https://github.com/rspec/rspec-support/blob/f0af3fd74a94ff7bb700f6ba06dbdc67bba17fbf/lib/rspec/support/encoded_string.rb#L120-L139
|
40
40
|
if String.method_defined?(:scrub) # 2.1+
|
41
41
|
def remove_invalid_bytes(string)
|
42
|
-
string.scrub
|
42
|
+
string.scrub(REPLACE)
|
43
43
|
end
|
44
44
|
else
|
45
45
|
def remove_invalid_bytes(string)
|
data/lib/raven/version.rb
CHANGED
data/sentry-raven.gemspec
CHANGED
@@ -5,7 +5,7 @@ Gem::Specification.new do |gem|
|
|
5
5
|
gem.name = "sentry-raven"
|
6
6
|
gem.authors = ["Sentry Team"]
|
7
7
|
gem.description = gem.summary = "A gem that provides a client interface for the Sentry error logger"
|
8
|
-
gem.email = "
|
8
|
+
gem.email = "accounts@sentry.io"
|
9
9
|
gem.license = 'Apache-2.0'
|
10
10
|
gem.homepage = "https://github.com/getsentry/raven-ruby"
|
11
11
|
|
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: 2.
|
4
|
+
version: 2.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sentry Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '1.0'
|
33
33
|
description: A gem that provides a client interface for the Sentry error logger
|
34
|
-
email:
|
34
|
+
email: accounts@sentry.io
|
35
35
|
executables:
|
36
36
|
- raven
|
37
37
|
extensions: []
|
@@ -121,8 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
requirements: []
|
124
|
-
|
125
|
-
rubygems_version: 2.5.2.3
|
124
|
+
rubygems_version: 3.0.3
|
126
125
|
signing_key:
|
127
126
|
specification_version: 4
|
128
127
|
summary: A gem that provides a client interface for the Sentry error logger
|