sentry-rails 4.1.3 → 4.2.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
2
  SHA256:
3
- metadata.gz: 81491f8d74dfb70ff29222476cc66bb08bf2e3b7e2b013b881a8c79b9992ca04
4
- data.tar.gz: c2be7c2616fa93da1a096b4352b9b353745cc6972c27df72933908e700f7666a
3
+ metadata.gz: 88b2f50f7497ed668cc86fda80d8bbd653e3e01b3a7d3c3f7643e5de81de697c
4
+ data.tar.gz: e2ee2b20c9a85f947f4fcfe4f5c68b82226336aa54c73b5c116e767307bb4cd0
5
5
  SHA512:
6
- metadata.gz: 8d3b47180e068af27983bf72ab65b15bd0a96a312ab414f52b6724d82f1fbf17cab8093122778ed62b3990f5a9bd8ad8d32713562395bce88cd0b984f3490320
7
- data.tar.gz: 02226dc92b5d3f4ee08d95cc5710f4ee534cf2f5a71c1f8124ee5135948038e39b238e1e674874cb4810589b05d46a26c21040069f589e37cb389fbab9463979
6
+ metadata.gz: 1c86549b0348fec623ed863f9f11147d6cf04c20a7c8cd4ba96755959084f8d8436a8ee768edf5011230b7dfe62155aafcca7f1aaebf298a30d2dff1799c9310
7
+ data.tar.gz: f6ee86657ef5960e22fe72c826b86ee0992a16769416429ab791821b2d974672ebe83d3c8fead135554ad2acdda6c0f59ad4a1c291d0ae3e6e7dc8d1584dfee4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,70 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.2.0
4
+
5
+ ### Features
6
+
7
+ - Make sentry-rails a Rails engine and provide default job class for async [#1181](https://github.com/getsentry/sentry-ruby/pull/1181)
8
+
9
+ `sentry-rails` now provides a default ActiveJob class for sending events asynchronously. You can use it directly without define your own one:
10
+
11
+ ```ruby
12
+ config.async = lambda { |event, hint| Sentry::SendEventJob.perform_later(event, hint) }
13
+ ```
14
+
15
+ - Add configuration option for trusted proxies [#1126](https://github.com/getsentry/sentry-ruby/pull/1126)
16
+
17
+ `sentry-rails` now injects `Rails.application.config.action_dispatch.trusted_proxies` into `Sentry.configuration.trusted_proxies` automatically.
18
+
19
+ - Allow users to configure ActiveJob adapters to ignore [#1256](https://github.com/getsentry/sentry-ruby/pull/1256)
20
+
21
+ ```ruby
22
+ # sentry-rails will skip active_job reporting for jobs that use ActiveJob::QueueAdapters::SidekiqAdapter
23
+ # you should use this option when:
24
+ # - you don't want to see events from a certain adapter
25
+ # - you already have a better reporting setup for the adapter (like having `sentry-sidekiq` installed)
26
+ config.rails.skippable_job_adapters = ["ActiveJob::QueueAdapters::SidekiqAdapter"]
27
+ ```
28
+
29
+ - Tag `job_id` and `provider_job_id` on ActiveJob events [#1259](https://github.com/getsentry/sentry-ruby/pull/1259)
30
+
31
+ <img width="1330" alt="example of tagged event" src="https://user-images.githubusercontent.com/5079556/106389781-3a03f100-6420-11eb-810c-a99869eb26dd.png">
32
+
33
+ - Use another method for post initialization callback [#1261](https://github.com/getsentry/sentry-ruby/pull/1261)
34
+
35
+ ### Bug Fixes
36
+
37
+ - Inspect exception cause by default & don't exclude ActiveJob::DeserializationError [#1180](https://github.com/getsentry/sentry-ruby/pull/1180)
38
+ - Fixes [#1071](https://github.com/getsentry/sentry-ruby/issues/1071)
39
+
40
+ ## 4.1.7
41
+
42
+ - Use env to carry original transaction name [#1255](https://github.com/getsentry/sentry-ruby/pull/1255)
43
+ - Fix duration of tracing event in Rails 5 [#1254](https://github.com/getsentry/sentry-ruby/pull/1254) (by @abcang)
44
+ - Filter out static file transaction [#1247](https://github.com/getsentry/sentry-ruby/pull/1247)
45
+
46
+ ## 4.1.6
47
+
48
+ - Prevent exceptions app from overriding event's transaction name [#1230](https://github.com/getsentry/sentry-ruby/pull/1230)
49
+ - Fix project root detection [#1242](https://github.com/getsentry/sentry-ruby/pull/1242)
50
+ - Use sentry-ruby-core as the main SDK dependency [#1244](https://github.com/getsentry/sentry-ruby/pull/1244)
51
+
52
+ ## 4.1.5
53
+
54
+ - Add `ActionDispatch::Http::MimeNegotiation::InvalidType` to the list of default ignored Rails exceptions [#1215](https://github.com/getsentry/sentry-ruby/pull/1215) (by @agrobbin)
55
+ - Continue ActiveJob execution if Sentry is not initialized [#1217](https://github.com/getsentry/sentry-ruby/pull/1217)
56
+ - Fixes [#1211](https://github.com/getsentry/sentry-ruby/issues/1211) and [#1216](https://github.com/getsentry/sentry-ruby/issues/1216)
57
+ - Only extend ActiveJob when it's defined [#1218](https://github.com/getsentry/sentry-ruby/pull/1218)
58
+ - Fixes [#1210](https://github.com/getsentry/sentry-ruby/issues/1210)
59
+ - Filter out redundant event/payload from breadcrumbs logger [#1222](https://github.com/getsentry/sentry-ruby/pull/1222)
60
+ - Copy request env before Rails' ShowExceptions middleware [#1223](https://github.com/getsentry/sentry-ruby/pull/1223)
61
+ - Don't subscribe render_partial and render_collection events [#1224](https://github.com/getsentry/sentry-ruby/pull/1224)
62
+
63
+ ## 4.1.4
64
+
65
+ - Don't include headers & request info in tracing span or breadcrumb [#1199](https://github.com/getsentry/sentry-ruby/pull/1199)
66
+ - Don't run RescuedExceptionInterceptor unless Sentry is initialized [#1204](https://github.com/getsentry/sentry-ruby/pull/1204)
67
+
3
68
  ## 4.1.3
4
69
 
5
70
  - Remove DelayedJobAdapter from ignored list [#1179](https://github.com/getsentry/sentry-ruby/pull/1179)
@@ -47,4 +112,3 @@ Release test
47
112
  ## 0.1.0
48
113
 
49
114
  First version
50
-
data/Gemfile CHANGED
@@ -11,12 +11,16 @@ gem "jdbc-sqlite3", platform: :jruby
11
11
  gem "sqlite3", platform: :ruby
12
12
 
13
13
  gem "rails", "~> #{rails_version}"
14
+ gem "sprockets-rails"
14
15
  gem "rspec-rails", "~> 4.0"
15
16
  gem "codecov", "0.2.12"
16
17
 
17
18
  gem "rake", "~> 12.0"
18
19
  gem "rspec", "~> 3.0"
19
20
 
21
+ # TODO: Remove this if https://github.com/jruby/jruby/issues/6547 is addressed
22
+ gem "i18n", "<= 1.8.7"
23
+
20
24
  gem "sidekiq"
21
25
 
22
26
  gem "sentry-ruby", path: "../sentry-ruby"
data/Makefile ADDED
@@ -0,0 +1,3 @@
1
+ build:
2
+ bundle install
3
+ gem build sentry-rails.gemspec
data/README.md CHANGED
@@ -44,7 +44,7 @@ Sentry.init do |config|
44
44
  # the default value is true
45
45
  config.rails.report_rescued_exceptions = true
46
46
 
47
- # this gem also provides a new breadcrumb logger that accepts instrumentaions from ActiveSupport
47
+ # this gem also provides a new breadcrumb logger that accepts instrumentations from ActiveSupport
48
48
  # it's not activated by default, but you can enable it with
49
49
  config.breadcrumbs_logger = [:active_support_logger]
50
50
  end
@@ -0,0 +1,20 @@
1
+ return unless defined?(ActiveJob)
2
+
3
+ module Sentry
4
+ parent_job =
5
+ if defined?(ApplicationJob)
6
+ ApplicationJob
7
+ else
8
+ ActiveJob::Base
9
+ end
10
+
11
+ class SendEventJob < parent_job
12
+ self.log_arguments = false if ::Rails.version.to_f >= 6.1
13
+ discard_on ActiveJob::DeserializationError # this will prevent infinite loop when there's an issue deserializing SentryJob
14
+
15
+ def perform(event, hint = {})
16
+ Sentry.send_event(event, hint)
17
+ end
18
+ end
19
+ end
20
+
data/lib/sentry/rails.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "sentry-ruby"
2
2
  require "sentry/integrable"
3
3
  require "sentry/rails/configuration"
4
+ require "sentry/rails/engine"
4
5
  require "sentry/rails/railtie"
5
6
  require "sentry/rails/tracing"
6
7
 
@@ -1,19 +1,19 @@
1
1
  module Sentry
2
2
  module Rails
3
3
  module ActiveJobExtensions
4
- ALREADY_SUPPORTED_SENTRY_ADAPTERS = %w(
5
- ActiveJob::QueueAdapters::SidekiqAdapter
6
- ).freeze
7
-
8
4
  def self.included(base)
9
5
  base.class_eval do
10
6
  around_perform do |job, block|
11
- if already_supported_by_specific_integration?(job)
12
- block.call
13
- else
14
- Sentry.with_scope do
15
- capture_and_reraise_with_sentry(job, block)
7
+ if Sentry.initialized?
8
+ if already_supported_by_specific_integration?(job)
9
+ block.call
10
+ else
11
+ Sentry.with_scope do
12
+ capture_and_reraise_with_sentry(job, block)
13
+ end
16
14
  end
15
+ else
16
+ block.call
17
17
  end
18
18
  end
19
19
  end
@@ -25,28 +25,30 @@ module Sentry
25
25
  rescue_handler_result = rescue_with_handler(e)
26
26
  return rescue_handler_result if rescue_handler_result
27
27
 
28
- Sentry::Rails.capture_exception(e, extra: sentry_context(job))
28
+ Sentry::Rails.capture_exception(
29
+ e,
30
+ extra: sentry_context(job),
31
+ tags: {
32
+ job_id: job.job_id,
33
+ provider_job_id: job.provider_job_id
34
+ }
35
+ )
29
36
  raise e
30
37
  end
31
38
 
32
39
  def already_supported_by_specific_integration?(job)
33
- ALREADY_SUPPORTED_SENTRY_ADAPTERS.include?(job.class.queue_adapter.class.to_s)
40
+ Sentry.configuration.rails.skippable_job_adapters.include?(job.class.queue_adapter.class.to_s)
34
41
  end
35
42
 
36
43
  def sentry_context(job)
37
- ctx = {
38
- :active_job => job.class.name,
39
- :arguments => job.arguments,
40
- :scheduled_at => job.scheduled_at,
41
- :job_id => job.job_id,
42
- :locale => job.locale
44
+ {
45
+ active_job: job.class.name,
46
+ arguments: job.arguments,
47
+ scheduled_at: job.scheduled_at,
48
+ job_id: job.job_id,
49
+ provider_job_id: job.provider_job_id,
50
+ locale: job.locale
43
51
  }
44
- # Add provider_job_id details if Rails 5
45
- if job.respond_to?(:provider_job_id)
46
- ctx[:provider_job_id] = job.provider_job_id
47
- end
48
-
49
- ctx
50
52
  end
51
53
  end
52
54
  end
@@ -3,7 +3,18 @@ module Sentry
3
3
  module Breadcrumb
4
4
  module ActiveSupportLogger
5
5
  class << self
6
+ IGNORED_DATA_TYPES = [:request, :headers, :exception, :exception_object]
7
+
6
8
  def add(name, started, _finished, _unique_id, data)
9
+ # skip Rails' internal events
10
+ return if name.start_with?("!")
11
+
12
+ if data.is_a?(Hash)
13
+ # we should only mutate the copy of the data
14
+ data = data.dup
15
+ cleanup_data(data)
16
+ end
17
+
7
18
  crumb = Sentry::Breadcrumb.new(
8
19
  data: data,
9
20
  category: name,
@@ -12,6 +23,12 @@ module Sentry
12
23
  Sentry.add_breadcrumb(crumb)
13
24
  end
14
25
 
26
+ def cleanup_data(data)
27
+ IGNORED_DATA_TYPES.each do |key|
28
+ data.delete(key) if data.key?(key)
29
+ end
30
+ end
31
+
15
32
  def inject
16
33
  @subscriber = ::ActiveSupport::Notifications.subscribe(/.*/) do |name, started, finished, unique_id, data|
17
34
  # we only record events that has a started timestamp
@@ -1,6 +1,14 @@
1
1
  module Sentry
2
2
  module Rails
3
3
  class CaptureExceptions < Sentry::Rack::CaptureExceptions
4
+ def initialize(app)
5
+ super
6
+
7
+ if defined?(::Sprockets::Rails)
8
+ @assets_regex = %r(\A/{0,2}#{::Rails.application.config.assets.prefix})
9
+ end
10
+ end
11
+
4
12
  private
5
13
 
6
14
  def collect_exception(env)
@@ -12,8 +20,21 @@ module Sentry
12
20
  end
13
21
 
14
22
  def capture_exception(exception)
23
+ current_scope = Sentry.get_current_scope
24
+
25
+ if original_transaction = current_scope.rack_env["sentry.original_transaction"]
26
+ current_scope.set_transaction_name(original_transaction)
27
+ end
28
+
15
29
  Sentry::Rails.capture_exception(exception)
16
30
  end
31
+
32
+ def finish_span(span, status_code)
33
+ if @assets_regex.nil? || !span.name.match?(@assets_regex)
34
+ span.set_http_status(status_code)
35
+ span.finish
36
+ end
37
+ end
17
38
  end
18
39
  end
19
40
  end
@@ -2,7 +2,7 @@ module Sentry
2
2
  class Configuration
3
3
  attr_reader :rails
4
4
 
5
- def post_initialization_callback
5
+ add_post_initialization_callback do
6
6
  @rails = Sentry::Rails::Configuration.new
7
7
  @excluded_exceptions = @excluded_exceptions.concat(Sentry::Rails::IGNORE_DEFAULT)
8
8
  end
@@ -20,9 +20,9 @@ module Sentry
20
20
  'ActionController::RoutingError',
21
21
  'ActionController::UnknownAction',
22
22
  'ActionController::UnknownFormat',
23
+ 'ActionDispatch::Http::MimeNegotiation::InvalidType',
23
24
  'ActionController::UnknownHttpMethod',
24
25
  'ActionDispatch::Http::Parameters::ParseError',
25
- 'ActiveJob::DeserializationError', # Can cause infinite loops
26
26
  'ActiveRecord::RecordNotFound'
27
27
  ].freeze
28
28
  class Configuration
@@ -32,8 +32,14 @@ module Sentry
32
32
  # will report exceptions even when they are rescued by these middlewares.
33
33
  attr_accessor :report_rescued_exceptions
34
34
 
35
+ # Some adapters, like sidekiq, already have their own sentry integration.
36
+ # In those cases, we should skip ActiveJob's reporting to avoid duplicated reports.
37
+ attr_accessor :skippable_job_adapters
38
+
35
39
  def initialize
36
40
  @report_rescued_exceptions = true
41
+ # TODO: Remove this in 4.2.0
42
+ @skippable_job_adapters = []
37
43
  end
38
44
  end
39
45
  end
@@ -0,0 +1,5 @@
1
+ module Sentry
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Sentry
4
+ end
5
+ end
@@ -0,0 +1,16 @@
1
+ module Sentry
2
+ module Rails
3
+ module Overrides
4
+ module FileHandler
5
+ def serve(*args)
6
+ if Sentry.initialized? && current_transaction = Sentry.get_current_scope.span
7
+ # we don't want to expose a setter for @sampled just for this case
8
+ current_transaction.instance_variable_set(:@sampled, false)
9
+ end
10
+
11
+ super
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -4,8 +4,8 @@ require "sentry/rails/rescued_exception_interceptor"
4
4
  require "sentry/rails/backtrace_cleaner"
5
5
  require "sentry/rails/controller_methods"
6
6
  require "sentry/rails/controller_transaction"
7
- require "sentry/rails/active_job"
8
7
  require "sentry/rails/overrides/streaming_reporter"
8
+ require "sentry/rails/overrides/file_handler"
9
9
 
10
10
  module Sentry
11
11
  class Railtie < ::Rails::Railtie
@@ -17,23 +17,35 @@ module Sentry
17
17
  app.config.middleware.use(Sentry::Rails::RescuedExceptionInterceptor)
18
18
  end
19
19
 
20
- config.after_initialize do
20
+ config.after_initialize do |app|
21
21
  next unless Sentry.initialized?
22
22
 
23
+ configure_project_root
23
24
  configure_sentry_logger
25
+ configure_trusted_proxies
24
26
  extend_controller_methods
25
- extend_active_job
27
+ extend_active_job if defined?(ActiveJob)
26
28
  override_streaming_reporter
29
+ override_file_handler if app.config.public_file_server.enabled
27
30
  setup_backtrace_cleanup_callback
28
31
  inject_breadcrumbs_logger
29
32
  activate_tracing
30
33
  end
31
34
 
35
+ def configure_project_root
36
+ Sentry.configuration.project_root = ::Rails.root.to_s
37
+ end
38
+
32
39
  def configure_sentry_logger
33
40
  Sentry.configuration.logger = ::Rails.logger
34
41
  end
35
42
 
43
+ def configure_trusted_proxies
44
+ Sentry.configuration.trusted_proxies += Array(::Rails.application.config.action_dispatch.trusted_proxies)
45
+ end
46
+
36
47
  def extend_active_job
48
+ require "sentry/rails/active_job"
37
49
  ActiveJob::Base.send(:prepend, Sentry::Rails::ActiveJobExtensions)
38
50
  end
39
51
 
@@ -66,6 +78,12 @@ module Sentry
66
78
  end
67
79
  end
68
80
 
81
+ def override_file_handler
82
+ ActiveSupport.on_load :action_controller do
83
+ ActionDispatch::FileHandler.send(:prepend, Sentry::Rails::Overrides::FileHandler)
84
+ end
85
+ end
86
+
69
87
  def activate_tracing
70
88
  if Sentry.configuration.tracing_enabled?
71
89
  Sentry::Rails::Tracing.subscribe_tracing_events
@@ -6,9 +6,22 @@ module Sentry
6
6
  end
7
7
 
8
8
  def call(env)
9
+ return @app.call(env) unless Sentry.initialized?
10
+
9
11
  begin
10
12
  @app.call(env)
11
13
  rescue => e
14
+ request = ActionDispatch::Request.new(env)
15
+
16
+ # Rails' ShowExceptions#render_exception will mutate env for the exceptions app
17
+ # so we need to hold a copy of env to report the accurate data (like request's url)
18
+ if request.show_exceptions?
19
+ scope = Sentry.get_current_scope
20
+ copied_env = scope.rack_env.dup
21
+ copied_env["sentry.original_transaction"] = scope.transaction_name
22
+ scope.set_rack_env(copied_env)
23
+ end
24
+
12
25
  env["sentry.rescued_exception"] = e if Sentry.configuration.rails.report_rescued_exceptions
13
26
  raise e
14
27
  end
@@ -14,11 +14,11 @@ module Sentry
14
14
 
15
15
  def subscribe_to_event(event_name)
16
16
  if ::Rails.version.to_i == 5
17
- ActiveSupport::Notifications.subscribe(event_name) do |_, start, finish, _, payload|
17
+ ActiveSupport::Notifications.subscribe(event_name) do |*args|
18
18
  next unless Tracing.get_current_transaction
19
19
 
20
- duration = finish.to_f - start.to_f
21
- yield(event_name, duration, payload)
20
+ event = ActiveSupport::Notifications::Event.new(*args)
21
+ yield(event_name, event.duration, event.payload)
22
22
  end
23
23
  else
24
24
  ActiveSupport::Notifications.subscribe(event_name) do |event|
@@ -15,6 +15,9 @@ module Sentry
15
15
  description: "#{controller}##{action}",
16
16
  duration: duration
17
17
  ) do |span|
18
+ payload = payload.dup
19
+ payload.delete(:headers)
20
+ payload.delete(:request)
18
21
  span.set_data(:payload, payload)
19
22
  span.set_http_status(payload[:status])
20
23
  end
@@ -2,19 +2,11 @@ module Sentry
2
2
  module Rails
3
3
  module Tracing
4
4
  class ActionViewSubscriber < AbstractSubscriber
5
- EVENT_NAMES = ["render_template.action_view", "render_partial.action_view", "render_collection.action_view"]
5
+ EVENT_NAME = "render_template.action_view".freeze
6
6
 
7
7
  def self.subscribe!
8
- EVENT_NAMES.each do |event_name|
9
- subscribe_to_event(event_name) do |event_name, duration, payload|
10
- record_on_current_span(op: event_name, start_timestamp: payload[:start_timestamp], description: payload[:identifier], duration: duration)
11
- end
12
- end
13
- end
14
-
15
- def self.unsubscribe!
16
- EVENT_NAMES.each do |event_name|
17
- ActiveSupport::Notifications.unsubscribe(event_name)
8
+ subscribe_to_event(EVENT_NAME) do |event_name, duration, payload|
9
+ record_on_current_span(op: event_name, start_timestamp: payload[:start_timestamp], description: payload[:identifier], duration: duration)
18
10
  end
19
11
  end
20
12
  end
@@ -1,5 +1,5 @@
1
1
  module Sentry
2
2
  module Rails
3
- VERSION = "4.1.3"
3
+ VERSION = "4.2.0"
4
4
  end
5
5
  end
data/sentry-rails.gemspec CHANGED
@@ -16,12 +16,12 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
18
  spec.metadata["source_code_uri"] = spec.homepage
19
- spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/master/CHANGELOG.md"
19
+ spec.metadata["changelog_uri"] = "#{spec.homepage}/blob/master/sentry-rails/CHANGELOG.md"
20
20
 
21
21
  spec.bindir = "exe"
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
25
  spec.add_dependency "rails", ">= 5.0"
26
- spec.add_dependency "sentry-ruby", "~> 4.1.2"
26
+ spec.add_dependency "sentry-ruby-core", "~> 4.2.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: 4.1.3
4
+ version: 4.2.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: 2021-01-04 00:00:00.000000000 Z
11
+ date: 2021-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -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
28
+ name: sentry-ruby-core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 4.1.2
33
+ version: 4.2.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: 4.1.2
40
+ version: 4.2.0
41
41
  description: A gem that provides Rails integration for the Sentry error logger
42
42
  email: accounts@sentry.io
43
43
  executables: []
@@ -49,13 +49,14 @@ files:
49
49
  - ".craft.yml"
50
50
  - ".gitignore"
51
51
  - ".rspec"
52
- - ".travis.yml"
53
52
  - CHANGELOG.md
54
53
  - CODE_OF_CONDUCT.md
55
54
  - Gemfile
56
55
  - LICENSE.txt
56
+ - Makefile
57
57
  - README.md
58
58
  - Rakefile
59
+ - app/jobs/sentry/send_event_job.rb
59
60
  - bin/console
60
61
  - bin/setup
61
62
  - lib/sentry-rails.rb
@@ -67,6 +68,8 @@ files:
67
68
  - lib/sentry/rails/configuration.rb
68
69
  - lib/sentry/rails/controller_methods.rb
69
70
  - lib/sentry/rails/controller_transaction.rb
71
+ - lib/sentry/rails/engine.rb
72
+ - lib/sentry/rails/overrides/file_handler.rb
70
73
  - lib/sentry/rails/overrides/streaming_reporter.rb
71
74
  - lib/sentry/rails/railtie.rb
72
75
  - lib/sentry/rails/rescued_exception_interceptor.rb
@@ -83,7 +86,7 @@ licenses:
83
86
  metadata:
84
87
  homepage_uri: https://github.com/getsentry/sentry-ruby
85
88
  source_code_uri: https://github.com/getsentry/sentry-ruby
86
- changelog_uri: https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md
89
+ changelog_uri: https://github.com/getsentry/sentry-ruby/blob/master/sentry-rails/CHANGELOG.md
87
90
  post_install_message:
88
91
  rdoc_options: []
89
92
  require_paths:
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.6.5
6
- before_install: gem install bundler -v 2.1.1