sentry-raven 2.11.2 → 3.0.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: 42d2afd51625b412a13b5e9ce97001b0aead5d4b
4
- data.tar.gz: 80ed626d029a1b20b83da559c4e99f75a948cb86
2
+ SHA256:
3
+ metadata.gz: 6c812e5ab292c9f9351064bfc75f13bf3f6fff8ea1163a79a0e7da2e5efa9afb
4
+ data.tar.gz: 2fb7356fa0b26ee6f8a09a8ab023a21dcee132aa75fd3d1d87fd5f528a1c3366
5
5
  SHA512:
6
- metadata.gz: 260d59bc76e52f15a41276734033f328d487ce3a72afc0b423efd5ec9ce6ea0153d8409bbe1c3a841489824c53eeee2d3bd838f67cedb4ddbc05789ee8f05b19
7
- data.tar.gz: 3258b6163265fa78ec8ed3f07e8e3905e3e11793354eb1b784a096878aafb4b01230d0bf44b8c07205f91cc7335594f9cda41d5728c2666bcda836ab8b7c1975
6
+ metadata.gz: b406e28322db6c9e96db35d108521f617c484cdef0367a6ea246709356d61b5917795289c3caf1cc7324f3228fba349a8b3f9a2b45aeaef0d01872848540db2a
7
+ data.tar.gz: f079139a9cf52c7344d28d55eec1fc108c237c76c23df7880122e66851d858bce86da817887d5a83f35c9732c619328178bfdd6f8cb6742c84024f0445710fed
data/.travis.yml CHANGED
@@ -10,11 +10,11 @@ branches:
10
10
  only: [master]
11
11
 
12
12
  rvm:
13
- - 2.2.10
14
13
  - 2.3.8
15
- - 2.4.6
16
- - 2.5.5
17
- - 2.6.3
14
+ - 2.4.9
15
+ - 2.5.7
16
+ - 2.6.5
17
+ - 2.7.0
18
18
 
19
19
  env:
20
20
  - RAILS_VERSION=4
@@ -33,13 +33,9 @@ before_install:
33
33
 
34
34
  matrix:
35
35
  include:
36
- - rvm: 1.9
37
- env: RAILS_VERSION=4
38
- - rvm: jruby-1.7.27
39
- env: JRUBY_OPTS="--dev" RAILS_VERSION=4
40
- - rvm: jruby-9.2.8.0
36
+ - rvm: jruby-9.2.9.0
41
37
  env: JRUBY_OPTS="--dev -J-Djruby.launch.inproc=true -J-Xmx1024M" RAILS_VERSION=4
42
- - rvm: jruby-9.2.8.0
38
+ - rvm: jruby-9.2.9.0
43
39
  env: JRUBY_OPTS="--dev -J-Djruby.launch.inproc=true -J-Xmx1024M" RAILS_VERSION=5
44
40
  - rvm: ruby-head
45
41
  env: RAILS_VERSION=0
