sentry-raven 2.9.0 → 2.13.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 32a99e5dd16326a16bdb037f3773713c67b94435
4
- data.tar.gz: b54fdea58fbc249a01220ee8d16b29122fb9c36b
2
+ SHA256:
3
+ metadata.gz: 478a0cd677f1508fc2153381addf6956e189c5f9491ede8f79b6097977dd59b9
4
+ data.tar.gz: d87fe2f303acf7e1d8b658950a1e591800eaf8a0f8bbdd35637355ac6856f571
5
5
  SHA512:
6
- metadata.gz: 55835591bde885dead10c56f4f8bd311becd2da910b761be9056a4d9f4519356ad6602e6a36f55891176f3e733ac359ab74c893908c97e81d0706fbb04d51bdc
7
- data.tar.gz: a1e7af3943cf1fa7e8bf779ad348378439d82b548a729ac765110f8e90c558623c038082cd5e211540fa05cbaf153723d2351c355f0dbd4d92817650783f4aec
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.9
15
- - 2.3.6
16
- - 2.4.3
17
- - 2.5.0
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.0.0
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.0.0
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.getsentry.com/hosted/clients/ruby/) | [Bug Tracker](https://github.com/getsentry/raven-ruby/issues) | [Forum](https://forum.sentry.io/) | IRC: irc.freenode.net, #sentry
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
- * [IRC](irc://irc.freenode.net/sentry>) (irc.freenode.net, #sentry)
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 when before sending an event to Sentry. Receives `event` and `hint` as parameter. `hint` is a has {:exception => ex | nil, :message => message | nil}. [@hazat, #847]
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
- configuration.logger.info "Sending event #{event[:event_id]} to Sentry"
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
- configuration.logger.error "Unable to record event with remote Sentry server (#{e.class} - #{e.message}):\n#{e.backtrace[0..10].join("\n")}"
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.error "Not sending event due to previous failure(s)."
120
+ configuration.logger.warn "Not sending event due to previous failure(s)."
108
121
  end
109
- configuration.logger.error("Failed to submit event: #{get_log_message(event)}")
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
@@ -1,7 +1,7 @@
1
1
  require 'uri'
2
2
 
3
3
  module Raven
4
- class Configuration # rubocop:disable Metrics/ClassLength
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
- detect_release_from_git ||
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
@@ -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
- capture_and_reraise_with_sentry(job, block)
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
- unless already_supported_by_specific_integration?(job)
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.around_action do |controller, block|
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!(REPLACE)
42
+ string.scrub(REPLACE)
43
43
  end
44
44
  else
45
45
  def remove_invalid_bytes(string)
data/lib/raven/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Raven
3
3
  # Freezing this constant breaks in 1.9.x
4
- VERSION = "2.9.0" # rubocop:disable Style/MutableConstant
4
+ VERSION = "2.13.0" # rubocop:disable Style/MutableConstant
5
5
  end
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 = "getsentry@googlegroups.com"
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.9.0
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-01-22 00:00:00.000000000 Z
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: getsentry@googlegroups.com
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
- rubyforge_project:
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