airbrake/airbrake-ruby

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
# Airbrake Ruby Changelog

### master

- No pending changes to be released

### [v6.2.2][v6.2.2] (October 4, 2023)

- Use `error_host` instead of `host` to avoid triggering a deprecation warning
  with deployment tracking ([#721](https://github.com/airbrake/airbrake-ruby/pull/721))

### [v6.2.1][v6.2.1] (March 22, 2023)

- Fixed ruby/timeout issue by avoiding `ThreadGroup#enclose` ([#714](https://github.com/airbrake/airbrake-ruby/pull/714))
- Deprecated the `host` option in favor of `error_host` ([#711](https://github.com/airbrake/airbrake-ruby/pull/711))
- Updated YARD dependency to work with most recent ruby ([#715](https://github.com/airbrake/airbrake-ruby/pull/715))
- Improved a spec that was depending on the GitHub actions git setup ([#716](https://github.com/airbrake/airbrake-ruby/pull/716))

### [v6.2.0][v6.2.0] (September 5, 2022)

- Added the `backlog` option to the config, which enables or disables the
  Backlog feature ([#702](https://github.com/airbrake/airbrake-ruby/pull/702))

### [v6.1.2][v6.1.2] (September 1, 2022)

- Fixed `ArgumentError: invalid byte sequence in UTF-8` which could be raised
  during notifying exceptions with invalid characters in their messages
  ([#694](https://github.com/airbrake/airbrake-ruby/pull/694))
- Fixed `` NoMethodError: undefined method `split' for nil:NilClass`` when the
  given exception sets its message to `nil`
  ([#698](https://github.com/airbrake/airbrake-ruby/pull/698))

### [v6.1.1][v6.1.1] (June 15, 2022)

- Improved support of Ruby 3.1's error highlighting. The error highlighting now
  gets stripped from the exception message. The error message with the
  highlighting gets added to `context/error_message`
  ([#690](https://github.com/airbrake/airbrake-ruby/pull/690))

### [v6.1.0][v6.1.0] (April 13, 2022)

- Fixed `Errno::EAGAIN`, which may happen in certain environments when
  configuring Airbrake
  ([#684](https://github.com/airbrake/airbrake-ruby/pull/684))
- The `ignore_environments` option can now control remote configuration. If the
  current `environment` matches an environment specified in
  `ignore_environments`, then the remote configuration won't be fetched. This is
  equivalent to having `remote_config = false`
  ([#685](https://github.com/airbrake/airbrake-ruby/pull/685))

### [v6.0.2][v6.0.2] (January 10, 2022)

- Fixed `` NoMethodError: undefined method `getutc' `` for `#notify_request` and
  other APM methods, which accept `time` parameter
  ([#673](https://github.com/airbrake/airbrake-ruby/pull/673),
  [#676](https://github.com/airbrake/airbrake-ruby/pull/676))

### [v6.0.1][v6.0.1] (September 20, 2021)

- Changed the severity of the log message that gets printed when AsyncSender's
  thread pool capacity reaches the limit from `error` to `info`. With this new
  severity the message will be silenced by default.
  ([#667](https://github.com/airbrake/airbrake-ruby/pull/667))
- Added support for proxies when fetching remote configs
  ([#668](https://github.com/airbrake/airbrake-ruby/pull/668))

### [v6.0.0][v6.0.0] (September 20, 2021)

Breaking changes:

- Dropped support for Ruby 2.3
  ([#663](https://github.com/airbrake/airbrake-ruby/pull/663))
- Dropped support for Ruby 2.4
  ([#663](https://github.com/airbrake/airbrake-ruby/pull/663))

### [v5.2.1][v5.2.1] (June 22, 2021)

- Improved logging on closing notifiers
  ([#644](https://github.com/airbrake/airbrake-ruby/pull/644))
- Improved `Airbrake.merge_context` thread-safety
  ([#659](https://github.com/airbrake/airbrake-ruby/pull/659))

### [v5.2.0][v5.2.0] (December 4, 2020)

- Added the `remote_config` option. This option configures the remote
  configuration feature
  ([#636](https://github.com/airbrake/airbrake-ruby/pull/636))

### [v5.1.1][v5.1.1] (November 17, 2020)

- Remote config: improved handling of responses that return HTML (they will be
  logged correctly) ([#627](https://github.com/airbrake/airbrake-ruby/pull/627),
  [#628](https://github.com/airbrake/airbrake-ruby/pull/628))
- Remote config: changed default host to `https://notifier-configs.airbrake.io`
  ([#629](https://github.com/airbrake/airbrake-ruby/pull/629))

### [v5.1.0][v5.1.0] (October 20, 2020)

- Deleted support for dumping/loading the remote config
  ([#621](https://github.com/airbrake/airbrake-ruby/pull/621))
- Stopped fetching notifier config when Airbrake's environment is configured to
  `test` ([#622](https://github.com/airbrake/airbrake-ruby/pull/622))

### [v5.0.2][v5.0.2] (August 18, 2020)

- Remote config: fixed bug where remote config can disappear from the queried
  URL ([#616](https://github.com/airbrake/airbrake-ruby/pull/616))
- Remote config: fixed bug where setting `performance_stats` or
  `error_notifications` has no effect
  ([#618](https://github.com/airbrake/airbrake-ruby/pull/618))

### [v5.0.1][v5.0.1] (August 17, 2020)

- Remote config: fixed bug where remote config cannot be applied when the remote
  config's `config_route` is an empty string
  ([#614](https://github.com/airbrake/airbrake-ruby/pull/614))

### [v5.0.0][v5.0.0] (August 17, 2020)

Breaking changes:

- Dropped support for Ruby 2.1
  ([#603](https://github.com/airbrake/airbrake-ruby/pull/603))
- Dropped support for Ruby 2.2
  ([#604](https://github.com/airbrake/airbrake-ruby/pull/604))
- Dropped support for `:start_time` & `:end_time` params for APM methods such as
  `Airbrake.notify_request`
  ([#609](https://github.com/airbrake/airbrake-ruby/pull/609))
- Dropped support for `blacklist_keys` & `whitelist_keys`
  ([#610](https://github.com/airbrake/airbrake-ruby/pull/610))

Bug fixes:

- Fixed unwanted mutation of nested hashes passed through `Notice#[]=`
  ([#597](https://github.com/airbrake/airbrake-ruby/pull/597))

Features:

- Added the `remote_config_host` option, which is responsible for specifying the
  host, which provides the remote config
  ([#611](https://github.com/airbrake/airbrake-ruby/pull/611))

### [v5.0.0.rc.2][v5.0.0.rc.2] (July 29, 2020)

- Started sending information about notifier name & version, operating system &
  language with every remote config GET request
  ([#594](https://github.com/airbrake/airbrake-ruby/pull/594))
- Remote settings: updated S3 bucket name, which fixed config fetching
  ([#595](https://github.com/airbrake/airbrake-ruby/pull/595))

### [v5.0.0.rc.1][v5.0.0.rc.1] (July 13, 2020)

- Added the `error_notifications` option (enabled by default). This option
  disables `Airbrake.notify` calls (makes them no-op)
  ([#583](https://github.com/airbrake/airbrake-ruby/pull/583))
- `Airbrake.close` always returns `nil` now
  ([#587](https://github.com/airbrake/airbrake-ruby/pull/587))
- Renamed `Airbrake::Config#endpoint` to `Airbrake::Config#error_endpoint`
  ([#589](https://github.com/airbrake/airbrake-ruby/pull/589))
- Added a new configuration option `apm_host`
  ([#589](https://github.com/airbrake/airbrake-ruby/pull/589))
- Added an alias for the `host` configuration option - `error_host`
  ([#589](https://github.com/airbrake/airbrake-ruby/pull/589))
- Added experimental support for remote configuration (will be elaborated when
  stable version is released)
  ([#585](https://github.com/airbrake/airbrake-ruby/pull/585),
  [#586](https://github.com/airbrake/airbrake-ruby/pull/586))

### [v4.15.0][v4.15.0] (June 17, 2020)

- Deprecated `blacklist_keys` in favor of `blocklist_keys`
  ([#580](https://github.com/airbrake/airbrake-ruby/pull/580))
- Deprecated `whitelist_keys` in favor of `allowlist_keys`
  ([#580](https://github.com/airbrake/airbrake-ruby/pull/580))

### [v4.14.1][v4.14.1] (April 22, 2020)

- Fixed `ThreadError: can't move to the enclosed thread group` when using
  `notify` inside a `fork`
  ([#577](https://github.com/airbrake/airbrake-ruby/pull/577))

### [v4.14.0][v4.14.0] (April 10, 2020)

- Fixed a bug where some default filters are not appended
  ([#573](https://github.com/airbrake/airbrake-ruby/pull/573)):
  - `Airbrake::Filters::RootDirectoryFilter`
  - `Airbrake::Filters::GitRevisionFilter`
  - `Airbrake::Filters::GitRepositoryFilter`
  - `Airbrake::Filters::GitLastCheckoutFilter`
- Added `Airbrake::NoticeNotifier#has_filter?`, which checks whether the filter
  chain of the notifier includes an instance of the given class
  ([#573](https://github.com/airbrake/airbrake-ruby/pull/573))

### [v4.13.4][v4.13.4] (April 9, 2020)

- Added support for `AIRBRAKE_DEPLOY_USERNAME`, which overrides deployer
  username in the automatic deploy tracking feature
  ([#566](https://github.com/airbrake/airbrake-ruby/pull/566))

### [v4.13.3][v4.13.3] (March 2, 2020)

- Added the ability to filter via `blacklist_keys` the following keys:
  `context/referer`, `context/httpMethod`, `context/userAddr`,
  `context/userAgent`
  ([#562](https://github.com/airbrake/airbrake-ruby/pull/562))
- Fixed addition of duplicate filters on multiple `Airbrake.configure` calls
  ([#563](https://github.com/airbrake/airbrake-ruby/pull/563))
- Improved thread-safety of `Airbrake::Stat`
  ([#560](https://github.com/airbrake/airbrake-ruby/pull/560))

### [v4.13.2][v4.13.2] (February 21, 2020)

- `AsyncSender`: fixed `` undefined method `first' for nil:NilClass
(NoMethodError) `` when trying to log an error message for a performance stat
  ([#558](https://github.com/airbrake/airbrake-ruby/pull/558))

### [v4.13.1][v4.13.1] (February 11, 2020)

- `PerformanceNotifier`: fixed bug when the backend would reject valid payload
  due to TDigest count mismatch
  ([#549](https://github.com/airbrake/airbrake-ruby/pull/549)). For example:

  ```
  ERROR -- : **Airbrake: tdigest.count=94, but count=100
  ```

- `PerformanceNotifier`: fixed `ThreadError: deadlock; recursive locking`
  ([#554](https://github.com/airbrake/airbrake-ruby/pull/554))
- Fixed `Airbrake::Loggable` and `Airbrake::Config.instance.logger` not being
  set to `Logger::WARN` by default (as promised by the README)
  ([#551](https://github.com/airbrake/airbrake-ruby/pull/551))

### [v4.13.0][v4.13.0] (January 27, 2020)

- Added `Airbrake::Queue#route` for filter API compatibility. It always returns
  an empty string ([#539](https://github.com/airbrake/airbrake-ruby/pull/539))
- Bumped `rbtree3` dependency to v0.6.0
  ([#541](https://github.com/airbrake/airbrake-ruby/pull/541))
- Fixed all Ruby 2.7 warnings
  ([#540](https://github.com/airbrake/airbrake-ruby/pull/540))

### [v4.12.0][v4.12.0] (January 7, 2020)

- Added a new option called `job_stats`, which controls whether the library
  should send jobs (aka tasks/workers/queues)
  ([#534](https://github.com/airbrake/airbrake-ruby/pull/534))

### [v4.11.1][v4.11.1] (December 20, 2019)

- `PerformanceNotifier`: started rejecting metrics with zero timing
  ([#528](https://github.com/airbrake/airbrake-ruby/pull/528))
- `PerformanceNotifier` started returning a rejected promise if a filter ignores
  a metric ([#529](https://github.com/airbrake/airbrake-ruby/pull/529))

### [v4.11.0][v4.11.0] (December 20, 2019)

- `NoticeNotifier` fixed confusing error message when trying to build a notice
  when Airbrake was closed
  ([#525](https://github.com/airbrake/airbrake-ruby/pull/525))
- All "performance" methods such as `Airbrake.notify_request` have deprecated
  `:start_time` and `:end_time` parameters. Instead, users should provide
  `:timing` (mandatory) `:time` parameters (optional)
  ([#526](https://github.com/airbrake/airbrake-ruby/pull/526)). Therefore:

  Before:

  ```rb
  start_time = Time.now
  calculate_operation

  Airbrake.notify_request(
    ...,
    start_time: start_time,
    end_time: Time.now,
  )
  ```

  After:

  ```rb
  timing = Airbrake::Benchmark.measure do
    calculate_operation
  end

  Airbrake.notify_request(
    ...,
    timing: timing,
  )
  ```

### [v4.10.1][v4.10.1] (December 12, 2019)

- Fixed bug in `PerformanceNotifier` where metric's `start_time` and
  `end_time` could be the same. This was resulting into sending `sum` statistics
  for `:total` payload to equal to `0.0`. Zero `sum` is rejected by the backend,
  and as result, the whole metric is rejected as well
  ([#522](https://github.com/airbrake/airbrake-ruby/pull/522))

### [v4.10.0][v4.10.0] (December 12, 2019)

- Added `Airbrake.notfy_queue_sync`
  ([#518](https://github.com/airbrake/airbrake-ruby/pull/518))
- Added `Airbrake.notify_request_sync`, `Airbrake.notify_query_sync` &
  `Airbrake.notify_performance_sync`
  ([#519](https://github.com/airbrake/airbrake-ruby/pull/519))
- Fixed bug where `Airbrake.close` would spawn notifiers (if they didn't exist)
  just to close them immediately
  ([#520](https://github.com/airbrake/airbrake-ruby/pull/520))

### [v4.9.0][v4.9.0] (December 9, 2019)

- Added `Airbrake.notify_queue`, which sends queue (worker) info to Airbrake
  ([#513](https://github.com/airbrake/airbrake-ruby/pull/513))

### [v4.8.0][v4.8.0] (October 23, 2019)

- Enabled `query_stats` by default
  ([#509](https://github.com/airbrake/airbrake-ruby/pull/509))

### [v4.7.1][v4.7.1] (October 11, 2019)

- Added more irrelevant SQL queries to the query stats ignore list
  ([#507](https://github.com/airbrake/airbrake-ruby/pull/507))

### [v4.7.0][v4.7.0] (October 3, 2019)

- Improved grouping of some SQL queries
  ([#504](https://github.com/airbrake/airbrake-ruby/pull/504))
- Started ignoring some service SQL queries such as COMMIT, BEGIN and others
  ([#505](https://github.com/airbrake/airbrake-ruby/pull/505))
- Various performance & memory improvements
  ([#498](https://github.com/airbrake/airbrake-ruby/pull/498),
  [#500](https://github.com/airbrake/airbrake-ruby/pull/500),
  [#501](https://github.com/airbrake/airbrake-ruby/pull/501),
  [#502](https://github.com/airbrake/airbrake-ruby/pull/502),
  [#503](https://github.com/airbrake/airbrake-ruby/pull/503))

### [v4.6.0][v4.6.0] (August 5, 2019)

- Added the `query_stats` option that configures SQL performance
  monitoring. If `performance_stats` is `false`, setting this to `true` won't
  have effect because `performance_stats` has higher precedence. It's also
  disabled by default, and it's currently in alpha (works only for some
  accounts). Enabling is not recommended for now.
  ([#495](https://github.com/airbrake/airbrake-ruby/pull/495))

### [v4.5.1][v4.5.1] (July 29, 2019)

- Improved performance of `PerformanceNotifier` (sic!)
  ([#490](https://github.com/airbrake/airbrake-ruby/pull/490))
- Improved performance of `Airbrake::Stat` when logging (or inspecting)
  ([#491](https://github.com/airbrake/airbrake-ruby/pull/491))

### [v4.5.0][v4.5.0] (June 25, 2019)

- Fixed `AsyncSender` returning `nil` instead of a rejected promise when it
  reaches its capacity
  ([#484](https://github.com/airbrake/airbrake-ruby/pull/484))
- **IMPORTANT**: Enabled `performance_stats` by default. If you wish to disable
  it, set `config.performance_stats = false`
  ([#485](https://github.com/airbrake/airbrake-ruby/pull/485))

### [v4.4.0][v4.4.0] (May 9, 2019)

- Added `Airbrake::Query#stash`, `Airbrake::Request#stash`,
  `Airbrake::PerformanceBreakdown#stash` that allows storing arbitrary
  information in these structures
  ([#481](https://github.com/airbrake/airbrake-ruby/pull/481))
- Added the ability to attach objects to stash to `Airbrake.notify_query`,
  `Airbrake.notify_request`, `Airbrake.notify_performance_breakdown`
  ([#481](https://github.com/airbrake/airbrake-ruby/pull/481))

  Example:

  ```ruby
  query_info = { query: '...', ...}
  stash = { request_id: 123 }
  Airbrake.notify_query(query_info, stash)
  ```

  This stash can be accessed from performance filters.

### [v4.3.0][v4.3.0] (April 30, 2019)

- Added `Airbrake::TimedTrace` for measuring performance of arbitrary code
  chunks ([#476](https://github.com/airbrake/airbrake-ruby/pull/476))

### [v4.2.5][v4.2.5] (April 11, 2019)

- Fixed `Airbrake.performance_notifier` & `Airbrake.deploy_notifier` returning
  wrong value ([#472](https://github.com/airbrake/airbrake-ruby/pull/472))

### [v4.2.4][v4.2.4] (April 10, 2019)

- Added `Airbrake::Benchmark` for measuring time of execution of Ruby
  operations ([#467](https://github.com/airbrake/airbrake-ruby/pull/467))
- Fixed `KeysBlacklist` & `KeysWhitelist` filters not being added
  ([#469](https://github.com/airbrake/airbrake-ruby/pull/469))

### [v4.2.3][v4.2.3] (April 8, 2019)

- Stopped resetting default notifiers on `Airbrake.configure`, which can lead to
  bugs where default filters are not installed
  ([#464](https://github.com/airbrake/airbrake-ruby/pull/464))

### [v4.2.2][v4.2.2] (March 27, 2019)

- Fixed `blacklist_keys/whitelist_keys` options not working
  ([#461](https://github.com/airbrake/airbrake-ruby/pull/461))

### [v4.2.1][v4.2.1] (March 14, 2019)

- Stopped raising `Airbrake::Error` when configuring Airbrake without a project
  id or project key ([#458](https://github.com/airbrake/airbrake-ruby/pull/458))

### [v4.2.0][v4.2.0] (March 7, 2019)

- Added `Airbrake.notify_performance_breakdown` that sends performance data by
  arbitrary groups ([#454](https://github.com/airbrake/airbrake-ruby/pull/454))

### [v4.1.0][v4.1.0] (Feburary 28, 2019)

- `add_filter` & `add_performance_filter` add filters even when Airbrake is not
  configured ([#445](https://github.com/airbrake/airbrake-ruby/pull/445),
  [#451](https://github.com/airbrake/airbrake-ruby/pull/451))

### [v4.0.1][v4.0.1] (Feburary 26, 2019)

- Fixed bug in `Airbrake.configure` not setting `logger` properly
  ([#442](https://github.com/airbrake/airbrake-ruby/pull/442))
- Fixed bug with `Airbrake::Config.instance` returning a broken Config instance
  ([#443](https://github.com/airbrake/airbrake-ruby/pull/443))

### [v4.0.0][v4.0.0] (Feburary 25, 2019)

- Removed support for deprecated `Airbrake.configure(:name)`
  ([#429](https://github.com/airbrake/airbrake-ruby/pull/429))
- Renamed `Airbrake.create_deploy` to `Airbrake.notify_deploy`
  ([#427](https://github.com/airbrake/airbrake-ruby/pull/427))
- Deleted deprecated `Airbrake::Notifier` & `Airbrake::NilNotifier` constants
  ([#425](https://github.com/airbrake/airbrake-ruby/pull/425))
- Deleted deprecated `Config#route_stats`, `Config#route_stats_flush_period`
  ([#425](https://github.com/airbrake/airbrake-ruby/pull/425))
- `PerformanceNotifier`, `NoticeNotifier` & `DeployNotifier` stopped accepting
  deprecated Hash as a `config` object
  ([#425](https://github.com/airbrake/airbrake-ruby/pull/425))
- Deleted deprecated `Airbrake#[]`
  ([#432](https://github.com/airbrake/airbrake-ruby/pull/432))
- Deleted deprecated `Airbrake#notifiers`
  ([#433](https://github.com/airbrake/airbrake-ruby/pull/433))

### [v3.2.6][v3.2.6] (Feburary 25, 2019)

- Reduced clutter of `DeployNotifier` and `PerformanceNotifier` when
  `inspect`ing ([#423](https://github.com/airbrake/airbrake-ruby/pull/423))
- Deprecated `Airbrake.create_deploy` in favour of `Airbrake.notify_deploy`
  ([#426](https://github.com/airbrake/airbrake-ruby/pull/426))
- Deprecated `Airbrake.configure(:name)` in favour of `Airbrake.configure` or
  `Airbrake::NoticeNotifier.new`
  ([#430](https://github.com/airbrake/airbrake-ruby/pull/430))
- Deprecated `Airbrake#[]` in favour of `Airbrake::NoticeNotifier.new`
  ([#431](https://github.com/airbrake/airbrake-ruby/pull/431))
- Deprecated `Airbrake#notifiers`
  ([#434](https://github.com/airbrake/airbrake-ruby/pull/434))

### [v3.2.5][v3.2.5] (Feburary 20, 2019)

- Added the ability to attach caller location to `Airbrake::Query` (function,
  file, line) ([#419](https://github.com/airbrake/airbrake-ruby/pull/419))
- Added the ability to attach environment to `Airbrake::Query` &
  `Airbrake::Request`
  ([#421](https://github.com/airbrake/airbrake-ruby/pull/421))

### [v3.2.4][v3.2.4] (Feburary 15, 2019)

- Fixed `` undefined method `split' for nil:NilClass `` in `GitRepositoryFilter`
  when `git` is not installed
  ([#417](https://github.com/airbrake/airbrake-ruby/pull/417))

### [v3.2.3][v3.2.3] (Feburary 12, 2019)

- Fixed `no implicit conversion of Array into String` raised by
  `FilterChain#inspect` when no filters were added
  ([#414](https://github.com/airbrake/airbrake-ruby/pull/414))

### [v3.2.2][v3.2.2] (Febuary 11, 2019)

- Fixed `` undefined method `notify_request' `` when calling
  `Airbrake.notify_request` (added backwards compatibility)
  ([#411](https://github.com/airbrake/airbrake-ruby/pull/411))

### [v3.2.1][v3.2.1] (Febuary 11, 2019)

- Fixed `Malformed version number string` in `GitRepositoryFilter` when
  detecting Git version
  ([#409](https://github.com/airbrake/airbrake-ruby/pull/409))
- Fixed JRuby installing `rbtree3` instead of `rbtree-jruby`
  ([#408](https://github.com/airbrake/airbrake-ruby/pull/408))

### [v3.2.0][v3.2.0] (February 8, 2019)

- Dropped `tdigest` dependency. Airbrake Ruby imports that code, instead
  ([#400](https://github.com/airbrake/airbrake-ruby/pull/400))
- Started depending on [rbtree3](https://rubygems.org/gems/rbtree3) instead of
  [rbtree](https://rubygems.org/gems/rbtree), which fixed [`_dump': instance of
IO needed (TypeError)`](https://github.com/airbrake/airbrake/issues/894) when
  trying to dump an RBTree
  ([#400](https://github.com/airbrake/airbrake-ruby/pull/400))
- Added `Airbrake.notify_query` to send SQL queries to Airbrake
  ([#379](https://github.com/airbrake/airbrake-ruby/pull/376))
- Added `Airbrake.add_performance_filter` and
  `Airbrake.delete_performance_filter` to filter out sensitive SQL query and
  route data ([#395](https://github.com/airbrake/airbrake-ruby/pull/395))
- Added `Airbrake.notifiers` to access the new performance notifier
  ([#398](https://github.com/airbrake/airbrake-ruby/pull/398))
- Deprecated `config.route_stats` in favor of `config.performance_stats`
  ([#381](https://github.com/airbrake/airbrake-ruby/pull/381))
- Deprecated `Airbrake::Notifier` in favor of `Airbrake::NoticeNotifier`
  ([#386](https://github.com/airbrake/airbrake-ruby/pull/386))
- Fixed time truncation on `Airbrake.notify_request`, which wasn't respecting
  UTC offset ([#394](https://github.com/airbrake/airbrake-ruby/pull/394))
- Fixed bug where `GitRepositoryFilter` invokes `get-url`, which doesn't exist
  on Git 2.6 and lower
  ([#399](https://github.com/airbrake/airbrake-ruby/pull/399))
  ([#404](https://github.com/airbrake/airbrake-ruby/pull/404))

### [v3.1.0][v3.1.0] (January 23, 2019)

- Added `Airbrake.delete_filter`, which can be used for deleting filters added
  via `Airbrake.add_filter`
  ([#376](https://github.com/airbrake/airbrake-ruby/pull/376))

### [v3.0.0][v3.0.0] (January 16, 2019)

- Disabled `route_stats` by default. If you were using our release candidate
  gems, all you need to do is to set it to `true` in your config
  ([#372](https://github.com/airbrake/airbrake-ruby/pull/372))

### [v3.0.0.rc.9][v3.0.0.rc.9] (December 3, 2018)

- Added the `route_stats` option, which enables/disables route stat
  collection. Route stat collection also respects current environment now, which
  means the notifier won't be collecting route information for ignored
  environments ([#369](https://github.com/airbrake/airbrake-ruby/pull/369))
- Fixed `NoMethodError` in `GitLastCheckoutFilter`
  ([#368](https://github.com/airbrake/airbrake-ruby/pull/368))

### [v3.0.0.rc.8][v3.0.0.rc.8] (November 21, 2018)

- Reverted the fix applied in v3.0.0.rc.7 because it didn't do what it claimed
  ([#364](https://github.com/airbrake/airbrake-ruby/pull/364))

### [v3.0.0.rc.7][v3.0.0.rc.7] (November 19, 2018)

- Possibly fixed the problem where `RouteSender` sends routes with 0 count
  ([#362](https://github.com/airbrake/airbrake-ruby/pull/362))

### [v3.0.0.rc.6][v3.0.0.rc.6] (November 13, 2018)

- Fixed incorrect route statistics reporting (seconds instead of milliseconds)
  ([#360](https://github.com/airbrake/airbrake-ruby/pull/360))

### [v3.0.0.rc.5][v3.0.0.rc.5] (November 12, 2018)

- Renamed `Airbrake.inc_request` to `Airbrake.notify_request` and changed its
  signature ([#358](https://github.com/airbrake/airbrake-ruby/pull/358))

### [v3.0.0.rc.4][v3.0.0.rc.4] (November 6, 2018)

- Updated `/routes-stats` API to v5
  ([#355](https://github.com/airbrake/airbrake-ruby/pull/355))

### [v3.0.0.rc.3][v3.0.0.rc.3] (November 6, 2018)

- Set tdigest compression to 20
  ([#354](https://github.com/airbrake/airbrake-ruby/pull/354))

### [v3.0.0.rc.2][v3.0.0.rc.2] (October 30, 2018)

- **Dropped support for Ruby 2.0**
  ([#352](https://github.com/airbrake/airbrake-ruby/pull/352))
- Made `Airbrake::Notifier#inspect` less verbose
  ([#350](https://github.com/airbrake/airbrake-ruby/pull/350))
- Added new dependency `tdigest`. Started sending tdigests to the backend
  ([#351](https://github.com/airbrake/airbrake-ruby/pull/351))

### [v2.13.0.rc.1][v2.13.0.rc.1] (October 26, 2018)

- Added support for route stats
  ([#348](https://github.com/airbrake/airbrake-ruby/pull/348))

### [v2.12.0][v2.12.0] (October 11, 2018)

- Stopped passing project id on `Airbrake.create_deploy` as a query param
  ([#339](https://github.com/airbrake/airbrake-ruby/pull/339))
- Changed the endpoint that Airbrake Ruby sends errors to.

  Before: `https://airbrake.io/api/v4/projects/PROJECT_ID/notices`

  After: `https://api.airbrake.io/api/v4/projects/PROJECT_ID/notices`

  The endpoint neither accepts anything new nor removes existing functionality.
  ([#340](https://github.com/airbrake/airbrake-ruby/pull/340))

- Added the ability to automatically track deploys if an app is deployed with
  `.git` in the root of the project
  ([#341](https://github.com/airbrake/airbrake-ruby/pull/341))

  Note: this feature is enabled only for certain accounts. Further details as to
  how to use it will be published in the README once it's released to everybody.

- Cached revision of `GitRevisionFilter`, so we don't repeatedly
  read the file ([#342](https://github.com/airbrake/airbrake-ruby/pull/342))
- Changed the order of execution of inline filters (added via `Airbrake.notify
do ... end`) and the `Airbrake.add_filter` filters. Now the former is being
  executed first (used to be executed last)
  ([#345](https://github.com/airbrake/airbrake-ruby/pull/345))

### [v2.11.0][v2.11.0] (June 27, 2018)

- Added `GitRevisionFilter`
  ([#333](https://github.com/airbrake/airbrake-ruby/pull/333))

### [v2.10.0][v2.10.0] (May 3, 2018)

- Added the `versions` option
  ([#327](https://github.com/airbrake/airbrake-ruby/pull/327))
- Added `DependencyFilter` (optional)
  ([#328](https://github.com/airbrake/airbrake-ruby/pull/328))

### [v2.9.0][v2.9.0] (April 26, 2018)

- Changed format for `[GEM_ROOT]` & `[PROJECT_ROOT]` placeholders to
  `/GEM_ROOT` & `/PROJECT_ROOT` respectively. This improves searching
  capabilities in the Airbrake
  dashboard. ([#311](https://github.com/airbrake/airbrake-ruby/pull/311))
- Fixed `TypeError: can't move to the enclosed thread group` when
  using `notify` at the same time from multiple threads
  ([#316](https://github.com/airbrake/airbrake-ruby/pull/316))
- Added `Airbrake.merge_context` that allows reporting data on different scopes
  along with the error
  ([#317](https://github.com/airbrake/airbrake-ruby/pull/317))

### [v2.8.3][v2.8.3] (March 12, 2018)

- Fixed bug introduced in v2.8.2 in blacklist/whitelist filtering. All
  v2.8.2 users must upgrade to the recent version
  ([#309](https://github.com/airbrake/airbrake-ruby/pull/309))

### [v2.8.2][v2.8.2] (March 5, 2018)

- Fixed bug where params inside arrays couldn't be
  blacklisted/whitelisted
  ([#306](https://github.com/airbrake/airbrake-ruby/pull/306))

### [v2.8.1][v2.8.1] (January 31, 2018)

- Blacklisted the `vendor/bundle` path for code hunks. This fixes unwanted code
  hunk reporting for gems inside `root_directory`, which causes every notice to
  go over the notice limit.
  ([#302](https://github.com/airbrake/airbrake-ruby/pull/302))

### [v2.8.0][v2.8.0] (January 16, 2018)

- Added support for Regexps for the `ignore_environments` option
  ([#299](https://github.com/airbrake/airbrake-ruby/pull/299))

### [v2.7.1][v2.7.1] (January 8, 2018)

- Fixed disabling of code hunks. It was impossible to disable them
  ([#295](https://github.com/airbrake/airbrake-ruby/pull/295))

### [v2.7.0][v2.7.0] (December 13, 2017)

- Stopped gathering thread information by default
  ([#292](https://github.com/airbrake/airbrake-ruby/pull/292))

### [v2.6.2][v2.6.2] (December 4, 2017)

- Additional fixes for circular references in the new truncator
  ([#288](https://github.com/airbrake/airbrake-ruby/pull/288)). Again, if you're
  on v2.6, please upgrade as soon as possible

### [v2.6.1][v2.6.1] (December 1, 2017)

- Fixed circular references in the new truncator
  ([#286](https://github.com/airbrake/airbrake-ruby/pull/286)). All v2.6.0 users
  are _highly recommended_ to upgrade.

### [v2.6.0][v2.6.0] (November 9, 2017)

- Reworked truncation to not mutate given payload (params) and made it freeze it
  after the truncation is done (to prevent future mutations)
  ([#283](https://github.com/airbrake/airbrake-ruby/pull/283))

### [v2.5.1][v2.5.1] (October 26, 2017)

- Fixed the bug when both `whitelist_keys` and `blacklist_keys` are specified
  ([#277](https://github.com/airbrake/airbrake-ruby/pull/277))
- Started passing project key through the `Authorization` header instead of the
  `key` query parameter
  ([#278](https://github.com/airbrake/airbrake-ruby/pull/278))

### [v2.5.0][v2.5.0] (October 20, 2017)

- Added code hunks support (surrounding lines around every stack frame)
  ([#273](https://github.com/airbrake/airbrake-ruby/pull/273))

### [v2.4.2][v2.4.2] (October 12, 2017)

- Fixed bug when HTTP headers couldn't be filtered
  ([#257](https://github.com/airbrake/airbrake-ruby/pull/257))

### [v2.4.1][v2.4.1] (October 12, 2017)

- Added support for code hunks. This feature is not officially released and
  doesn't work yet ([#258](https://github.com/airbrake/airbrake-ruby/pull/258))

### [v2.4.0][v2.4.0] (September 20, 2017)

- Started appending `$PROGRAM_NAME` to `environment`
  ([#251](https://github.com/airbrake/airbrake-ruby/pull/251))
- Added support for rate limiting by IP
  ([#253](https://github.com/airbrake/airbrake-ruby/pull/253))

### [v2.3.2][v2.3.2] (July 26, 2017)

- Every notice started carrying original exception, accessible via the notice
  stash ([#241](https://github.com/airbrake/airbrake-ruby/pull/241))

### [v2.3.1][v2.3.1] (July 15, 2017)

- Fix response parser not parsing errors
  ([#239](https://github.com/airbrake/airbrake-ruby/pull/239))

### [v2.3.0][v2.3.0] (June 6, 2017)

- Added a new helper method `Airbrake.configured?`
  ([#237](https://github.com/airbrake/airbrake-ruby/pull/237))

### [v2.2.7][v2.2.7] (June 24, 2017)

- Fixed unwanted mutation of `params` on `Airbrake.notify(ex, params)`
  ([#234](https://github.com/airbrake/airbrake-ruby/pull/234))

### [v2.2.6][v2.2.6] (June 15, 2017)

- Fixed segfault in `ThreadFilter` on Ruby 2.1.3
  ([#231](https://github.com/airbrake/airbrake-ruby/pull/231))

### [v2.2.5][v2.2.5] (May 23, 2017)

- Fixed bug when the block form of `notify` would run its block for ignored
  notices: ([#226](https://github.com/airbrake/airbrake-ruby/pull/226))

### [v2.2.4][v2.2.4] (May 17, 2017)

- Fixed bug in `ThreadFilter`, when it attaches an object, which can't be dumped
  to JSON. As result, `ThreadFilter` has become stricter: it only allows
  instances of whitelisted classes (primitives)
  ([#224](https://github.com/airbrake/airbrake-ruby/pull/224))

### [v2.2.3][v2.2.3] (May 11, 2017)

- Fixed bug in keys filters while trying to filter a non Symbol/String key when
  there's a Regexp ignore pattern defined
  ([#213](https://github.com/airbrake/airbrake-ruby/pull/213))

### [v2.2.2][v2.2.2] (May 5, 2017)

- Fixed `SystemStackError` while using the thread filter with RSpec
  ([#208](https://github.com/airbrake/airbrake-ruby/pull/208))

### [v2.2.1][v2.2.1] (May 4, 2017)

- Fixed segfault on Ruby 2.1 while using the thread filter
  ([#206](https://github.com/airbrake/airbrake-ruby/pull/206))

### [v2.2.0][v2.2.0] (May 1, 2017)

- Make `notify/notify_sync` accept a block, which yields an `Airbrake::Notice`
  ([#201](https://github.com/airbrake/airbrake-ruby/pull/201))
- Started sending `context/severity`, which is set to `error`
  ([#202](https://github.com/airbrake/airbrake-ruby/pull/202))

### [v2.1.0][v2.1.0] (April 27, 2017)

- Return `Airbrake::NilNotifier` when no notifiers are configured and
  `Airbrake.[]` is called
  ([#191](https://github.com/airbrake/airbrake-ruby/pull/191))
- Fixed the `host` option not recognizing hosts with subpaths such as
  `https://example.com/subpath/`
  ([#192](https://github.com/airbrake/airbrake-ruby/pull/192))
- Fixed the order of invokation of library & user defined filters, so the user
  filters are always invoked after all the library filters
  ([#195](https://github.com/airbrake/airbrake-ruby/pull/195))
- Started attaching current thread information (including thread & fiber
  variables) ([#198](https://github.com/airbrake/airbrake-ruby/pull/198))

### [v2.0.0][v2.0.0] (March 21, 2017)

- **IMPORTANT:** Removed the `component/action` API deprecated
  in [v1.7.0](#v170-january-20-2017)
  ([#169](https://github.com/airbrake/airbrake-ruby/pull/169))
- **IMPORTANT:** Removed `notifier_name` argument deprecated
  in [v1.8.0](#v180-february-23-2017)
  ([#176](https://github.com/airbrake/airbrake-ruby/pull/176))
- Fixed default `root_directory` not resolving symlinks
  ([#180](https://github.com/airbrake/airbrake-ruby/pull/180))
- Fixed parsing JRuby exceptions that don't subclass `Java::JavaLang::Throwable`
  ([#184](https://github.com/airbrake/airbrake-ruby/pull/184))

### [v1.8.0][v1.8.0] (February 23, 2017)

- **IMPORTANT:** Deprecated `notifier_name` argument for all public API methods
  such as `Airbrake.notify('oops', {}, :my_notifier)`
  ([#168](https://github.com/airbrake/airbrake-ruby/pull/168))
- `root_directory` is now defaulted to either `Bundler.root` or current working
  directory ([#171](https://github.com/airbrake/airbrake-ruby/pull/171))

### [v1.7.1][v1.7.1] (February 3, 2017)

- **IMPORTANT:** fixed bug when `blacklist_keys/whitelist_keys` does not filter
  keys at all ([#159](https://github.com/airbrake/airbrake-ruby/pull/159))

### [v1.7.0][v1.7.0] (January 20, 2017)

- **IMPORTANT:** support for Ruby 1.9.2, 1.9.3 & JRuby (1.9-mode) is dropped
  ([#146](https://github.com/airbrake/airbrake-ruby/pull/146))
- **IMPORTANT:** added the promise API
  ([#143](https://github.com/airbrake/airbrake-ruby/pull/143))
- **IMPORTANT:** deprecated the `component/action` API (when setting through
  `params`) ([#151](https://github.com/airbrake/airbrake-ruby/pull/151))
- Improved parsing of JRuby frames which include classloader
  ([#140](https://github.com/airbrake/airbrake-ruby/pull/140))
- Fixed bug in the `host` option, when it is configured with a slug
  ([#145](https://github.com/airbrake/airbrake-ruby/pull/145))
- Added `Notice#stash` ([#152](https://github.com/airbrake/airbrake-ruby/pull/152))

### [v1.6.0][v1.6.0] (October 18, 2016)

- Added support for blacklisting/whitelisting using procs
  ([#108](https://github.com/airbrake/airbrake-ruby/pull/108))
- Deleted deprecated public API methods (whitelisting, blacklisting)
  ([#125](https://github.com/airbrake/airbrake-ruby/pull/125))
- Fixed support for Ruby 2.0.\* not being able to report ExecJS exceptions
  ([#130](https://github.com/airbrake/airbrake-ruby/pull/130))
- Reduced notice size (small improvement, which affects every single notice)
  ([#132](https://github.com/airbrake/airbrake-ruby/pull/132))

### [v1.5.0][v1.5.0] (September 9, 2016)

- Added support for custom exception attributes
  ([#113](https://github.com/airbrake/airbrake-ruby/pull/113))
- Started validating the 'environment' config option (a warning will be printed,
  if it is misconfigured)
  ([#115](https://github.com/airbrake/airbrake-ruby/pull/115))
- Fixed error while filtering unparseable backtraces
  ([#120](https://github.com/airbrake/airbrake-ruby/pull/120))
- Improved support for parsing JRuby backtraces
  ([#119](https://github.com/airbrake/airbrake-ruby/pull/119))
- Fixed bug where individual user fields couldn't be filtered
  ([#118](https://github.com/airbrake/airbrake-ruby/pull/118))

### [v1.4.6][v1.4.6] (August 18, 2016)

- Fixed support for ExecJS backtraces for Ruby 1.9.3 sometimes resulting in
  `NameError` ([#110](https://github.com/airbrake/airbrake-ruby/pull/110))

### [v1.4.5][v1.4.5] (August 15, 2016)

- Added support for CoffeeScript/ExecJS backtraces
  ([#107](https://github.com/airbrake/airbrake-ruby/pull/107))

### [v1.4.4][v1.4.4] (July 11, 2016)

- Added support for PL/SQL exceptions raised by
  [ruby-oci8](https://github.com/kubo/ruby-oci8)
  ([#99](https://github.com/airbrake/airbrake-ruby/pull/99))

### [v1.4.3][v1.4.3] (June 10, 2016)

- Made types of the `ignore_environments` and `environment` option values not to
  rely on each other when deciding if the current environment is ignored
  ([#94](https://github.com/airbrake/airbrake-ruby/pull/94))

### [v1.4.2][v1.4.2] (June 8, 2016)

- Print warning when the `environment` option is not configured, but
  `ignore_environments` is
  ([#92](https://github.com/airbrake/airbrake-ruby/pull/92))

### [v1.4.1][v1.4.1] (June 6, 2016)

- Allow passing a String for `project_id`
  ([#89](https://github.com/airbrake/airbrake-ruby/pull/89))

### [v1.4.0][v1.4.0] (June 6, 2016)

- Stopped raising error when the notifier lacks either project ID or project key
  and also told to ignore current environment. As the result, empty string for
  `project_key` is also validated now (forbidden)
  ([#87](https://github.com/airbrake/airbrake-ruby/pull/87))

### [v1.3.2][v1.3.2] (May 27, 2016)

- Fixed bug when the library raises unwanted exception, when current environment
  is ignored and a notifier is given an exception with bad backtrace
  ([#85](https://github.com/airbrake/airbrake-ruby/pull/85))

### [v1.3.1][v1.3.1] (May 13, 2016)

- Fixed infinite loop bug while trying to truncate a notice
  ([#83](https://github.com/airbrake/airbrake-ruby/pull/83))

### [v1.3.0][v1.3.0] (May 10, 2016)

- **IMPORTANT:** stopped raising the `the 'default' notifier isn't configured`
  error when Airbrake is not configured. Instead, when a notifier _is not_
  configured, all public API methods will be returning `nil`.
  ([#75](https://github.com/airbrake/airbrake-ruby/pull/75))

  Make sure that if you use `Airbrake.build_notice` or `Airbrake.notify_sync`,
  you protect yourself from a possible crash by handling the return value (it
  might be `nil`).

### [v1.2.4][v1.2.4] (May 4, 2016)

- Fixed bug when trying to truncate frozen strings
  ([#73](https://github.com/airbrake/airbrake-ruby/pull/73))

### [v1.2.3][v1.2.3] (April 22, 2016)

- Fixed `URI::InvalidURIError` while trying to filter non-standard URLs
  ([#70](https://github.com/airbrake/airbrake-ruby/pull/70))

### [v1.2.2][v1.2.2] (April 5, 2016)

- Fixed bug in `Notifier#notify` where the `params` Hash is ignored if the first
  argument is an `Airbrake::Notice`
  ([#66](https://github.com/airbrake/airbrake-ruby/pull/66))

### [v1.2.1][v1.2.1] (March 21, 2016)

- Fixed bug with regard to proxy configuration, when the library unintentionally
  overwrites the environment proxy
  ([#63](https://github.com/airbrake/airbrake-ruby/pull/63))

### [v1.2.0][v1.2.0] (March 11, 2016)

- **IMPORTANT:** changed public API of blacklist and whitelist filters. Instead
  of `Airbrake.blacklist_keys` and `Airbrake.whitelist_keys` please use the
  respective new config options
  ([#56](https://github.com/airbrake/airbrake-ruby/pull/56)):

  ```ruby
  # v1.1.0 and older
  Airbrake.blacklist_keys([:password, /credit/i])
  Airbrake.whitelist_keys([:page_id, 'user'])

  # New way
  Airbrake.configure do |c|
    c.blacklist_keys = [:password, /credit/i]
    c.whitelist_keys = [:page_id, 'user']
  end
  ```

  The old API is still supported, but _deprecated_.

- **IMPORTANT**: dropped support for reporting critical exceptions that
  terminate the process. This bit of functionality was moved to the
  [airbrake gem](https://github.com/airbrake/airbrake/pull/526) instead
  ([#61](https://github.com/airbrake/airbrake-ruby/pull/61))
- Started filtering the context payload
  ([#55](https://github.com/airbrake/airbrake-ruby/pull/55))
- Fixed bug when similar keys would be filtered out using non-regexp values for
  `Airbrake.blacklist/whitelist_keys`
  ([#54](https://github.com/airbrake/airbrake-ruby/pull/54))
- Fixed bug when async workers die due to various unexpected network errors
  ([#52](https://github.com/airbrake/airbrake-ruby/pull/52))

### [v1.1.0][v1.1.0] (February 25, 2016)

- Fixed bug in Ruby < 2.2, when trying to encode components while filtering
  ([#45](https://github.com/airbrake/airbrake-ruby/pull/45))
- Stopped blocking on full queue when sending errors asynchronously
  ([#47](https://github.com/airbrake/airbrake-ruby/pull/47))
- Added the `timeout` option
  ([#46](https://github.com/airbrake/airbrake-ruby/pull/46))

### [v1.0.4][v1.0.4] (February 2, 2016)

- Started attaching the hostname information by default
  ([#41](https://github.com/airbrake/airbrake-ruby/pull/41))

### [v1.0.3][v1.0.3] (January 18, 2016)

- Improved parsing of backtraces
  ([#25](https://github.com/airbrake/airbrake-ruby/pull/25),
  [#29](https://github.com/airbrake/airbrake-ruby/pull/29),
  [#30](https://github.com/airbrake/airbrake-ruby/pull/30))
- Made sure that generated notices always have a backtrace
  ([#21](https://github.com/airbrake/airbrake-ruby/pull/21))
- Made the asynchronous delivery mechanism more robust
  ([#26](https://github.com/airbrake/airbrake-ruby/pull/26))
- Improved `SystemExit` handling by ignoring it on a different level, which
  fixed issues with the Rake integration for the
  [airbrake gem](https://github.com/airbrake/airbrake)
  ([#32](https://github.com/airbrake/airbrake-ruby/pull/32))

### [v1.0.2][v1.0.2] (January 3, 2016)

- Ignored `SystemExit` in the `at_exit` hook, which has fixed the Rake
  integration for the [airbrake gem](https://github.com/airbrake/airbrake)
  ([#14](https://github.com/airbrake/airbrake-ruby/pull/14))

### [v1.0.1][v1.0.1] (December 22, 2015)

- Fixed the `Airbrake.add_filter` block API
  ([#10](https://github.com/airbrake/airbrake-ruby/pull/10))

### [v1.0.0][v1.0.0] (December 18, 2015)

- Improved backtrace parsing support
  ([#4](https://github.com/airbrake/airbrake-ruby/pull/4))

### [v1.0.0.rc.1][v1.0.0.rc.1] (December 11, 2015)

- Initial release

[v1.0.0.rc.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.0.0.rc.1
[v1.0.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.0.0
[v1.0.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.0.1
[v1.0.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.0.2
[v1.0.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.0.3
[v1.0.4]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.0.4
[v1.1.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.1.0
[v1.2.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.2.0
[v1.2.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.2.1
[v1.2.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.2.2
[v1.2.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.2.3
[v1.2.4]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.2.4
[v1.3.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.3.0
[v1.3.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.3.1
[v1.3.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.3.2
[v1.4.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.4.0
[v1.4.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.4.1
[v1.4.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.4.2
[v1.4.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.4.3
[v1.4.4]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.4.4
[v1.4.5]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.4.5
[v1.4.6]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.4.6
[v1.5.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.5.0
[v1.6.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.6.0
[v1.7.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.7.0
[v1.7.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.7.1
[v1.8.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v1.8.0
[v2.0.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.0.0
[v2.1.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.1.0
[v2.2.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.2.0
[v2.2.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.2.1
[v2.2.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.2.2
[v2.2.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.2.3
[v2.2.4]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.2.4
[v2.2.5]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.2.5
[v2.2.6]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.2.6
[v2.2.7]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.2.7
[v2.3.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.3.0
[v2.3.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.3.1
[v2.3.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.3.2
[v2.4.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.4.0
[v2.4.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.4.1
[v2.4.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.4.2
[v2.5.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.5.0
[v2.5.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.5.1
[v2.6.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.6.0
[v2.6.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.6.1
[v2.6.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.6.2
[v2.7.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.7.0
[v2.7.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.7.1
[v2.8.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.8.0
[v2.8.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.8.1
[v2.8.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.8.2
[v2.8.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.8.3
[v2.9.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.9.0
[v2.10.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.10.0
[v2.11.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.11.0
[v2.12.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.12.0
[v2.13.0.rc.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v2.13.0.rc.1
[v3.0.0.rc.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0.rc.2
[v3.0.0.rc.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0.rc.3
[v3.0.0.rc.4]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0.rc.4
[v3.0.0.rc.5]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0.rc.5
[v3.0.0.rc.6]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0.rc.6
[v3.0.0.rc.7]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0.rc.7
[v3.0.0.rc.8]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0.rc.8
[v3.0.0.rc.9]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0.rc.9
[v3.0.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.0.0
[v3.1.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.1.0
[v3.2.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.2.0
[v3.2.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.2.1
[v3.2.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.2.2
[v3.2.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.2.3
[v3.2.4]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.2.4
[v3.2.5]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.2.5
[v3.2.6]: https://github.com/airbrake/airbrake-ruby/releases/tag/v3.2.6
[v4.0.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.0.0
[v4.0.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.0.1
[v4.1.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.1.0
[v4.2.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.2.0
[v4.2.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.2.1
[v4.2.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.2.2
[v4.2.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.2.3
[v4.2.4]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.2.4
[v4.2.5]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.2.5
[v4.3.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.3.0
[v4.4.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.4.0
[v4.5.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.5.0
[v4.5.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.5.1
[v4.6.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.6.0
[v4.7.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.7.0
[v4.7.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.7.1
[v4.8.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.8.0
[v4.9.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.9.0
[v4.10.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.10.0
[v4.10.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.10.1
[v4.11.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.11.0
[v4.11.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.11.1
[v4.12.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.12.0
[v4.13.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.13.0
[v4.13.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.13.1
[v4.13.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.13.2
[v4.13.3]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.13.3
[v4.13.4]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.13.4
[v4.14.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.14.0
[v4.14.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.14.1
[v4.15.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v4.15.0
[v5.0.0.rc.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.0.0.rc.1
[v5.0.0.rc.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.0.0.rc.2
[v5.0.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.0.0
[v5.0.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.0.1
[v5.0.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.0.2
[v5.1.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.1.0
[v5.1.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.1.1
[v5.2.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.2.0
[v5.2.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v5.2.1
[v6.0.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.0.0
[v6.0.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.0.1
[v6.0.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.0.2
[v6.1.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.1.0
[v6.1.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.1.1
[v6.1.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.1.2
[v6.2.0]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.2.0
[v6.2.1]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.2.1
[v6.2.2]: https://github.com/airbrake/airbrake-ruby/releases/tag/v6.2.2