All Versions
64
Latest Version
Avg Release Cycle
43 days
Latest Release
302 days ago

Changelog History
Page 3

  • v4.0.0 Changes

    August 21, 2018

    โž• Added

    • โž• Added before_notify hooks to be defined, this allows setting up of multiple hooks which will be invoked with a notice before a notice is sent. Each before_notify hook MUST be a callable (lambda, Proc etc,) with an arity of 1.
    • โž• Added the ability to halt notices in callbacks using notice.halt!
    • ๐Ÿ‘‰ Make essential attributes on Notice writable: ruby Honeybadger.configure do |config| config.before_notify do |notice| notice.api_key = 'custom api key', notice.error_message = "badgers!", notice.error_class = 'MyError', notice.backtrace = ["/path/to/file.rb:5 in `method'"], notice.fingerprint = 'some unique string', notice.tags = ['foo', 'bar'], notice.context = { user: 33 }, notice.controller = 'MyController', notice.action = 'index', notice.parameters = { q: 'badgers?' }, notice.session = { uid: 42 }, notice.url = "/badgers", end end

    ๐Ÿ›  Fixed

    • ๐Ÿšฆ Ignore SIGTERM SignalExceptions.

    โœ‚ Removed

    • โœ‚ Removed Notice#[]

    ๐Ÿ”„ Changed

    • ๐Ÿ’Ž The public method Notice#backtrace is now exposed as the raw Ruby backtrace instead of an instance of Honeybadger::Backtrace (a private class).

    Before:

      notice.backtrace # => #<Honeybadger::Backtrace>
    

    After:

      notice.backtrace # => ["/path/to/file.rb:5 in `method'"]
    
    • 0๏ธโƒฃ notice[:context] now defaults to an empty Hash instead of nil.

    Before:

      notice[:context] # => nil
    

    After:

      notice[:context] # => {}
    
    • ๐Ÿ–จ The public method Notice#fingerprint now returns the original String which was passed in from the :fingerprint option or the exception_fingerprint callback, not a SHA1 hashed value. The value is still hashed before sending through to the API.
    • ๐Ÿ—„ The public method Honeybadger.exception_filter has been deprecated in favor of before_notify: ruby Honeybadger.configure do |config| config.before_notify do |notice| notice.halt! end end
    • ๐Ÿ—„ The public method Honeybadger.exception_fingerprint has been deprecated in favor of before_notify: ruby Honeybadger.configure do |config| config.before_notify do |notice| notice.fingerprint = 'new fingerprint' end end
    • ๐Ÿ—„ The public method Honeybadger.backtrace_filter has been deprecated in favor of before_notify: ruby Honeybadger.configure do |config| config.before_notify do |notice| notice.backtrace.reject!{|x| x =~ /gem/} end end

    โœ‚ Removed

    • ๐Ÿšš The disabled option is now removed, Use the report_data option instead.
  • v3.3.1 Changes

    August 02, 2018

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix synchronous throttling in shoryuken
  • v3.3.0 Changes

    January 29, 2018

    ๐Ÿ”„ Changed

    • ๐Ÿ‘‰ Use prepend to add Sidekiq Middleware to fix context getting cleared.
    • โž• Add Rack::QueryParser::ParameterTypeError and Rack::QueryParser::InvalidParameterError to default ignore list.

    ๐Ÿ›  Fixed

    • ๐Ÿš… Use a unique route name in rails to avoid name conflicts.
    • ๐Ÿ›  Fix at_exit callback being skipped in rails apps with a sinatra dependency.
  • v3.2.0 Changes

    November 27, 2017

    ๐Ÿ”„ Changed

    • Objects which explicitly alias #to_s to #inspect (such as OpenStruct) are now sanitized. '#<OpenStruct attribute="value">' becomes '#<OpenStruct>'. If you pass the value of #inspect (as a String) directly to Honeybadger (or return it from #to_honeybadger), the value will not be sanitized.
    • We're now using String(object) instead of object.to_s as the last resort during sanitization.

    โž• Added

    • ๐Ÿ‘ป The exception cause may now be set using an optional :cause option when calling Honeybadger.notify. If not present, the exception's cause will be used, or the global $! exception if available.
    • Any object can now act as context using the #to_honeybadger_context method. The method should have no arguments and return a Hash of context data. Context from exceptions which define this method will automatically be included in error reports.
    • Final object representations in Honeybadger (normally the value of #to_s for unknown types) can be changed by defining the #to_honeybadger method. If the method is defined, the return value of that method will be sent to Honeybadger instead of the #to_s value (for context values, local variables, etc.).
    • '[RAISED]' is returned when object.to_honeybadger or String(object) fails.
    • โž• Added Honeybadger.check_in method which allows performing check ins from ruby.

    ๐Ÿ›  Fixed

    • 0๏ธโƒฃ We no longer use "/dev/null" as the default log device as it doesn't exist on Windows.
    • ๐Ÿ”Š Logs when reporting errors in development mode now mention that the error wasn't actually reported. :)
    • ๐Ÿ‘Œ Support new Sidekiq job params key.
    • ๐Ÿšš Move at_exit callback to an appropriate place for sinatra apps, so that it does not prematurely stop honeybadger workers.
    • BasicObject, which previously could not be serialized, is now serialized as "#<BasicObject>".
  • v3.1.2 Changes

    April 20, 2017

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug in the Resque plugin which prevented error reports from being sent. The issue was that the Resque's callbacks were executed in an unexpected order which caused the queue to be flushed before error notification instead of after.
  • v3.1.1 Changes

    April 13, 2017

    ๐Ÿ›  Fixed

    • ๐Ÿš€ honeybadger deploy cli command now reads default environment from honeybadger.yml/environment variable.
    • ๐Ÿ›  Fixed a conflict with the web-console gem.
  • v3.1.0 Changes

    March 01, 2017

    ๐Ÿ”„ Changed

    • Exceptions encountered while loading/evaluating honeybadger.yml are now raised instead of logged.

    โž• Added

    • Friendlier backtraces for exceptions originating in honeybadger.yml.
    • ๐Ÿ”” Notify errors in Shoryuken batches [email protected]

    ๐Ÿ›  Fixed

    • ๐Ÿš… Rails environment is now loaded when running honeybadger cli from a Rails root. This fixes an issue where programmatic configuration from Rails was not loaded.
    • ๐Ÿ›  Fixed logger isn't being overridden properly when configuring with Honeybadger.configure [email protected]
  • v3.0.2 Changes

    February 16, 2017

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug caused by an interaction with the semantic_logger gem.
  • v3.0.1 Changes

    February 10, 2017

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a bug which caused a NoMethodError (undefined method `start_with?') when Rack env contained non-string keys.
  • v3.0.0 Changes

    February 06, 2017

    โž• Added

    • ๐Ÿ’Ž You may now require 'honeybadger/ruby' instead of 'honeybadger' to get the agent without the integrations (no railtie, plugins or monkey patching).
    • You can now create multiple instances of the Honeybadger agent with different configurations (many classes in the library can be composed).
    • ๐Ÿ”ง Honeybadger.configure works again -- use it to configure the library from Ruby! (we still default to honeybadger.yml in our installer)
    • โœ… Our test suite is now leaner and meaner (which means we can add new features faster). Reduced typical build times from up to 2 minutes to 20 seconds.
    • We've rebuilt the CLI from scratch. The new CLI features super verbose error messages with (hopefully) helpful suggestions, some new commands, and better framework detection in the install and test commands.
    • ๐Ÿ‘‰ Use honeybadger exec your_command from the command line to report the error when the command fails due to a non-zero exit status or standard error output. (Use it to report failures in cron!) See honeybadger help exec.
    • ๐Ÿ‘‰ Use honeybadger notify from the command line to report custom errors to Honeybadger. See honeybadger help notify.
    • 0๏ธโƒฃ ~/honeybadger.yml is now a default config path for the CLI and standalone-ruby installations.
    • ๐Ÿ‘ป Honeybadger.notify now converts arguments which are not Exception or Hash types to strings and assigns them as the error message. Example: Honeybadger.notify("Something went wrong").
    • ๐Ÿš€ The currently deployed git revision is now detected automatically and sent with error reports.

    ๐Ÿ”„ Changed

    • ๐Ÿ—„ Honeybadger.start has been deprecated and has no effect.
    • We've changed some of the underlying code of the library. If you depend on internal APIs (such as thread local variable names or any functions not marked public in the code comments) then you may need to update your code. If you are developing 3rd-party integrations with our gem let us know so that we can work with you to build the public APIs you need.
    • All Rack middleware no longer require an argument (which used to be a Honeybadger::Config instance) when using them. They now default to the global agent and accept an optional argument which expects an alternate Honeybadger::Agent instance.
    • ๐Ÿ”Œ The plugins.skip config option has been renamed to skipped_plugins.
    • The sidekiq.use_component config option is now true by default. To get the old behavior, set it to false. When enabled, the Sidekiq plugin will automatically set the component to the class of the job, which helps with grouping.
    • The request.filter_keys option now includes partial matches: with the filter value "password", keys such as "password" and "otherpassword" will be filtered.
    • CGI variables are now whitelisted when sending the Rack environment to Honeybadger to prevent sensitive data leakage.
    • ๐Ÿ‘ป Honeybadger.notify now raises an exception in development mode when called without the required arguments. It logs outside of development and continues to send a generic error report.

    โœ‚ Removed

    • ๐Ÿ’Ž Ruby 1.9.3 and 2.0.x are no longer supported.
    • Honeybadger.notify_or_ignore has been removed. Use Honeybadger.notify(e) and Honeybadger.notify(e, force: true) (to skip ignore filters).
    • ๐Ÿšš The CLI command honeybadger config has been removed.
    • ๐Ÿšš All deprecated Rails controller methods (from version 1.x) have been removed.
    • ๐Ÿ—„ The deprecated Honeybadger::Rack::MetricsReporter middleware has been removed.

    ๐Ÿ›  Fixed

    • Arrays are no longer compacted during sanitization (nil values will be sent as they originally appeared).
    • ๐Ÿ”Œ Resque plugin now reports Resque::DirtyExit exceptions.