bugsnag 6.27.0 → 6.27.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/CHANGELOG.md +9 -0
- data/VERSION +1 -1
- data/lib/bugsnag/breadcrumbs/on_breadcrumb_callback_list.rb +0 -2
- data/lib/bugsnag/breadcrumbs/validator.rb +0 -2
- data/lib/bugsnag/cleaner.rb +0 -2
- data/lib/bugsnag/configuration.rb +19 -11
- data/lib/bugsnag/delivery/synchronous.rb +0 -1
- data/lib/bugsnag/delivery/thread_queue.rb +0 -2
- data/lib/bugsnag/event.rb +0 -2
- data/lib/bugsnag/helpers.rb +0 -5
- data/lib/bugsnag/integrations/mongo.rb +0 -1
- data/lib/bugsnag/integrations/rails/active_job.rb +0 -2
- data/lib/bugsnag/integrations/rails/rails_breadcrumbs.rb +0 -2
- data/lib/bugsnag/integrations/railtie.rb +0 -4
- data/lib/bugsnag/integrations/rake.rb +4 -1
- data/lib/bugsnag/middleware/rack_request.rb +35 -17
- data/lib/bugsnag/report.rb +0 -1
- data/lib/bugsnag.rb +5 -12
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7f8eb06e59bf516cfc5ca7f5539ae3b0fdbd9c4ea86a82252d6c2ea787a7c255
         | 
| 4 | 
            +
              data.tar.gz: 01be8584412260118dfb14548808e1c4c4444aadd040bbbd6c6ad5dee3da1dbc
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: bebc3030e22bbc50423792c701185d061b0d7834c6a741c805cafa6223753e941cd893a73c65792b8726fc6adf9f9c47ea30715c14381f5a2ac87c52d345ba98
         | 
| 7 | 
            +
              data.tar.gz: 1923948f57cc1f032eaf249912d6f5e65423c853bc2cffe89b1b198aead96bc34303aa3aec95f9699911176579cbee14797e805986f24aff2834458413dc5066
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,6 +1,15 @@ | |
| 1 1 | 
             
            Changelog
         | 
| 2 2 | 
             
            =========
         | 
| 3 3 |  | 
| 4 | 
            +
            ## v6.27.1 (18 June 2024)
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            ### Fixes
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            * Only read Rack request body if it's rewindable
         | 