data/README.md CHANGED
@@ -19,7 +19,7 @@ The official Ruby-language client and integration layer for the [Sentry](https:/
19
19
 
20
20
  ## Requirements
21
21
 
22
- We test on Ruby 1.9, 2.2, 2.3, and 2.4 at the latest patchlevel/teeny version. We also support JRuby 1.7 and 9.0. Our Rails integration works with Rails 4.2+ (including Rails 5).
22
+ We test on Ruby 2.3, 2.4, 2.5, 2.6 and 2.7 at the latest patchlevel/teeny version. We also support JRuby 9.0. Our Rails integration works with Rails 4.2+ (including Rails 5).
23
23
 
24
24
  ## Getting Started
25
25
 
@@ -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,46 @@
1
+ 3.0.0
2
+ ----
3
+
4
+ * SDK now requires Ruby >= 2.3
5
+ * REF: Retain any literal "HTTP-" in header names [@elliterate, #950]
6
+ * REF: Delete JSON spec for recursive hashes [@ksylvest, #952]
7
+ * FEAT: Bump faraday version to latest [@ksylvest, #946]
8
+
9
+ 2.13.0
10
+ ----
11
+
12
+ * FIX: Sanitize event data before they are sent to async job. [@edariedl, #895]
13
+ * FIX: Serialization MongoDB ObjectId to JSON problem with gem delayed_job_mongoid conjunction. [@eagleas, #935]
14
+ * FEAT: Skip ActiveJob integration if there is a better one [@fsateler, #909]
15
+ * FIX: Bugs with send_event in asynchronous mode (#940) [@cstyles, #940]
16
+
17
+ 2.12.3
18
+ ----
19
+
20
+ * FIX: crash when Process.wait is used [@asBrettisay, #895]
21
+
22
+ 2.12.2
23
+ ----
24
+
25
+ * FIX: return tags/extra for [@rivayama, #931]
26
+
27
+ 2.12.1
28
+ ----
29
+
30
+ * FIX: undefined method `[]' for nil:NilClass [@HazAT, #932]
31
+
32
+ 2.12.0
33
+ ----
34
+
35
+ * FIX: Remove duplicate message when exception is emitted
36
+ * FIX: Frozen string bug in utf8conversation
37
+ * FEATURE: Allow block on tags_context and extra_context
38
+
39
+ 2.11.3
40
+ ----
41
+
42
+ * FIX: infinite backoff under pressure [@Bonias, #886]
43
+
1
44
  2.11.2
2
45
  ----
3
46
 
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
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,8 +113,8 @@ module Raven
100
113
  end
101
114
 
102
115
  def failed_send(e, event)
103
- @state.failure
104
116
  if e # exception was raised
117
+ @state.failure
105
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
120
  configuration.logger.warn "Not sending event due to previous failure(s)."
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
 
@@ -113,7 +113,7 @@ module Raven
113
113
 
114
114
  next unless key.start_with?('HTTP_') || %w(CONTENT_TYPE CONTENT_LENGTH).include?(key)
115
115
  # Rack stores headers as HTTP_WHAT_EVER, we need What-Ever
116
- key = key.gsub("HTTP_", "")
116
+ key = key.sub(/^HTTP_/, "")
117
117
  key = key.split('_').map(&:capitalize).join('-')
118
118
  memo[key] = value
119
119
  rescue StandardError => e
@@ -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!
@@ -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.11.2" # rubocop:disable Style/MutableConstant
4
+ VERSION = "3.0.0" # rubocop:disable Style/MutableConstant
5
5
  end
data/sentry-raven.gemspec CHANGED
@@ -11,11 +11,11 @@ Gem::Specification.new do |gem|
11
11
 
12
12
  gem.version = Raven::VERSION
13
13
  gem.platform = Gem::Platform::RUBY
14
- gem.required_ruby_version = '>= 1.9.0'
14
+ gem.required_ruby_version = '>= 2.3'
15
15
  gem.extra_rdoc_files = ["README.md", "LICENSE"]
16
16
  gem.files = `git ls-files | grep -Ev '^(spec|benchmarks|examples)'`.split("\n")
17
17
  gem.bindir = "exe"
18
18
  gem.executables = "raven"
19
19
 
20
- gem.add_dependency "faraday", ">= 0.7.6", "< 1.0"
20
+ gem.add_dependency "faraday", ">= 1.0"
21
21
  end
metadata CHANGED
@@ -1,23 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentry-raven
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.2
4
+ version: 3.0.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-09-17 00:00:00.000000000 Z
11
+ date: 2020-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.7.6
20
- - - "<"
21
18
  - !ruby/object:Gem::Version
22
19
  version: '1.0'
23
20
  type: :runtime
@@ -25,9 +22,6 @@ dependencies:
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
- - !ruby/object:Gem::Version
29
- version: 0.7.6
30
- - - "<"
31
25
  - !ruby/object:Gem::Version
32
26
  version: '1.0'
33
27
  description: A gem that provides a client interface for the Sentry error logger
@@ -114,15 +108,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
108
  requirements:
115
109
  - - ">="
116
110
  - !ruby/object:Gem::Version
117
- version: 1.9.0
111
+ version: '2.3'
118
112
  required_rubygems_version: !ruby/object:Gem::Requirement
119
113
  requirements:
120
114
  - - ">="
121
115
  - !ruby/object:Gem::Version
122
116
  version: '0'
123
117
  requirements: []
124
- rubyforge_project:
125
- rubygems_version: 2.5.2.3
118
+ rubygems_version: 3.0.3
126
119
  signing_key:
127
120
  specification_version: 4
128
121
  summary: A gem that provides a client interface for the Sentry error logger