sentry-rails 4.5.0 → 4.6.1
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 +5 -7
- data/Rakefile +7 -1
- data/lib/sentry/rails/breadcrumb/active_support_logger.rb +3 -7
- data/lib/sentry/rails/instrument_payload_cleanup_helper.rb +13 -0
- data/lib/sentry/rails/railtie.rb +10 -6
- data/lib/sentry/rails/tracing/action_controller_subscriber.rb +4 -2
- data/lib/sentry/rails/version.rb +1 -1
- data/sentry-rails.gemspec +1 -1
- metadata +5 -5
- data/.craft.yml +0 -19
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 45db4da3ec4c8f0b06f535beadd58051516a0acabe75f5536445117f644abddf
         | 
| 4 | 
            +
              data.tar.gz: 29f21dc64916654597023ae87a6d83b878c439ebf67b37bf2423c819093011f2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 68b3e9718c9b2f24a30a904f57fabd91430d3d6332a28e957dab32d25097066e0b0390e35433f81d8196122230f74ab68aac9a8ccad0daef4e5193dbddc1c9dd
         | 
| 7 | 
            +
              data.tar.gz: 893bb7f6f7b9625787bbaeb9bf6281f707da7050d63922d665a5d3cc8da2a74189d040639e88f9fca7cd5182dd19f5c471ae6d82ce381878cd42eea3820233ad
         | 
    
        data/Gemfile
    CHANGED
    
    | @@ -2,6 +2,7 @@ source "https://rubygems.org" | |
| 2 2 |  | 
| 3 3 | 
             
            # Specify your gem's dependencies in sentry-ruby.gemspec
         | 
| 4 4 | 
             
            gemspec
         | 
| 5 | 
            +
            gem "sentry-ruby", path: "../sentry-ruby"
         | 
| 5 6 |  | 
| 6 7 | 
             
            rails_version = ENV["RAILS_VERSION"]
         | 
| 7 8 | 
             
            rails_version = "6.1.0" if rails_version.nil?
         | 
| @@ -18,6 +19,8 @@ end | |
| 18 19 | 
             
            gem "rails", "~> #{rails_version}"
         | 
| 19 20 | 
             
            gem "sprockets-rails"
         | 
| 20 21 |  | 
| 22 | 
            +
            gem "sidekiq"
         | 
| 23 | 
            +
             | 
| 21 24 | 
             
            gem "rspec", "~> 3.0"
         | 
| 22 25 | 
             
            gem "rspec-retry"
         | 
| 23 26 | 
             
            gem "rspec-rails", "~> 4.0"
         | 
| @@ -25,13 +28,8 @@ gem "codecov", "0.2.12" | |
| 25 28 |  | 
| 26 29 | 
             
            gem "rake", "~> 12.0"
         | 
| 27 30 |  | 
| 28 | 
            -
             | 
| 29 | 
            -
            gem " | 
| 30 | 
            -
             | 
| 31 | 
            -
            gem "sidekiq"
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            gem "sentry-ruby", path: "../sentry-ruby"
         | 
| 34 | 
            -
             | 
| 31 | 
            +
            gem "object_tracer"
         | 
| 32 | 
            +
            gem "debug", github: "ruby/debug" if RUBY_VERSION.to_f >= 2.6
         | 
| 35 33 | 
             
            gem "pry"
         | 
| 36 34 |  | 
| 37 35 | 
             
            gem "benchmark-ips"
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -5,4 +5,10 @@ RSpec::Core::RakeTask.new(:spec).tap do |task| | |
| 5 5 | 
             
              task.rspec_opts = "--order rand"
         | 
| 6 6 | 
             
            end
         | 
| 7 7 |  | 
| 8 | 
            -
            task : | 
| 8 | 
            +
            task :isolated_specs do
         | 
| 9 | 
            +
              Dir["spec/isolated/*"].each do |file|
         | 
| 10 | 
            +
                sh "bundle exec ruby #{file}"
         | 
| 11 | 
            +
              end
         | 
| 12 | 
            +
            end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            task :default => [:spec, :isolated_specs]
         | 
| @@ -1,9 +1,11 @@ | |
| 1 | 
            +
            require "sentry/rails/instrument_payload_cleanup_helper"
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module Sentry
         | 
| 2 4 | 
             
              module Rails
         | 
| 3 5 | 
             
                module Breadcrumb
         | 
| 4 6 | 
             
                  module ActiveSupportLogger
         | 