| 9 | 
            +
              | [#829](https://github.com/bugsnag/bugsnag-ruby/pull/829)
         | 
| 10 | 
            +
            * Fix circular require warning
         | 
| 11 | 
            +
              | [#828](https://github.com/bugsnag/bugsnag-ruby/pull/828)
         | 
| 12 | 
            +
             | 
| 4 13 | 
             
            ## v6.27.0 (23 May 2024)
         | 
| 5 14 |  | 
| 6 15 | 
             
            ### Enhancements
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            6.27. | 
| 1 | 
            +
            6.27.1
         | 
    
        data/lib/bugsnag/cleaner.rb
    CHANGED
    
    
| @@ -1,20 +1,28 @@ | |
| 1 | 
            -
            require " | 
| 2 | 
            -
             | 
| 3 | 
            -
            require " | 
| 4 | 
            -
            require "bugsnag/ | 
| 1 | 
            +
            require "bugsnag/breadcrumbs/on_breadcrumb_callback_list"
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require "bugsnag/endpoint_configuration"
         | 
| 4 | 
            +
            require "bugsnag/endpoint_validator"
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            require "bugsnag/middleware/breadcrumbs"
         | 
| 5 7 | 
             
            require "bugsnag/middleware/callbacks"
         | 
| 8 | 
            +
            require "bugsnag/middleware/classify_error"
         | 
| 9 | 
            +
            require "bugsnag/middleware/clearance_user"
         | 
| 10 | 
            +
            require "bugsnag/middleware/delayed_job"
         | 
| 6 11 | 
             
            require "bugsnag/middleware/discard_error_class"
         | 
| 7 12 | 
             
            require "bugsnag/middleware/exception_meta_data"
         | 
| 8 13 | 
             
            require "bugsnag/middleware/ignore_error_class"
         | 
| 9 | 
            -
            require "bugsnag/middleware/ | 
| 10 | 
            -
            require "bugsnag/middleware/ | 
| 14 | 
            +
            require "bugsnag/middleware/mailman"
         | 
| 15 | 
            +
            require "bugsnag/middleware/rack_request"
         | 
| 16 | 
            +
            require "bugsnag/middleware/rails3_request"
         | 
| 17 | 
            +
            require "bugsnag/middleware/rake"
         | 
| 11 18 | 
             
            require "bugsnag/middleware/session_data"
         | 
| 12 | 
            -
            require "bugsnag/middleware/ | 
| 19 | 
            +
            require "bugsnag/middleware/sidekiq"
         | 
| 20 | 
            +
            require "bugsnag/middleware/suggestion_data"
         | 
| 21 | 
            +
            require "bugsnag/middleware/warden_user"
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            require "bugsnag/middleware_stack"
         | 
| 24 | 
            +
             | 
| 13 25 | 
             
            require "bugsnag/utility/circular_buffer"
         | 
| 14 | 
            -
            require "bugsnag/breadcrumbs/breadcrumbs"
         | 
| 15 | 
            -
            require "bugsnag/breadcrumbs/on_breadcrumb_callback_list"
         | 
| 16 | 
            -
            require "bugsnag/endpoint_configuration"
         | 
| 17 | 
            -
            require "bugsnag/endpoint_validator"
         | 
| 18 26 |  | 
| 19 27 | 
             
            module Bugsnag
         | 
| 20 28 | 
             
              class Configuration
         | 
    
        data/lib/bugsnag/event.rb
    CHANGED
    
    
    
        data/lib/bugsnag/helpers.rb
    CHANGED
    
    
| @@ -1,4 +1,7 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            # this file can either be required manually by a user, in which case 'bugsnag'
         | 
| 2 | 
            +
            # needs to be required, or it can be required automatically in the railtie,
         | 
| 3 | 
            +
            # in which case 'bugsnag' has already been required
         | 
| 4 | 
            +
            require 'bugsnag' unless defined?(Bugsnag)
         | 
| 2 5 |  | 
| 3 6 | 
             
            Rake::TaskManager.record_task_metadata = true
         | 
| 4 7 |  | 
| @@ -1,5 +1,3 @@ | |
| 1 | 
            -
            require "json"
         | 
| 2 | 
            -
             | 
| 3 1 | 
             
            module Bugsnag::Middleware
         | 
| 4 2 | 
             
              ##
         | 
| 5 3 | 
             
              # Extracts and attaches rack data to an error report
         | 
| @@ -17,7 +15,15 @@ module Bugsnag::Middleware | |
| 17 15 |  | 
| 18 16 | 
             
                    request = ::Rack::Request.new(env)
         | 
| 19 17 |  | 
| 20 | 
            -
                    params = | 
| 18 | 
            +
                    params =
         | 
| 19 | 
            +
                      # if the request body isn't rewindable then we can't read request.POST
         | 
| 20 | 
            +
                      # which is used internally by request.params
         | 
| 21 | 
            +
                      if request.body.respond_to?(:rewind)
         | 
| 22 | 
            +
                        request.params rescue {}
         | 
| 23 | 
            +
                      else
         | 
| 24 | 
            +
                        request.GET rescue {}
         | 
| 25 | 
            +
                      end
         | 
| 26 | 
            +
             | 
| 21 27 | 
             
                    client_ip = request.ip.to_s rescue SPOOF
         | 
| 22 28 | 
             
                    session = env["rack.session"]
         | 
| 23 29 |  | 
| @@ -106,7 +112,11 @@ module Bugsnag::Middleware | |
| 106 112 | 
             
                end
         | 
| 107 113 |  | 
| 108 114 | 
             
                def add_request_body(report, request, env)
         | 
| 109 | 
            -
                   | 
| 115 | 
            +
                  begin
         | 
| 116 | 
            +
                    body = parsed_request_body(request, env)
         | 
| 117 | 
            +
                  rescue StandardError
         | 
| 118 | 
            +
                    return nil
         | 
| 119 | 
            +
                  end
         | 
| 110 120 |  | 
| 111 121 | 
             
                  # this request may not have a body
         | 
| 112 122 | 
             
                  return unless body.is_a?(Hash) && !body.empty?
         | 
| @@ -115,26 +125,34 @@ module Bugsnag::Middleware | |
| 115 125 | 
             
                end
         | 
| 116 126 |  | 
| 117 127 | 
             
                def parsed_request_body(request, env)
         | 
| 118 | 
            -
                   | 
| 128 | 
            +
                  # if the request is not rewindable then either:
         | 
| 129 | 
            +
                  # - it's been read already and so is impossible to read
         | 
| 130 | 
            +
                  # - it hasn't been read yet and us reading it will prevent the user from
         | 
| 131 | 
            +
                  #   reading it themselves
         | 
| 132 | 
            +
                  # in either case we should avoid attempting to
         | 
| 133 | 
            +
                  return nil unless request.body.respond_to?(:rewind)
         | 
| 134 | 
            +
             | 
| 135 | 
            +
                  if request.form_data?
         | 
| 136 | 
            +
                    begin
         | 
| 137 | 
            +
                      return request.POST
         | 
| 138 | 
            +
                    ensure
         | 
| 139 | 
            +
                      request.body.rewind
         | 
| 140 | 
            +
                    end
         | 
| 141 | 
            +
                  end
         | 
| 119 142 |  | 
| 120 143 | 
             
                  content_type = env["CONTENT_TYPE"]
         | 
| 121 144 |  | 
| 122 145 | 
             
                  return nil if content_type.nil?
         | 
| 146 | 
            +
                  return nil unless content_type.include?('/json') || content_type.include?('+json')
         | 
| 123 147 |  | 
| 124 | 
            -
                   | 
| 125 | 
            -
                     | 
| 126 | 
            -
                      body = request.body
         | 
| 148 | 
            +
                  begin
         | 
| 149 | 
            +
                    body = request.body
         | 
| 127 150 |  | 
| 128 | 
            -
             | 
| 129 | 
            -
             | 
| 130 | 
            -
             | 
| 131 | 
            -
                     | 
| 132 | 
            -
                      # the body must be rewound so other things can read it after we do
         | 
| 133 | 
            -
                      body.rewind
         | 
| 134 | 
            -
                    end
         | 
| 151 | 
            +
                    JSON.parse(body.read)
         | 
| 152 | 
            +
                  ensure
         | 
| 153 | 
            +
                    # the body must be rewound so other things can read it after we do
         | 
| 154 | 
            +
                    body.rewind
         | 
| 135 155 | 
             
                  end
         | 
| 136 | 
            -
             | 
| 137 | 
            -
                  nil
         | 
| 138 156 | 
             
                end
         | 
| 139 157 |  | 
| 140 158 | 
             
                def add_cookies(report, request)
         | 
    
        data/lib/bugsnag/report.rb
    CHANGED
    
    
    
        data/lib/bugsnag.rb
    CHANGED
    
    | @@ -1,5 +1,10 @@ | |
| 1 1 | 
             
            require "rubygems"
         | 
| 2 2 | 
             
            require "thread"
         | 
| 3 | 
            +
            require "set"
         | 
| 4 | 
            +
            require "json"
         | 
| 5 | 
            +
            require "uri"
         | 
| 6 | 
            +
            require "socket"
         | 
| 7 | 
            +
            require "logger"
         | 
| 3 8 |  | 
| 4 9 | 
             
            require "bugsnag/version"
         | 
| 5 10 | 
             
            require "bugsnag/utility/feature_data_store"
         | 
| @@ -21,21 +26,9 @@ require "bugsnag/feature_flag" | |
| 21 26 | 
             
            # as it doesn't auto-configure when loaded
         | 
| 22 27 | 
             
            require "bugsnag/integrations/rack"
         | 
| 23 28 |  | 
| 24 | 
            -
            require "bugsnag/middleware/rack_request"
         | 
| 25 | 
            -
            require "bugsnag/middleware/warden_user"
         | 
| 26 | 
            -
            require "bugsnag/middleware/clearance_user"
         | 
| 27 | 
            -
            require "bugsnag/middleware/callbacks"
         | 
| 28 | 
            -
            require "bugsnag/middleware/rails3_request"
         | 
| 29 | 
            -
            require "bugsnag/middleware/sidekiq"
         | 
| 30 | 
            -
            require "bugsnag/middleware/mailman"
         | 
| 31 | 
            -
            require "bugsnag/middleware/rake"
         | 
| 32 | 
            -
            require "bugsnag/middleware/classify_error"
         | 
| 33 | 
            -
            require "bugsnag/middleware/delayed_job"
         | 
| 34 | 
            -
             | 
| 35 29 | 
             
            require "bugsnag/breadcrumb_type"
         | 
| 36 30 | 
             
            require "bugsnag/breadcrumbs/validator"
         | 
| 37 31 | 
             
            require "bugsnag/breadcrumbs/breadcrumb"
         | 
| 38 | 
            -
            require "bugsnag/breadcrumbs/breadcrumbs"
         | 
| 39 32 |  | 
| 40 33 | 
             
            require "bugsnag/utility/duplicator"
         | 
| 41 34 | 
             
            require "bugsnag/utility/metadata_delegate"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: bugsnag
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 6.27. | 
| 4 | 
            +
              version: 6.27.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - James Smith
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024- | 
| 11 | 
            +
            date: 2024-06-18 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: concurrent-ruby
         | 
| @@ -107,7 +107,7 @@ homepage: https://github.com/bugsnag/bugsnag-ruby | |
| 107 107 | 
             
            licenses:
         | 
| 108 108 | 
             
            - MIT
         | 
| 109 109 | 
             
            metadata:
         | 
| 110 | 
            -
              changelog_uri: https://github.com/bugsnag/bugsnag-ruby/blob/v6.27. | 
| 110 | 
            +
              changelog_uri: https://github.com/bugsnag/bugsnag-ruby/blob/v6.27.1/CHANGELOG.md
         | 
| 111 111 | 
             
              documentation_uri: https://docs.bugsnag.com/platforms/ruby/
         | 
| 112 112 | 
             
              source_code_uri: https://github.com/bugsnag/bugsnag-ruby/
         | 
| 113 113 | 
             
              rubygems_mfa_required: 'true'
         |