sentry-rails 5.20.1 → 5.22.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 +4 -4
- data/Gemfile +27 -23
- data/Rakefile +2 -0
- data/app/jobs/sentry/send_event_job.rb +2 -0
- data/bin/console +1 -0
- data/lib/generators/sentry_generator.rb +2 -0
- data/lib/sentry/rails/action_cable.rb +3 -1
- data/lib/sentry/rails/active_job.rb +4 -2
- data/lib/sentry/rails/background_worker.rb +2 -0
- data/lib/sentry/rails/backtrace_cleaner.rb +7 -7
- data/lib/sentry/rails/breadcrumb/active_support_logger.rb +2 -0
- data/lib/sentry/rails/breadcrumb/monotonic_active_support_logger.rb +2 -0
- data/lib/sentry/rails/capture_exceptions.rb +4 -2
- data/lib/sentry/rails/configuration.rb +4 -0
- data/lib/sentry/rails/controller_methods.rb +2 -0
- data/lib/sentry/rails/controller_transaction.rb +7 -3
- data/lib/sentry/rails/engine.rb +2 -0
- data/lib/sentry/rails/error_subscriber.rb +16 -1
- data/lib/sentry/rails/instrument_payload_cleanup_helper.rb +2 -0
- data/lib/sentry/rails/overrides/streaming_reporter.rb +2 -0
- data/lib/sentry/rails/railtie.rb +2 -0
- data/lib/sentry/rails/rescued_exception_interceptor.rb +12 -1
- data/lib/sentry/rails/tracing/abstract_subscriber.rb +2 -0
- data/lib/sentry/rails/tracing/action_controller_subscriber.rb +4 -2
- data/lib/sentry/rails/tracing/action_view_subscriber.rb +4 -2
- data/lib/sentry/rails/tracing/active_storage_subscriber.rb +4 -2
- data/lib/sentry/rails/tracing/active_support_subscriber.rb +63 -0
- data/lib/sentry/rails/tracing.rb +2 -0
- data/lib/sentry/rails/version.rb +3 -1
- data/lib/sentry/rails.rb +2 -0
- data/lib/sentry-rails.rb +2 -0
- data/sentry-rails.gemspec +3 -1
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8bedf276549ddb2522027c7c8de8cfcecae915f5760fef3057d47512533ead95
|
4
|
+
data.tar.gz: 37b3bfa86da3eea8f64d8d55142358ee7fcc3ad3e6f468751cd26eed81967e2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d91f74cc7780297d352c28da1f631aaf6cc68f2121c23996e4e76e82f747f2ee10ffd95744a03926752fe2a46491c9600e2aef84552940d9a8a98638ffad7ff
|
7
|
+
data.tar.gz: d150984b74034e144df813124c21d9f21e41fab9ef66c176626d856e45f5ae2d610a2470ec65de22a5d44dfb25cf42484241ad071efdd7350ca7e5429baa403b
|
data/Gemfile
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
source "https://rubygems.org"
|
2
4
|
git_source(:github) { |name| "https://github.com/#{name}.git" }
|
3
5
|
|
@@ -10,40 +12,38 @@ platform :jruby do
|
|
10
12
|
gem "jdbc-sqlite3"
|
11
13
|
end
|
12
14
|
|
15
|
+
ruby_version = Gem::Version.new(RUBY_VERSION)
|
16
|
+
|
13
17
|
rails_version = ENV["RAILS_VERSION"]
|
14
|
-
rails_version = "
|
18
|
+
rails_version = "8.0.0" if rails_version.nil?
|
15
19
|
rails_version = Gem::Version.new(rails_version)
|
16
20
|
|
17
|
-
|
18
|
-
gem "sqlite3", "~> 1.3.0", platform: :ruby
|
19
|
-
else
|
20
|
-
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.7.0")
|
21
|
-
gem "sqlite3", "~> 1.7.3", platform: :ruby
|
22
|
-
else
|
23
|
-
gem "sqlite3", "~> 1.6.9", platform: :ruby
|
24
|
-
end
|
25
|
-
end
|
21
|
+
gem "rails", "~> #{rails_version}"
|
26
22
|
|
27
|
-
if rails_version >= Gem::Version.new("8.0.0
|
28
|
-
gem "rails", github: "rails/rails"
|
23
|
+
if rails_version >= Gem::Version.new("8.0.0")
|
29
24
|
gem "rspec-rails"
|
25
|
+
gem "sqlite3", platform: :ruby
|
30
26
|
elsif rails_version >= Gem::Version.new("7.1.0")
|
31
|
-
gem "rails", "~> #{rails_version}"
|
32
27
|
gem "rspec-rails"
|
28
|
+
gem "sqlite3", "~> 1.7.3", platform: :ruby
|
29
|
+
elsif rails_version >= Gem::Version.new("6.1.0")
|
30
|
+
gem "rspec-rails", "~> 4.0"
|
31
|
+
|
32
|
+
if ruby_version >= Gem::Version.new("2.7.0")
|
33
|
+
gem "sqlite3", "~> 1.7.3", platform: :ruby
|
34
|
+
else
|
35
|
+
gem "sqlite3", "~> 1.6.9", platform: :ruby
|
36
|
+
end
|
33
37
|
else
|
34
38
|
gem "rspec-rails", "~> 4.0"
|
35
|
-
gem "rails", "~> #{rails_version}"
|
36
39
|
gem "psych", "~> 3.0.0"
|
37
|
-
end
|
38
|
-
|
39
|
-
gem "mini_magick"
|
40
|
-
|
41
|
-
gem "sprockets-rails"
|
42
|
-
|
43
|
-
gem "sidekiq"
|
44
40
|
|
45
|
-
|
46
|
-
|
41
|
+
if rails_version >= Gem::Version.new("6.0.0")
|
42
|
+
gem "sqlite3", "~> 1.4.0", platform: :ruby
|
43
|
+
else
|
44
|
+
gem "sqlite3", "~> 1.3.0", platform: :ruby
|
45
|
+
end
|
46
|
+
end
|
47
47
|
|
48
48
|
if ruby_version < Gem::Version.new("2.5.0")
|
49
49
|
# https://github.com/flavorjones/loofah/pull/267
|
@@ -51,6 +51,10 @@ if ruby_version < Gem::Version.new("2.5.0")
|
|
51
51
|
gem "loofah", "2.20.0"
|
52
52
|
end
|
53
53
|
|
54
|
+
gem "mini_magick"
|
55
|
+
|
56
|
+
gem "sprockets-rails"
|
57
|
+
|
54
58
|
gem "benchmark-ips"
|
55
59
|
gem "benchmark_driver"
|
56
60
|
gem "benchmark-ipsa"
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Sentry
|
2
4
|
module Rails
|
3
5
|
module ActiveJobExtensions
|
@@ -16,8 +18,8 @@ module Sentry
|
|
16
18
|
end
|
17
19
|
|
18
20
|
class SentryReporter
|
19
|
-
OP_NAME = "queue.active_job"
|
20
|
-
SPAN_ORIGIN = "auto.queue.active_job"
|
21
|
+
OP_NAME = "queue.active_job"
|
22
|
+
SPAN_ORIGIN = "auto.queue.active_job"
|
21
23
|
|
22
24
|
class << self
|
23
25
|
def record(job, &block)
|
@@ -1,21 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "active_support/backtrace_cleaner"
|
2
4
|
require "active_support/core_ext/string/access"
|
3
5
|
|
4
6
|
module Sentry
|
5
7
|
module Rails
|
6
8
|
class BacktraceCleaner < ActiveSupport::BacktraceCleaner
|
7
|
-
APP_DIRS_PATTERN = /\A(?:\.\/)?(?:app|config|lib|test|\(\w*\))
|
8
|
-
RENDER_TEMPLATE_PATTERN = /:in `.*_\w+_{2,3}\d+_\d+'
|
9
|
+
APP_DIRS_PATTERN = /\A(?:\.\/)?(?:app|config|lib|test|\(\w*\))/
|
10
|
+
RENDER_TEMPLATE_PATTERN = /:in `.*_\w+_{2,3}\d+_\d+'/
|
9
11
|
|
10
12
|
def initialize
|
11
13
|
super
|
12
|
-
#
|
14
|
+
# We don't want any default silencers because they're too aggressive
|
13
15
|
remove_silencers!
|
16
|
+
# We don't want any default filters because Rails 7.2 starts shortening the paths. See #2472
|
17
|
+
remove_filters!
|
14
18
|
|
15
|
-
@root = "#{Sentry.configuration.project_root}/"
|
16
|
-
add_filter do |line|
|
17
|
-
line.start_with?(@root) ? line.from(@root.size) : line
|
18
|
-
end
|
19
19
|
add_filter do |line|
|
20
20
|
if line =~ RENDER_TEMPLATE_PATTERN
|
21
21
|
line.sub(RENDER_TEMPLATE_PATTERN, "")
|
@@ -1,8 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Sentry
|
2
4
|
module Rails
|
3
5
|
class CaptureExceptions < Sentry::Rack::CaptureExceptions
|
4
6
|
RAILS_7_1 = Gem::Version.new(::Rails.version) >= Gem::Version.new("7.1.0.alpha")
|
5
|
-
SPAN_ORIGIN = "auto.http.rails"
|
7
|
+
SPAN_ORIGIN = "auto.http.rails"
|
6
8
|
|
7
9
|
def initialize(_)
|
8
10
|
super
|
@@ -20,7 +22,7 @@ module Sentry
|
|
20
22
|
end
|
21
23
|
|
22
24
|
def transaction_op
|
23
|
-
"http.server"
|
25
|
+
"http.server"
|
24
26
|
end
|
25
27
|
|
26
28
|
def capture_exception(exception, env)
|
@@ -1,7 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "sentry/rails/tracing/action_controller_subscriber"
|
2
4
|
require "sentry/rails/tracing/action_view_subscriber"
|
3
5
|
require "sentry/rails/tracing/active_record_subscriber"
|
4
6
|
require "sentry/rails/tracing/active_storage_subscriber"
|
7
|
+
require "sentry/rails/tracing/active_support_subscriber"
|
5
8
|
|
6
9
|
module Sentry
|
7
10
|
class Configuration
|
@@ -162,6 +165,7 @@ module Sentry
|
|
162
165
|
end
|
163
166
|
@tracing_subscribers = Set.new([
|
164
167
|
Sentry::Rails::Tracing::ActionViewSubscriber,
|
168
|
+
Sentry::Rails::Tracing::ActiveSupportSubscriber,
|
165
169
|
Sentry::Rails::Tracing::ActiveRecordSubscriber,
|
166
170
|
Sentry::Rails::Tracing::ActiveStorageSubscriber
|
167
171
|
])
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Sentry
|
2
4
|
module Rails
|
3
5
|
module ControllerTransaction
|
4
|
-
SPAN_ORIGIN = "auto.view.rails"
|
6
|
+
SPAN_ORIGIN = "auto.view.rails"
|
5
7
|
|
6
8
|
def self.included(base)
|
7
9
|
base.prepend_around_action(:sentry_around_action)
|
@@ -21,8 +23,10 @@ module Sentry
|
|
21
23
|
child_span.set_http_status(response.status)
|
22
24
|
child_span.set_data(:format, request.format)
|
23
25
|
child_span.set_data(:method, request.method)
|
24
|
-
|
25
|
-
|
26
|
+
|
27
|
+
pii = Sentry.configuration.send_default_pii
|
28
|
+
child_span.set_data(:path, pii ? request.fullpath : request.filtered_path)
|
29
|
+
child_span.set_data(:params, pii ? request.params : request.filtered_parameters)
|
26
30
|
end
|
27
31
|
|
28
32
|
result
|
data/lib/sentry/rails/engine.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Sentry
|
2
4
|
module Rails
|
3
5
|
# This is not a user-facing class. You should use it with Rails 7.0's error reporter feature and its interfaces.
|
@@ -25,7 +27,20 @@ module Sentry
|
|
25
27
|
hint.merge!(context.delete(:hint))
|
26
28
|
end
|
27
29
|
|
28
|
-
|
30
|
+
options = { level: severity, contexts: { "rails.error" => context }, tags: tags, hint: hint }
|
31
|
+
|
32
|
+
case error
|
33
|
+
when String
|
34
|
+
Sentry::Rails.capture_message(error, **options)
|
35
|
+
when Exception
|
36
|
+
Sentry::Rails.capture_exception(error, **options)
|
37
|
+
else
|
38
|
+
log_debug("Expected an Exception or a String, got: #{error.inspect}")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def log_debug(message)
|
43
|
+
Sentry.configuration.logger.debug(message)
|
29
44
|
end
|
30
45
|
end
|
31
46
|
end
|
data/lib/sentry/rails/railtie.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Sentry
|
2
4
|
module Rails
|
3
5
|
class RescuedExceptionInterceptor
|
@@ -17,7 +19,16 @@ module Sentry
|
|
17
19
|
end
|
18
20
|
|
19
21
|
def report_rescued_exceptions?
|
20
|
-
Sentry.configuration.
|
22
|
+
# In rare edge cases, `Sentry.configuration` might be `nil` here.
|
23
|
+
# Hence, we use a safe navigation and fallback to a reasonable default
|
24
|
+
# of `true` in case the configuration couldn't be loaded.
|
25
|
+
# See https://github.com/getsentry/sentry-ruby/issues/2386
|
26
|
+
report_rescued_exceptions = Sentry.configuration&.rails&.report_rescued_exceptions
|
27
|
+
return report_rescued_exceptions unless report_rescued_exceptions.nil?
|
28
|
+
|
29
|
+
# `true` is the default for `report_rescued_exceptions`, as specified in
|
30
|
+
# `sentry-rails/lib/sentry/rails/configuration.rb`.
|
31
|
+
true
|
21
32
|
end
|
22
33
|
end
|
23
34
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "sentry/rails/tracing/abstract_subscriber"
|
2
4
|
require "sentry/rails/instrument_payload_cleanup_helper"
|
3
5
|
|
@@ -8,8 +10,8 @@ module Sentry
|
|
8
10
|
extend InstrumentPayloadCleanupHelper
|
9
11
|
|
10
12
|
EVENT_NAMES = ["process_action.action_controller"].freeze
|
11
|
-
OP_NAME = "view.process_action.action_controller"
|
12
|
-
SPAN_ORIGIN = "auto.view.rails"
|
13
|
+
OP_NAME = "view.process_action.action_controller"
|
14
|
+
SPAN_ORIGIN = "auto.view.rails"
|
13
15
|
|
14
16
|
def self.subscribe!
|
15
17
|
Sentry.logger.warn <<~MSG
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "sentry/rails/tracing/abstract_subscriber"
|
2
4
|
|
3
5
|
module Sentry
|
@@ -5,8 +7,8 @@ module Sentry
|
|
5
7
|
module Tracing
|
6
8
|
class ActionViewSubscriber < AbstractSubscriber
|
7
9
|
EVENT_NAMES = ["render_template.action_view"].freeze
|
8
|
-
SPAN_PREFIX = "template."
|
9
|
-
SPAN_ORIGIN = "auto.template.rails"
|
10
|
+
SPAN_PREFIX = "template."
|
11
|
+
SPAN_ORIGIN = "auto.template.rails"
|
10
12
|
|
11
13
|
def self.subscribe!
|
12
14
|
subscribe_to_event(EVENT_NAMES) do |event_name, duration, payload|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "sentry/rails/tracing/abstract_subscriber"
|
2
4
|
|
3
5
|
module Sentry
|
@@ -19,12 +21,12 @@ module Sentry
|
|
19
21
|
analyze.active_storage
|
20
22
|
].freeze
|
21
23
|
|
22
|
-
SPAN_ORIGIN = "auto.file.rails"
|
24
|
+
SPAN_ORIGIN = "auto.file.rails"
|
23
25
|
|
24
26
|
def self.subscribe!
|
25
27
|
subscribe_to_event(EVENT_NAMES) do |event_name, duration, payload|
|
26
28
|
record_on_current_span(
|
27
|
-
op: "file.#{event_name}"
|
29
|
+
op: "file.#{event_name}",
|
28
30
|
origin: SPAN_ORIGIN,
|
29
31
|
start_timestamp: payload[START_TIMESTAMP_NAME],
|
30
32
|
description: payload[:service],
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "sentry/rails/tracing/abstract_subscriber"
|
4
|
+
|
5
|
+
module Sentry
|
6
|
+
module Rails
|
7
|
+
module Tracing
|
8
|
+
class ActiveSupportSubscriber < AbstractSubscriber
|
9
|
+
READ_EVENT_NAMES = %w[
|
10
|
+
cache_read.active_support
|
11
|
+
].freeze
|
12
|
+
|
13
|
+
WRITE_EVENT_NAMES = %w[
|
14
|
+
cache_write.active_support
|
15
|
+
cache_increment.active_support
|
16
|
+
cache_decrement.active_support
|
17
|
+
].freeze
|
18
|
+
|
19
|
+
REMOVE_EVENT_NAMES = %w[
|
20
|
+
cache_delete.active_support
|
21
|
+
].freeze
|
22
|
+
|
23
|
+
FLUSH_EVENT_NAMES = %w[
|
24
|
+
cache_prune.active_support
|
25
|
+
].freeze
|
26
|
+
|
27
|
+
EVENT_NAMES = READ_EVENT_NAMES + WRITE_EVENT_NAMES + REMOVE_EVENT_NAMES + FLUSH_EVENT_NAMES
|
28
|
+
|
29
|
+
SPAN_ORIGIN = "auto.cache.rails"
|
30
|
+
|
31
|
+
def self.subscribe!
|
32
|
+
subscribe_to_event(EVENT_NAMES) do |event_name, duration, payload|
|
33
|
+
record_on_current_span(
|
34
|
+
op: operation_name(event_name),
|
35
|
+
origin: SPAN_ORIGIN,
|
36
|
+
start_timestamp: payload[START_TIMESTAMP_NAME],
|
37
|
+
description: payload[:store],
|
38
|
+
duration: duration
|
39
|
+
) do |span|
|
40
|
+
span.set_data("cache.key", [*payload[:key]].select { |key| Utils::EncodingHelper.valid_utf_8?(key) })
|
41
|
+
span.set_data("cache.hit", payload[:hit] == true) # Handle nil case
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.operation_name(event_name)
|
47
|
+
case
|
48
|
+
when READ_EVENT_NAMES.include?(event_name)
|
49
|
+
"cache.get"
|
50
|
+
when WRITE_EVENT_NAMES.include?(event_name)
|
51
|
+
"cache.put"
|
52
|
+
when REMOVE_EVENT_NAMES.include?(event_name)
|
53
|
+
"cache.remove"
|
54
|
+
when FLUSH_EVENT_NAMES.include?(event_name)
|
55
|
+
"cache.flush"
|
56
|
+
else
|
57
|
+
"other"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
data/lib/sentry/rails/tracing.rb
CHANGED
data/lib/sentry/rails/version.rb
CHANGED
data/lib/sentry/rails.rb
CHANGED
data/lib/sentry-rails.rb
CHANGED
data/sentry-rails.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative "lib/sentry/rails/version"
|
2
4
|
|
3
5
|
Gem::Specification.new do |spec|
|
@@ -29,5 +31,5 @@ Gem::Specification.new do |spec|
|
|
29
31
|
spec.require_paths = ["lib"]
|
30
32
|
|
31
33
|
spec.add_dependency "railties", ">= 5.0"
|
32
|
-
spec.add_dependency "sentry-ruby", "~> 5.
|
34
|
+
spec.add_dependency "sentry-ruby", "~> 5.22.0"
|
33
35
|
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.
|
4
|
+
version: 5.22.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: 2024-
|
11
|
+
date: 2024-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 5.
|
33
|
+
version: 5.22.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.
|
40
|
+
version: 5.22.0
|
41
41
|
description: A gem that provides Rails integration for the Sentry error logger
|
42
42
|
email: accounts@sentry.io
|
43
43
|
executables: []
|
@@ -82,17 +82,18 @@ files:
|
|
82
82
|
- lib/sentry/rails/tracing/action_view_subscriber.rb
|
83
83
|
- lib/sentry/rails/tracing/active_record_subscriber.rb
|
84
84
|
- lib/sentry/rails/tracing/active_storage_subscriber.rb
|
85
|
+
- lib/sentry/rails/tracing/active_support_subscriber.rb
|
85
86
|
- lib/sentry/rails/version.rb
|
86
87
|
- sentry-rails.gemspec
|
87
|
-
homepage: https://github.com/getsentry/sentry-ruby/tree/5.
|
88
|
+
homepage: https://github.com/getsentry/sentry-ruby/tree/5.22.0/sentry-rails
|
88
89
|
licenses:
|
89
90
|
- MIT
|
90
91
|
metadata:
|
91
|
-
homepage_uri: https://github.com/getsentry/sentry-ruby/tree/5.
|
92
|
-
source_code_uri: https://github.com/getsentry/sentry-ruby/tree/5.
|
93
|
-
changelog_uri: https://github.com/getsentry/sentry-ruby/blob/5.
|
92
|
+
homepage_uri: https://github.com/getsentry/sentry-ruby/tree/5.22.0/sentry-rails
|
93
|
+
source_code_uri: https://github.com/getsentry/sentry-ruby/tree/5.22.0/sentry-rails
|
94
|
+
changelog_uri: https://github.com/getsentry/sentry-ruby/blob/5.22.0/CHANGELOG.md
|
94
95
|
bug_tracker_uri: https://github.com/getsentry/sentry-ruby/issues
|
95
|
-
documentation_uri: http://www.rubydoc.info/gems/sentry-rails/5.
|
96
|
+
documentation_uri: http://www.rubydoc.info/gems/sentry-rails/5.22.0
|
96
97
|
post_install_message:
|
97
98
|
rdoc_options: []
|
98
99
|
require_paths:
|
@@ -108,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
109
|
- !ruby/object:Gem::Version
|
109
110
|
version: '0'
|
110
111
|
requirements: []
|
111
|
-
rubygems_version: 3.5.
|
112
|
+
rubygems_version: 3.5.22
|
112
113
|
signing_key:
|
113
114
|
specification_version: 4
|
114
115
|
summary: A gem that provides Rails integration for the Sentry error logger
|