| 5 7 | 
             
                    class << self
         | 
| 6 | 
            -
                       | 
| 8 | 
            +
                      include InstrumentPayloadCleanupHelper
         | 
| 7 9 |  | 
| 8 10 | 
             
                      def add(name, started, _finished, _unique_id, data)
         | 
| 9 11 | 
             
                        # skip Rails' internal events
         | 
| @@ -23,12 +25,6 @@ module Sentry | |
| 23 25 | 
             
                        Sentry.add_breadcrumb(crumb)
         | 
| 24 26 | 
             
                      end
         | 
| 25 27 |  | 
| 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 | 
            -
             | 
| 32 28 | 
             
                      def inject
         | 
| 33 29 | 
             
                        @subscriber = ::ActiveSupport::Notifications.subscribe(/.*/) do |name, started, finished, unique_id, data|
         | 
| 34 30 | 
             
                          # we only record events that has a started timestamp
         | 
| @@ -0,0 +1,13 @@ | |
| 1 | 
            +
            module Sentry
         | 
| 2 | 
            +
              module Rails
         | 
| 3 | 
            +
                module InstrumentPayloadCleanupHelper
         | 
| 4 | 
            +
                  IGNORED_DATA_TYPES = [:request, :response, :headers, :exception, :exception_object]
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  def cleanup_data(data)
         | 
| 7 | 
            +
                    IGNORED_DATA_TYPES.each do |key|
         | 
| 8 | 
            +
                      data.delete(key) if data.key?(key)
         | 
| 9 | 
            +
                    end
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
            end
         | 
    
        data/lib/sentry/rails/railtie.rb
    CHANGED
    
    | @@ -12,13 +12,22 @@ module Sentry | |
| 12 12 | 
             
                  app.config.middleware.use(Sentry::Rails::RescuedExceptionInterceptor)
         | 
| 13 13 | 
             
                end
         | 
| 14 14 |  | 
| 15 | 
            +
                # because the extension works by registering the around_perform callcack, it should always be ran
         | 
| 16 | 
            +
                # before the application is eager-loaded (before user's jobs register their own callbacks)
         | 
| 17 | 
            +
                # See https://github.com/getsentry/sentry-ruby/issues/1249#issuecomment-853871871 for the detail explanation
         | 
| 18 | 
            +
                initializer "sentry.extend_active_job", before: :eager_load! do |app|
         | 
| 19 | 
            +
                  ActiveSupport.on_load(:active_job) do
         | 
| 20 | 
            +
                    require "sentry/rails/active_job"
         | 
| 21 | 
            +
                    prepend Sentry::Rails::ActiveJobExtensions
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 15 25 | 
             
                config.after_initialize do |app|
         | 
| 16 26 | 
             
                  next unless Sentry.initialized?
         | 
| 17 27 |  | 
| 18 28 | 
             
                  configure_project_root
         | 
| 19 29 | 
             
                  configure_trusted_proxies
         | 
| 20 30 | 
             
                  extend_controller_methods if defined?(ActionController)
         | 
| 21 | 
            -
                  extend_active_job if defined?(ActiveJob)
         | 
| 22 31 | 
             
                  patch_background_worker if defined?(ActiveRecord)
         | 
| 23 32 | 
             
                  override_streaming_reporter if defined?(ActionView)
         | 
| 24 33 | 
             
                  setup_backtrace_cleanup_callback
         | 
| @@ -39,11 +48,6 @@ module Sentry | |
| 39 48 | 
             
                  Sentry.configuration.trusted_proxies += Array(::Rails.application.config.action_dispatch.trusted_proxies)
         | 
| 40 49 | 
             
                end
         | 
| 41 50 |  | 
| 42 | 
            -
                def extend_active_job
         | 
| 43 | 
            -
                  require "sentry/rails/active_job"
         | 
| 44 | 
            -
                  ActiveJob::Base.send(:prepend, Sentry::Rails::ActiveJobExtensions)
         | 
| 45 | 
            -
                end
         | 
| 46 | 
            -
             | 
| 47 51 | 
             
                def extend_controller_methods
         | 
| 48 52 | 
             
                  require "sentry/rails/controller_methods"
         | 
| 49 53 | 
             
                  require "sentry/rails/controller_transaction"
         | 
| @@ -1,9 +1,12 @@ | |
| 1 1 | 
             
            require "sentry/rails/tracing/abstract_subscriber"
         | 
| 2 | 
            +
            require "sentry/rails/instrument_payload_cleanup_helper"
         | 
