sentry-rails 5.3.1 → 5.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b255fd547bc910c8b262313a201b4b9f576e5592dfcf26c704612b885c097e72
4
- data.tar.gz: bc43797324455c60625c2261762bc189068d913270302ec11c630757862a566f
3
+ metadata.gz: ea442f30a8d61b36170660802c51be9e98ffd3591d5298e6a17a39556dcfba5f
4
+ data.tar.gz: '079dbb354bc8c43a25308fb84a63bfedfe67d51aa5c4265ed78441dd39e989e9'
5
5
  SHA512:
6
- metadata.gz: c324cab29bd0560073f9a8d2b60104f9f278dcedef26e3cd02ac9bf955846ba96acfc3c1d4fc96b19543144d18c6812fe86394fd375ce353fc57b8f140b81e30
7
- data.tar.gz: e7558d5f6741b078fb1c9826887e0f851f156c5155b3eb67f0d6013016338a9d2906ab56271bc87cdb49416a3d7609e9898d38c4e4fe7b8575b4a65df5dc3084
6
+ metadata.gz: 10116c6cad137020fcbb2569ce0f6d3e57311e28e69851f0ee8bf368c1a382bc8502545a4fd1ae9c8df29bf23495776a7ac4c78161f799c0aa4ee3661561a88c
7
+ data.tar.gz: b78500b50cad9faad612a8e085f4263bcac024b59fda04457751fc3fe85deae1557af6cde9c5a5c820bab7e9427c1fcb7a31ca2149369e08c8fccc41686ab535
data/Gemfile CHANGED
@@ -18,12 +18,14 @@ else
18
18
  gem "sqlite3", platform: :ruby
19
19
  end
20
20
 
21
- if rails_version >= Gem::Version.new("7.0.0")
22
- gem "rails", github: "rails/rails", branch: "7-0-stable"
21
+ if rails_version > Gem::Version.new("7.0.0")
22
+ gem "rails", github: "rails/rails"
23
23
  else
24
24
  gem "rails", "~> #{rails_version}"
25
25
  end
26
26
 
27
+ gem "mini_magick"
28
+
27
29
  gem "sprockets-rails"
28
30
 
29
31
  gem "sidekiq"
@@ -20,14 +20,21 @@ module Sentry
20
20
  "rails.request".freeze
21
21
  end
22
22
 
23
- def capture_exception(exception)
23
+ def capture_exception(exception, env)
24
+ request = ActionDispatch::Request.new(env)
25
+
26
+ # the exception will be swallowed by ShowExceptions middleware
27
+ return if request.show_exceptions? && !Sentry.configuration.rails.report_rescued_exceptions
28
+
24
29
  current_scope = Sentry.get_current_scope
25
30
 
26
- if original_transaction = current_scope.rack_env["sentry.original_transaction"]
31
+ if original_transaction = env["sentry.original_transaction"]
27
32
  current_scope.set_transaction_name(original_transaction)
28
33
  end
29
34
 
30
- Sentry::Rails.capture_exception(exception)
35
+ Sentry::Rails.capture_exception(exception).tap do |event|
36
+ env[ERROR_EVENT_ID_KEY] = event.event_id if event
37
+ end
31
38
  end
32
39
 
33
40
  def start_transaction(env, scope)
@@ -3,8 +3,17 @@ module Sentry
3
3
  # This is not a user-facing class. You should use it with Rails 7.0's error reporter feature and its interfaces.
4
4
  # See https://github.com/rails/rails/blob/main/activesupport/lib/active_support/error_reporter.rb for more information.
5
5
  class ErrorSubscriber
6
- def report(error, handled:, severity:, context:)
7
- Sentry::Rails.capture_exception(error, level: severity, contexts: { "rails.error" => context }, tags: { handled: handled })
6
+ SKIP_SOURCES = Regexp.union([/.*_cache_store.active_support/])
7
+
8
+ def report(error, handled:, severity:, context:, source: nil)
9
+ tags = { handled: handled }
10
+
11
+ if source
12
+ return if SKIP_SOURCES.match?(source)
13
+ tags[:source] = source
14
+ end
15
+
16
+ Sentry::Rails.capture_exception(error, level: severity, contexts: { "rails.error" => context }, tags: tags)
8
17
  end
9
18
  end
10
19
  end
@@ -53,6 +53,11 @@ module Sentry
53
53
  runner do
54
54
  next unless Sentry.initialized?
55
55
  Sentry.configuration.background_worker_threads = 0
56
+
57
+ at_exit do
58
+ # TODO: Add a condition for Rails 7.1 to avoid confliction with https://github.com/rails/rails/pull/44999
59
+ Sentry::Rails.capture_exception($ERROR_INFO, tags: { source: "runner" }) if $ERROR_INFO
60
+ end
56
61
  end
57
62
 
58
63
  def configure_project_root
@@ -1,5 +1,5 @@
1
1
  module Sentry
2
2
  module Rails
3
- VERSION = "5.3.1"
3
+ VERSION = "5.4.0"
4
4
  end
5
5
  end
data/sentry-rails.gemspec CHANGED
@@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ["lib"]
24
24
 
25
25
  spec.add_dependency "railties", ">= 5.0"
26
- spec.add_dependency "sentry-ruby-core", "~> 5.3.1"
26
+ spec.add_dependency "sentry-ruby", "~> 5.4.0"
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentry-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.1
4
+ version: 5.4.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: 2022-05-14 00:00:00.000000000 Z
11
+ date: 2022-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '5.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: sentry-ruby-core
28
+ name: sentry-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 5.3.1
33
+ version: 5.4.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 5.3.1
40
+ version: 5.4.0
41
41
  description: A gem that provides Rails integration for the Sentry error logger
42
42
  email: accounts@sentry.io
43
43
  executables: []