| 2 3 |  | 
| 3 4 | 
             
            module Sentry
         | 
| 4 5 | 
             
              module Rails
         | 
| 5 6 | 
             
                module Tracing
         | 
| 6 7 | 
             
                  class ActionControllerSubscriber < AbstractSubscriber
         | 
| 8 | 
            +
                    extend InstrumentPayloadCleanupHelper
         | 
| 9 | 
            +
             | 
| 7 10 | 
             
                    EVENT_NAME = "process_action.action_controller".freeze
         | 
| 8 11 |  | 
| 9 12 | 
             
                    def self.subscribe!
         | 
| @@ -18,8 +21,7 @@ module Sentry | |
| 18 21 | 
             
                          duration: duration
         | 
| 19 22 | 
             
                        ) do |span|
         | 
| 20 23 | 
             
                          payload = payload.dup
         | 
| 21 | 
            -
                          payload | 
| 22 | 
            -
                          payload.delete(:request)
         | 
| 24 | 
            +
                          cleanup_data(payload)
         | 
| 23 25 | 
             
                          span.set_data(:payload, payload)
         | 
| 24 26 | 
             
                          span.set_http_status(payload[:status])
         | 
| 25 27 | 
             
                        end
         | 
    
        data/lib/sentry/rails/version.rb
    CHANGED
    
    
    
        data/sentry-rails.gemspec
    CHANGED
    
    
    
        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. | 
| 4 | 
            +
              version: 4.6.1
         | 
| 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- | 
| 11 | 
            +
            date: 2021-07-08 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: 4. | 
| 33 | 
            +
                    version: 4.6.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. | 
| 40 | 
            +
                    version: 4.6.0
         | 
| 41 41 | 
             
            description: A gem that provides Rails integration for the Sentry error logger
         | 
| 42 42 | 
             
            email: accounts@sentry.io
         | 
| 43 43 | 
             
            executables: []
         | 
| @@ -46,7 +46,6 @@ extra_rdoc_files: | |
| 46 46 | 
             
            - README.md
         | 
| 47 47 | 
             
            - LICENSE.txt
         | 
| 48 48 | 
             
            files:
         | 
| 49 | 
            -
            - ".craft.yml"
         | 
| 50 49 | 
             
            - ".gitignore"
         | 
| 51 50 | 
             
            - ".rspec"
         | 
| 52 51 | 
             
            - CHANGELOG.md
         | 
| @@ -70,6 +69,7 @@ files: | |
| 70 69 | 
             
            - lib/sentry/rails/controller_methods.rb
         | 
| 71 70 | 
             
            - lib/sentry/rails/controller_transaction.rb
         | 
| 72 71 | 
             
            - lib/sentry/rails/engine.rb
         | 
| 72 | 
            +
            - lib/sentry/rails/instrument_payload_cleanup_helper.rb
         | 
| 73 73 | 
             
            - lib/sentry/rails/overrides/streaming_reporter.rb
         | 
| 74 74 | 
             
            - lib/sentry/rails/railtie.rb
         | 
| 75 75 | 
             
            - lib/sentry/rails/rescued_exception_interceptor.rb
         | 
    
        data/.craft.yml
    DELETED
    
    | @@ -1,19 +0,0 @@ | |
| 1 | 
            -
            minVersion: '0.13.2'
         | 
| 2 | 
            -
            github:
         | 
| 3 | 
            -
                owner: getsentry
         | 
| 4 | 
            -
                repo: sentry-ruby
         | 
| 5 | 
            -
            changelogPolicy: simple
         | 
| 6 | 
            -
            preReleaseCommand: ruby ../.scripts/bump-version.rb
         | 
| 7 | 
            -
            releaseBranchPrefix: release-sentry-rails
         | 
| 8 | 
            -
            statusProvider:
         | 
| 9 | 
            -
              name: github
         | 
| 10 | 
            -
            artifactProvider:
         | 
| 11 | 
            -
              name: github
         | 
| 12 | 
            -
            targets:
         | 
| 13 | 
            -
                - name: gem
         | 
| 14 | 
            -
                - name: registry
         | 
| 15 | 
            -
                  type: sdk
         | 
| 16 | 
            -
                  config:
         | 
| 17 | 
            -
                      canonical: 'gem:sentry-rails'
         | 
| 18 | 
            -
                - name: github
         | 
| 19 | 
            -
                  tagPrefix: sentry-rails-v
         |