bugsnag 4.2.1 → 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.
Files changed (106) hide show
  1. checksums.yaml +5 -5
  2. data/.yardopts +12 -0
  3. data/CHANGELOG.md +814 -0
  4. data/README.md +21 -25
  5. data/VERSION +1 -1
  6. data/bugsnag.gemspec +19 -8
  7. data/lib/bugsnag/breadcrumb_type.rb +14 -0
  8. data/lib/bugsnag/breadcrumbs/breadcrumb.rb +109 -0
  9. data/lib/bugsnag/breadcrumbs/breadcrumbs.rb +13 -0
  10. data/lib/bugsnag/breadcrumbs/on_breadcrumb_callback_list.rb +48 -0
  11. data/lib/bugsnag/breadcrumbs/validator.rb +29 -0
  12. data/lib/bugsnag/cleaner.rb +170 -59
  13. data/lib/bugsnag/code_extractor.rb +137 -0
  14. data/lib/bugsnag/configuration.rb +670 -45
  15. data/lib/bugsnag/delivery/synchronous.rb +31 -14
  16. data/lib/bugsnag/delivery/thread_queue.rb +23 -6
  17. data/lib/bugsnag/delivery.rb +13 -0
  18. data/lib/bugsnag/endpoint_configuration.rb +11 -0
  19. data/lib/bugsnag/endpoint_validator.rb +80 -0
  20. data/lib/bugsnag/error.rb +25 -0
  21. data/lib/bugsnag/event.rb +5 -0
  22. data/lib/bugsnag/feature_flag.rb +74 -0
  23. data/lib/bugsnag/helpers.rb +121 -25
  24. data/lib/bugsnag/integrations/delayed_job.rb +51 -0
  25. data/lib/bugsnag/integrations/mailman.rb +43 -0
  26. data/lib/bugsnag/integrations/mongo.rb +133 -0
  27. data/lib/bugsnag/integrations/que.rb +53 -0
  28. data/lib/bugsnag/integrations/rack.rb +83 -0
  29. data/lib/bugsnag/integrations/rails/active_job.rb +100 -0
  30. data/lib/bugsnag/{rails → integrations/rails}/active_record_rescue.rb +10 -1
  31. data/lib/bugsnag/{rails → integrations/rails}/controller_methods.rb +1 -9
  32. data/lib/bugsnag/integrations/rails/rails_breadcrumbs.rb +115 -0
  33. data/lib/bugsnag/integrations/railtie.rb +153 -0
  34. data/lib/bugsnag/integrations/rake.rb +74 -0
  35. data/lib/bugsnag/integrations/resque.rb +94 -0
  36. data/lib/bugsnag/integrations/shoryuken.rb +50 -0
  37. data/lib/bugsnag/integrations/sidekiq.rb +68 -0
  38. data/lib/bugsnag/meta_data.rb +1 -0
  39. data/lib/bugsnag/middleware/active_job.rb +18 -0
  40. data/lib/bugsnag/middleware/breadcrumbs.rb +21 -0
  41. data/lib/bugsnag/middleware/callbacks.rb +6 -8
  42. data/lib/bugsnag/middleware/classify_error.rb +50 -0
  43. data/lib/bugsnag/middleware/clearance_user.rb +33 -0
  44. data/lib/bugsnag/middleware/delayed_job.rb +93 -0
  45. data/lib/bugsnag/middleware/discard_error_class.rb +30 -0
  46. data/lib/bugsnag/middleware/exception_meta_data.rb +42 -0
  47. data/lib/bugsnag/middleware/ignore_error_class.rb +26 -0
  48. data/lib/bugsnag/middleware/mailman.rb +6 -4
  49. data/lib/bugsnag/middleware/rack_request.rb +126 -30
  50. data/lib/bugsnag/middleware/rails3_request.rb +15 -17
  51. data/lib/bugsnag/middleware/rake.rb +7 -5
  52. data/lib/bugsnag/middleware/session_data.rb +25 -0
  53. data/lib/bugsnag/middleware/sidekiq.rb +9 -4
  54. data/lib/bugsnag/middleware/suggestion_data.rb +34 -0
  55. data/lib/bugsnag/middleware/warden_user.rb +11 -6
  56. data/lib/bugsnag/middleware_stack.rb +62 -9
  57. data/lib/bugsnag/on_error_callbacks.rb +33 -0
  58. data/lib/bugsnag/report.rb +516 -0
  59. data/lib/bugsnag/session_tracker.rb +182 -0
  60. data/lib/bugsnag/stacktrace.rb +82 -0
  61. data/lib/bugsnag/tasks/bugsnag.rake +2 -70
  62. data/lib/bugsnag/utility/circular_buffer.rb +62 -0
  63. data/lib/bugsnag/utility/duplicator.rb +124 -0
  64. data/lib/bugsnag/utility/feature_data_store.rb +41 -0
  65. data/lib/bugsnag/utility/feature_flag_delegate.rb +89 -0
  66. data/lib/bugsnag/utility/metadata_delegate.rb +102 -0
  67. data/lib/bugsnag.rb +528 -80
  68. metadata +61 -123
  69. data/.document +0 -5
  70. data/.gitignore +0 -52
  71. data/.rspec +0 -3
  72. data/.travis.yml +0 -14
  73. data/CONTRIBUTING.md +0 -47
  74. data/Gemfile +0 -2
  75. data/Rakefile +0 -29
  76. data/lib/bugsnag/capistrano.rb +0 -7
  77. data/lib/bugsnag/capistrano2.rb +0 -32
  78. data/lib/bugsnag/delay/resque.rb +0 -21
  79. data/lib/bugsnag/delayed_job.rb +0 -57
  80. data/lib/bugsnag/deploy.rb +0 -34
  81. data/lib/bugsnag/mailman.rb +0 -28
  82. data/lib/bugsnag/middleware/rails2_request.rb +0 -52
  83. data/lib/bugsnag/notification.rb +0 -459
  84. data/lib/bugsnag/rack.rb +0 -53
  85. data/lib/bugsnag/rails/action_controller_rescue.rb +0 -62
  86. data/lib/bugsnag/rails.rb +0 -66
  87. data/lib/bugsnag/railtie.rb +0 -80
  88. data/lib/bugsnag/rake.rb +0 -25
  89. data/lib/bugsnag/resque.rb +0 -40
  90. data/lib/bugsnag/sidekiq.rb +0 -42
  91. data/lib/bugsnag/tasks/bugsnag.cap +0 -48
  92. data/rails/init.rb +0 -7
  93. data/spec/cleaner_spec.rb +0 -138
  94. data/spec/code_spec.rb +0 -86
  95. data/spec/fixtures/crashes/end_of_file.rb +0 -9
  96. data/spec/fixtures/crashes/short_file.rb +0 -1
  97. data/spec/fixtures/crashes/start_of_file.rb +0 -9
  98. data/spec/fixtures/middleware/internal_info_setter.rb +0 -11
  99. data/spec/fixtures/middleware/public_info_setter.rb +0 -11
  100. data/spec/fixtures/tasks/Rakefile +0 -15
  101. data/spec/helper_spec.rb +0 -163
  102. data/spec/integration_spec.rb +0 -132
  103. data/spec/middleware_spec.rb +0 -181
  104. data/spec/notification_spec.rb +0 -877
  105. data/spec/rack_spec.rb +0 -56
  106. data/spec/spec_helper.rb +0 -53
data/CHANGELOG.md CHANGED
@@ -1,6 +1,820 @@
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
+
13
+ ## v6.27.0 (23 May 2024)
14
+
15
+ ### Enhancements
16
+
17
+ * Include the Warden scope in user metadata
18
+ | [#821](https://github.com/bugsnag/bugsnag-ruby/pull/821)
19
+ | [javierjulio](https://github.com/javierjulio)
20
+ * Add a block variant of `add_on_error`
21
+ | [#824](https://github.com/bugsnag/bugsnag-ruby/pull/824)
22
+
23
+ ## v6.26.4 (25 March 2024)
24
+
25
+ ### Fixes
26
+
27
+ * Fix Unicode encoding issues when using `Exception#detailed_message` (Ruby 3.2+)
28
+ | [#817](https://github.com/bugsnag/bugsnag-ruby/pull/817)
29
+ * Fix compatibility with Ruby 3.4-dev
30
+ | [#815](https://github.com/bugsnag/bugsnag-ruby/pull/815)
31
+ | [k0kubun](https://github.com/k0kubun)
32
+
33
+ ## v6.26.3 (24 January 2024)
34
+
35
+ ### Fixes
36
+
37
+ * Handle mailto links in `Cleaner#clean_url`
38
+ | [#813](https://github.com/bugsnag/bugsnag-ruby/pull/813)
39
+
40
+ ## v6.26.2 (17 January 2024)
41
+
42
+ ### Fixes
43
+
44
+ * Fix unhandled `URI::InvalidURIError` in `Cleaner#clean_url`
45
+ | [#811](https://github.com/bugsnag/bugsnag-ruby/pull/811)
46
+
47
+ ## v6.26.1 (9 January 2024)
48
+
49
+ ### Fixes
50
+
51
+ * Fix deprecation warning from Sidekiq error handler
52
+ | [#796](https://github.com/bugsnag/bugsnag-ruby/pull/796)
53
+ | [fukayatsu](https://github.com/fukayatsu)
54
+ * Fix Resque integration when failure backend is already `Resque::Failure::Multiple`
55
+ | [#803](https://github.com/bugsnag/bugsnag-ruby/pull/803)
56
+ | [sj26](https://github.com/sj26)
57
+ * Redact URLs in automatic Rails breadcrumbs
58
+ | [#806](https://github.com/bugsnag/bugsnag-ruby/pull/806)
59
+
60
+ ## v6.26.0 (19 July 2023)
61
+
62
+ ### Enhancements
63
+
64
+ * Support Sidekiq v7
65
+ | [#785](https://github.com/bugsnag/bugsnag-ruby/pull/785)
66
+ | [stevenharman](https://github.com/stevenharman)
67
+
68
+ ## v6.25.2 (7 February 2023)
69
+
70
+ ### Enhancements
71
+
72
+ * Improve performance of `Bugsnag.notify`
73
+ | [#774](https://github.com/bugsnag/bugsnag-ruby/pull/774)
74
+ | [sambostock](https://github.com/sambostock)
75
+
76
+ ## v6.25.1 (5 January 2023)
77
+
78
+ ### Fixes
79
+
80
+ * Allow Gem paths to be stripped from file names in stacktraces when they contain a Regexp special character
81
+ | [#764](https://github.com/bugsnag/bugsnag-ruby/pull/764)
82
+
83
+ ### Enhancements
84
+
85
+ * Use `Exception#detailed_message` instead of `Exception#message` when available
86
+ | [#761](https://github.com/bugsnag/bugsnag-ruby/pull/761)
87
+
88
+ ## v6.25.0 (1 December 2022)
89
+
90
+ ### Enhancements
91
+
92
+ * Add support for feature flags & experiments. For more information, please see https://docs.bugsnag.com/product/features-experiments
93
+ | [#758](https://github.com/bugsnag/bugsnag-ruby/pull/758)
94
+
95
+ ## v6.24.2 (21 January 2022)
96
+
97
+ ### Fixes
98
+
99
+ * Avoid rescuing from errors in Active Record transaction callbacks in versions of Rails where they will be re-raised
100
+ | [#709](https://github.com/bugsnag/bugsnag-ruby/pull/709)
101
+ | [apalmblad](https://github.com/apalmblad)
102
+
103
+ ## v6.24.1 (30 November 2021)
104
+
105
+ ### Fixes
106
+
107
+ * Fix metadata not being recorded when using Resque outside of Active Job
108
+ | [#710](https://github.com/bugsnag/bugsnag-ruby/pull/710)
109
+ | [isnotajoke](https://github.com/isnotajoke)
110
+
111
+ ## v6.24.0 (6 October 2021)
112
+
113
+ ### Enhancements
114
+
115
+ * Allow overriding an event's unhandled flag
116
+ | [#698](https://github.com/bugsnag/bugsnag-ruby/pull/698)
117
+ * Add the ability to store metadata globally
118
+ | [#699](https://github.com/bugsnag/bugsnag-ruby/pull/699)
119
+ * Add `cookies`, `body` and `httpVersion` to the automatically captured request data for Rack apps
120
+ | [#700](https://github.com/bugsnag/bugsnag-ruby/pull/700)
121
+ * Add `Configuration#endpoints` for reading the notify and sessions endpoints and `Configuration#endpoints=` for setting them
122
+ | [#701](https://github.com/bugsnag/bugsnag-ruby/pull/701)
123
+ * Add `Configuration#redacted_keys`. This is like `meta_data_filters` but matches strings with case-insensitive equality, rather than matching based on inclusion
124
+ | [#703](https://github.com/bugsnag/bugsnag-ruby/pull/703)
125
+ * Allow pausing and resuming sessions, giving more control over the stability score
126
+ | [#704](https://github.com/bugsnag/bugsnag-ruby/pull/704)
127
+ * Add `Configuration#vendor_paths` to replace `Configuration#vendor_path`
128
+ | [#705](https://github.com/bugsnag/bugsnag-ruby/pull/705)
129
+
130
+ ### Deprecated
131
+
132
+ * In the next major release, `params` will only contain query string parameters. Currently it also contains the request body for form data requests, but this is deprecated in favour of the new `body` property
133
+ * The `Configuration#set_endpoints` method is now deprecated in favour of `Configuration#endpoints=`
134
+ * The `Configuration#meta_data_filters` option is now deprecated in favour of `Configuration#redacted_keys`
135
+ * The `Configuration#vendor_path` option is now deprecated in favour of `Configuration#vendor_paths`
136
+
137
+ ## v6.23.0 (21 September 2021)
138
+
139
+ ### Enhancements
140
+
141
+ * Sessions will now be delivered every 10 seconds, instead of every 30 seconds
142
+ | [#680](https://github.com/bugsnag/bugsnag-ruby/pull/680)
143
+ * Log errors that prevent delivery at `ERROR` level
144
+ | [#681](https://github.com/bugsnag/bugsnag-ruby/pull/681)
145
+ * Add `on_breadcrumb` callbacks to replace `before_breadcrumb_callbacks`
146
+ | [#686](https://github.com/bugsnag/bugsnag-ruby/pull/686)
147
+ * Add `context` attribute to configuration, which will be used as the default context for events. Using this option will disable automatic context setting
148
+ | [#687](https://github.com/bugsnag/bugsnag-ruby/pull/687)
149
+ | [#688](https://github.com/bugsnag/bugsnag-ruby/pull/688)
150
+ * Add `Bugsnag#breadcrumbs` getter to fetch the current list of breadcrumbs
151
+ | [#689](https://github.com/bugsnag/bugsnag-ruby/pull/689)
152
+ * Add `time` (an ISO8601 string in UTC) to `device` metadata
153
+ | [#690](https://github.com/bugsnag/bugsnag-ruby/pull/690)
154
+ * Add `errors` to `Report`/`Event` containing an array of `Error` objects. The `Error` object contains `error_class`, `error_message`, `stacktrace` and `type` (always "ruby")
155
+ | [#691](https://github.com/bugsnag/bugsnag-ruby/pull/691)
156
+ * Add `original_error` to `Report`/`Event` containing the original Exception instance
157
+ | [#692](https://github.com/bugsnag/bugsnag-ruby/pull/692)
158
+ * Add `request` to `Report`/`Event` containing HTTP request metadata
159
+ | [#693](https://github.com/bugsnag/bugsnag-ruby/pull/693)
160
+ * Add `add_metadata` and `clear_metadata` to `Report`/`Event`
161
+ | [#694](https://github.com/bugsnag/bugsnag-ruby/pull/694)
162
+ * Add `set_user` to `Report`/`Event`
163
+ | [#695](https://github.com/bugsnag/bugsnag-ruby/pull/695)
164
+
165
+ ### Fixes
166
+
167
+ * Avoid starting session delivery thread when the current release stage is not enabled
168
+ | [#677](https://github.com/bugsnag/bugsnag-ruby/pull/677)
169
+
170
+ ### Deprecated
171
+
172
+ * `before_breadcrumb_callbacks` have been deprecated in favour of `on_breadcrumb` callbacks and will be removed in the next major release
173
+ * For consistency with Bugsnag notifiers for other languages, a number of methods have been deprecated in this release. The old options will be removed in the next major version | [#676](https://github.com/bugsnag/bugsnag-ruby/pull/676)
174
+ * The `notify_release_stages` configuration option has been deprecated in favour of `enabled_release_stages`
175
+ * The `auto_capture_sessions` and `track_sessions` configuration options have been deprecated in favour of `auto_track_sessions`
176
+ * The `enabled_automatic_breadcrumb_types` configuration option has been deprecated in favour of `enabled_breadcrumb_types`
177
+ * The `Report` class has been deprecated in favour of the `Event` class
178
+ * The `Report#meta_data` attribute has been deprecated in favour of `Event#metadata`
179
+ * The `Breadcrumb#meta_data` attribute has been deprecated in favour of `Breadcrumb#metadata`
180
+ * The `Breadcrumb#name` attribute has been deprecated in favour of `Breadcrumb#message`
181
+ * The breadcrumb type constants in the `Bugsnag::Breadcrumbs` module has been deprecated in favour of the constants available in the `Bugsnag::BreadcrumbType` module
182
+ For example, `Bugsnag::Breadcrumbs::ERROR_BREADCRUMB_TYPE` is now available as `Bugsnag::BreadcrumbType::ERROR`
183
+ * `Report#exceptions` has been deprecated in favour of the new `errors` property
184
+ * `Report#raw_exceptions` has been deprecated in favour of the new `original_error` property
185
+ * Accessing request data via `Report#metadata` has been deprecated in favour of using the new `request` property. Request data will be moved out of metadata in the next major version
186
+ * The `Report#add_tab` and `Report#remove_tab` methods have been deprecated in favour of the new `add_metadata` and `clear_metadata` methods
187
+
188
+ ## v6.22.1 (11 August 2021)
189
+
190
+ ### Fixes
191
+
192
+ * Fix possible `LocalJumpError` introduced in v6.22.0
193
+ | [#675](https://github.com/bugsnag/bugsnag-ruby/pull/675)
194
+
195
+ ## v6.22.0 (10 August 2021)
196
+
197
+ ### Enhancements
198
+
199
+ * Add support for tracking exceptions and capturing metadata in Active Job, when not using an existing integration
200
+ | [#670](https://github.com/bugsnag/bugsnag-ruby/pull/670)
201
+
202
+ * Improve the report context when using Delayed Job or Resque as the Active Job queue adapter
203
+ | [#671](https://github.com/bugsnag/bugsnag-ruby/pull/671)
204
+
205
+ ## v6.21.0 (23 June 2021)
206
+
207
+ ### Enhancements
208
+
209
+ * Allow a `Method` or any object responding to `#call` to be used as an `on_error` callback or middleware
210
+ | [#662](https://github.com/bugsnag/bugsnag-ruby/pull/662)
211
+ | [odlp](https://github.com/odlp)
212
+
213
+ ### Fixes
214
+
215
+ * Deliver when an error is raised in the block argument to `notify`
216
+ | [#660](https://github.com/bugsnag/bugsnag-ruby/pull/660)
217
+ | [aki77](https://github.com/aki77)
218
+ * Fix potential `NoMethodError` in `Bugsnag::Railtie` when using `require: false` in a Gemfile
219
+ | [#666](https://github.com/bugsnag/bugsnag-ruby/pull/666)
220
+
221
+ ## v6.20.0 (29 March 2021)
222
+
223
+ ### Enhancements
224
+
225
+ * Classify `ActionDispatch::Http::MimeNegotiation::InvalidType` as info severity level
226
+ | [#654](https://github.com/bugsnag/bugsnag-ruby/pull/654)
227
+
228
+ ### Fixes
229
+
230
+ * Include `connection_id` in ActiveRecord breadcrumb metadata on new versons of Rails
231
+ | [#655](https://github.com/bugsnag/bugsnag-ruby/pull/655)
232
+ * Avoid crash when Mongo 1.12 or earlier is used
233
+ | [#652](https://github.com/bugsnag/bugsnag-ruby/pull/652)
234
+ | [isabanin](https://github.com/isabanin)
235
+
236
+ ## 6.19.0 (6 January 2021)
237
+
238
+ ### Enhancements
239
+
240
+ * Exception messages will be truncated if they have a length greater than 3,072
241
+ | [#636](https://github.com/bugsnag/bugsnag-ruby/pull/636)
242
+ | [joshuapinter](https://github.com/joshuapinter)
243
+
244
+ * Breadcrumb metadata can now contain any type
245
+ | [#648](https://github.com/bugsnag/bugsnag-ruby/pull/648)
246
+
247
+ ## 6.18.0 (27 October 2020)
248
+
249
+ ### Enhancements
250
+
251
+ * Bugsnag should now report uncaught exceptions inside Bundler's 'friendly errors'
252
+ | [#634](https://github.com/bugsnag/bugsnag-ruby/pull/634)
253
+
254
+ * Improve the display of breadrumbs in the Bugsnag app by including milliseconds in timestamps
255
+ | [#639](https://github.com/bugsnag/bugsnag-ruby/pull/639)
256
+
257
+ ## 6.17.0 (27 August 2020)
258
+
259
+ ### Enhancements
260
+
261
+ * Sidekiq now uses `thread_queue` delivery by default
262
+ | [#626](https://github.com/bugsnag/bugsnag-ruby/pull/626)
263
+
264
+ * Rescue now uses `thread_queue` delivery when `at_exit` hooks are enabled
265
+ | [#629](https://github.com/bugsnag/bugsnag-ruby/pull/629)
266
+
267
+ ## 6.16.0 (12 August 2020)
268
+
269
+ ### Enhancements
270
+
271
+ * Set default Delayed Job error context to job class
272
+ | [#499](https://github.com/bugsnag/bugsnag-ruby/pull/499)
273
+ | [Mike Stewart](https://github.com/mike-stewart)
274
+
275
+ * The `BUGSNAG_RELEASE_STAGE` environment variable can now be used to set the release stage. Previously this was only used in Rails applications
276
+ | [#613](https://github.com/bugsnag/bugsnag-ruby/pull/613)
277
+
278
+ * Add support for runtime versions to Delayed Job, Mailman and Shoryuken integrations
279
+ | [#620](https://github.com/bugsnag/bugsnag-ruby/pull/620)
280
+
281
+ * Reduce the size of the bundled gem
282
+ | [#571](https://github.com/bugsnag/bugsnag-ruby/pull/571)
283
+ | [t-richards](https://github.com/t-richards)
284
+
285
+ * Move serialization of Reports onto the background thread when using the thread_queue delivery method
286
+ | [#623](https://github.com/bugsnag/bugsnag-ruby/pull/623)
287
+
288
+ ## Fixes
289
+
290
+ * The `app_type` configuration option should no longer be overwritten by Bugsnag and integrations should set this more consistently
291
+ | [#619](https://github.com/bugsnag/bugsnag-ruby/pull/619)
292
+
293
+ ## 6.15.0 (27 July 2020)
294
+
295
+ ### Enhancements
296
+
297
+ * Add `on_error` callbacks to replace `before_notify_callbacks`
298
+ | [#608](https://github.com/bugsnag/bugsnag-ruby/pull/608)
299
+
300
+ * Improve performance when extracting code from files in stacktraces
301
+ | [#604](https://github.com/bugsnag/bugsnag-ruby/pull/604)
302
+
303
+ * Reduce memory use when session tracking is disabled
304
+ | [#606](https://github.com/bugsnag/bugsnag-ruby/pull/606)
305
+
306
+ ### Deprecated
307
+
308
+ * `before_notify_callbacks` have been deprecated in favour of `on_error` and will be removed in the next major release
309
+
310
+ ## 6.14.0 (20 July 2020)
311
+
312
+ ### Enhancements
313
+
314
+ * Add configurable `discard_classes` option to allow filtering errors using either a `String` or `Regexp` matched against the error's class name
315
+ | [#597](https://github.com/bugsnag/bugsnag-ruby/pull/597)
316
+
317
+ * The Breadcrumb name limit of 30 characters has been removed
318
+ | [#600](https://github.com/bugsnag/bugsnag-ruby/pull/600)
319
+
320
+ * Improve performance of payload cleaning
321
+ | [#601](https://github.com/bugsnag/bugsnag-ruby/pull/601)
322
+
323
+ * Improve performance when processing stacktraces
324
+ | [#602](https://github.com/bugsnag/bugsnag-ruby/pull/602)
325
+ | [#603](https://github.com/bugsnag/bugsnag-ruby/pull/603)
326
+
327
+ * If a custom object responds to `id` method, show the id and class in error reports
328
+ | [#531](https://github.com/bugsnag/bugsnag-ruby/pull/531)
329
+ | [manojmj92](https://github.com/manojmj92)
330
+
331
+ ### Deprecated
332
+
333
+ * The `ignore_classes` configuration option has been deprecated in favour of `discard_classes`. `ignore_classes` will be removed in the next major release
334
+
335
+ ## 6.13.1 (11 May 2020)
336
+
337
+ ### Fixes
338
+
339
+ * Only call custom diagnostic data methods once
340
+ | [#586](https://github.com/bugsnag/bugsnag-ruby/pull/586)
341
+ | [stoivo](https://github.com/stoivo)
342
+ * Guard against exceptions in to_s when cleaning objects
343
+ | [#591](https://github.com/bugsnag/bugsnag-ruby/pull/591)
344
+
345
+ ## 6.13.0 (30 Jan 2020)
346
+
347
+ ### Enhancements
348
+
349
+ * Add configurable `vendor_path` to configure which file paths are out of project stacktrace.
350
+ | [#544](https://github.com/bugsnag/bugsnag-ruby/pull/544)
351
+
352
+ ### Fixes
353
+
354
+ * Resolve Ruby deprecation warning for keyword parameters
355
+ | [#580](https://github.com/bugsnag/bugsnag-ruby/pull/582)
356
+
357
+ ## 6.12.2 (24 Oct 2019)
358
+
359
+ ### Fixes
360
+
361
+ * Handle change in capitalisation of framework version constant for Que in v1.x
362
+ | [#570](https://github.com/bugsnag/bugsnag-ruby/pull/570)
363
+ | [#572](https://github.com/bugsnag/bugsnag-ruby/pull/572)
364
+ | [tommeier](https://github.com/tommeier)
365
+
366
+ ## 6.12.1 (05 Sep 2019)
367
+
368
+ ### Fixes
369
+
370
+ * Account for missing `:binds` key in `sql.active_record` ActiveSupport notifications.
371
+ | [#555](https://github.com/bugsnag/bugsnag-ruby/issues/555)
372
+ | [#565](https://github.com/bugsnag/bugsnag-ruby/pull/565)
373
+ * Remove duplicate attribute declaration warning for `track_sessions` in Configuration.
374
+ | [#510](https://github.com/bugsnag/bugsnag-ruby/pull/510)
375
+ | [pocke](https://github.com/pocke)
376
+
377
+ ## 6.12.0 (28 Aug 2019)
378
+
379
+ ### Enhancements
380
+
381
+ * Add Ruby (and other framework) version strings to report and session payloads (device.runtimeVersions).
382
+ | [560](https://github.com/bugsnag/bugsnag-ruby/pull/560)
383
+
384
+ * Allow symbols in breadcrumb meta data.
385
+ | [#563](https://github.com/bugsnag/bugsnag-ruby/pull/563)
386
+ | [directionless](https://github.com/directionless)
387
+
388
+ ### Fixes
389
+
390
+ * Use `Module#prepend` for Rake integration when on a new enough Ruby version
391
+ to avoid infinite mutual recursion issues when something else monkey patches
392
+ `Rake::Task`.
393
+ | [#556](https://github.com/bugsnag/bugsnag-ruby/issues/556)
394
+ | [#559](https://github.com/bugsnag/bugsnag-ruby/issues/559)
395
+
396
+ * Handle `nil` values for the `job` block parameter for the Que error notifier.
397
+ This occurs under some conditions such as database connection failures.
398
+ | [#545](https://github.com/bugsnag/bugsnag-ruby/issues/545)
399
+ | [#548](https://github.com/bugsnag/bugsnag-ruby/pull/548)
400
+
401
+ ## 6.11.1 (22 Jan 2019)
402
+
403
+ ### Fixes
404
+
405
+ * Fix issue with unnecessary meta_data being logged during breadcrumb validation.
406
+ | [#530](https://github.com/bugsnag/bugsnag-ruby/pull/530)
407
+
408
+ ## 6.11.0 (17 Jan 2019)
409
+
410
+ **Note**: this release alters the behaviour of the notifier to track sessions automatically.
411
+
412
+ ### Enhancements
413
+
414
+ * Added Breadcrumbs. Breadcrumbs allow you to track events that may have led
415
+ up to an error, such as handled errors, page redirects, or SQL queries. For info on what
416
+ is tracked and how you can customize the data that breadcrumbs collect, see the
417
+ [Logging breadcrumbs](https://docs.bugsnag.com/platforms/ruby/other#logging-breadcrumbs)
418
+ section of our documentation.
419
+ | [#525](https://github.com/bugsnag/bugsnag-ruby/pull/525)
420
+
421
+ * Bugsnag will now capture automatically created sessions by default.
422
+ | [#523](https://github.com/bugsnag/bugsnag-ruby/pull/523)
423
+
424
+ ### Deprecated
425
+
426
+ * The `endpoint` and `session_endpoint` configuration options are now deprecated but still supported. The [`set_endpoints`](https://docs.bugsnag.com/platforms/ruby/other/configuration-options#endpoints) method should be used instead. Note that session tracking will be disabled if the notify endpoint is configured but the sessions endpoint is not - this is to avoid inadvertently sending session payloads to the wrong server.
427
+
428
+ ## 6.10.0 (05 Dec 2018)
429
+
430
+ ### Enhancements
431
+
432
+ * Add SignalException to our default ignored classes
433
+ | [#479](https://github.com/bugsnag/bugsnag-ruby/pull/479)
434
+ | [Toby Hsieh](https://github.com/tobyhs)
435
+
436
+ * Include Bugsnag frames, marked out of project
437
+ | [#497](https://github.com/bugsnag/bugsnag-ruby/pull/497)
438
+
439
+ ### Fixes
440
+
441
+ * Ensure Sidekiq request data is always attached to notifications
442
+ | [#495](https://github.com/bugsnag/bugsnag-ruby/pull/495)
443
+
444
+ ## 6.9.0 (12 Nov 2018)
445
+
446
+ ### Enhancements
447
+
448
+ * Ensure the correct error handler is used in newer versions of Sidekiq
449
+ | [#434](https://github.com/bugsnag/bugsnag-ruby/pull/434)
450
+
451
+ * Rewrite Delayed::Job integration to fix potential issues and add more
452
+ collected data
453
+ | [#492](https://github.com/bugsnag/bugsnag-ruby/pull/492)
454
+ | [Simon Maynard](https://github.com/snmaynard)
455
+
456
+ ## 6.8.0 (11 Jul 2018)
457
+
458
+ This release includes general performance improvements to payload trimming and
459
+ filtering.
460
+
461
+ ### Enhancements
462
+
463
+ * Capture unexpected app terminations automatically with `at_exit`
464
+ | [#397](https://github.com/bugsnag/bugsnag-ruby/pull/397)
465
+ | [Alex Moinet](https://github.com/Cawllec)
466
+
467
+ * (DelayedJob) Improve max attempts handling - If the max attempts method
468
+ returns nil it should fallback to `Delayed::Worker.max_attempts`
469
+ | [#471](https://github.com/bugsnag/bugsnag-ruby/pull/471)
470
+ | [Johnny Shields](https://github.com/johnnyshields)
471
+
472
+ * Increase payload size limit to 512kb (from 256kb)
473
+ | [#431](https://github.com/bugsnag/bugsnag-ruby/pull/431)
474
+ | [Alex Moinet](https://github.com/Cawllec)
475
+
476
+ ### Fixes
477
+
478
+ ## 6.7.3 (18 May 2018)
479
+
480
+ ### Fixes
481
+
482
+ * Apply metadata filters to HTTP referer fields
483
+ | [#460](https://github.com/bugsnag/bugsnag-ruby/pull/460)
484
+ | [Renee Balmert](https://github.com/tremlab)
485
+
486
+ ## 6.7.2 (24 Apr 2018)
487
+
488
+ ### Fixes
489
+
490
+ * (Notify) Handle `notify` calls with `nil` arguments correctly
491
+ | [#439](https://github.com/bugsnag/bugsnag-ruby/pull/439)
492
+
493
+ ## 6.7.1 (11 Apr 2018)
494
+
495
+ ### Fixes
496
+
497
+ * (Rails) Log missing key warning after initialization completes, avoiding
498
+ incorrectly logging a warning that the API key is missing
499
+ | [#444](https://github.com/bugsnag/bugsnag-ruby/pull/444)
500
+
501
+ ## 6.7.0 (05 Apr 2018)
502
+
503
+ ### Enhancements
504
+
505
+ * Support HTTP proxy from `http_proxy` and `https_proxy` environment variables
506
+ | [#424](https://github.com/bugsnag/bugsnag-ruby/pull/424)
507
+ | [#437](https://github.com/bugsnag/bugsnag-ruby/pull/437)
508
+ | [Bill Kirtley](https://github.com/cluesque)
509
+
510
+ * Add option to disable auto-configuration
511
+ | [#419](https://github.com/bugsnag/bugsnag-ruby/pull/419)
512
+
513
+ * Add `warden.user.rack` data to default filters
514
+ | [#436](https://github.com/bugsnag/bugsnag-ruby/pull/436)
515
+
516
+ ### Fixes
517
+
518
+ * Ensure logged messages include Bugsnag progname
519
+ | [#443](https://github.com/bugsnag/bugsnag-ruby/pull/443)
520
+
521
+ ## 6.6.4 (14 Feb 2018)
522
+
523
+ ### Fixes
524
+
525
+ * Mark files in `.bundle/` directory as not "in project"
526
+ | [#420](https://github.com/bugsnag/bugsnag-ruby/pull/420)
527
+ | [Alex Moinet](https://github.com/Cawllec)
528
+ * Restore support for attaching `bugsnag_*` metadata to exceptions without
529
+ extending `Bugsnag::Middleware::ExceptionMetaData`
530
+ | [#426](https://github.com/bugsnag/bugsnag-ruby/pull/426)
531
+ | [Jordan Raine](https://github.com/jnraine)
532
+
533
+ ## 6.6.3 (23 Jan 2018)
534
+
535
+ ### Fixes
536
+
537
+ * Re-added apiKey to payload for compatibility
538
+ | [#418](https://github.com/bugsnag/bugsnag-ruby/pull/418)
539
+
540
+
541
+ ## 6.6.2 (18 Jan 2018)
542
+
543
+ ### Fixes
544
+
545
+ * Fix Shoryuken integration & `project_root` `Pathname` issue
546
+ | [#416](https://github.com/bugsnag/bugsnag-ruby/pull/416)
547
+ | [Sergei Maximov](https://github.com/smaximov)
548
+
549
+ ## 6.6.1 (09 Jan 2018)
550
+
551
+ ### Bug fixes
552
+
553
+ * Fix failure to launch session polling task
554
+ | [#414](https://github.com/bugsnag/bugsnag-ruby/pull/414)
555
+
556
+ ## 6.6.0 (09 Jan 2018)
557
+
558
+ ### Enhancements
559
+
560
+ * Session tracking update:
561
+ * Refactor of session tracking to adhere to a common interface, and simplify usage.
562
+ * Includes several performance enhancements.
563
+ * Reverts potentially breaking change of json body sanitation within delivery function.
564
+ | [#412](https://github.com/bugsnag/bugsnag-ruby/pull/412)
565
+ * Maintains backwards compatibility with previous session-tracking changes.
566
+ | [#413](https://github.com/bugsnag/bugsnag-ruby/pull/413)
567
+
568
+ ## 6.5.0 (04 Jan 2018)
569
+
570
+ ### Enhancements
571
+
572
+ * Adds support for tracking sessions and crash rate by setting the configuration option `configuration.auto_capture_sessions` to `true`.
573
+ Sessions can be manually created using `Bugsnag.start_session`.
574
+ | [#411](https://github.com/bugsnag/bugsnag-ruby/pull/411)
575
+
576
+ ## 6.4.0 (21 Dec 2017)
577
+
578
+ ### Enhancements
579
+
580
+ * Added support for DelayedJob custom job arguments
581
+ | [#359](https://github.com/bugsnag/bugsnag-ruby/pull/359)
582
+ | [Calvin Hughes](https://github.com/calvinhughes)
583
+
584
+ ## 6.3.0 (14 Dec 2017)
585
+
586
+ ### Enhancements
587
+
588
+ * Allow skipping report generation using exception property
589
+ | [#402](https://github.com/bugsnag/bugsnag-ruby/pull/402)
590
+
591
+ ## 6.2.0 (07 Dec 2017)
592
+
593
+ ### Enhancements
594
+
595
+ * Added common exit exceptions - SystemExit and Interrupt - to default ignore classes.
596
+ | [#404](https://github.com/bugsnag/bugsnag-ruby/pull/404)
597
+
598
+ ## 6.1.1 (23 Nov 2017)
599
+
600
+ ### Fixes
601
+
602
+ * Ensured Bugsnag class intialises before railties initialised
603
+ | [#396](https://github.com/bugsnag/bugsnag-ruby/pull/396)
604
+
605
+ ## 6.1.0 (17 Nov 2017)
606
+
607
+ ### Enhancements
608
+
609
+ * Use lazy load hooks to hook on ActionController::Base
610
+ | [Edouard-chin](https://github.com/Edouard-chin)
611
+ | [#393](https://github.com/bugsnag/bugsnag-ruby/pull/393)
612
+
613
+ ### Fixes
614
+
615
+ * Fix type in Rack/Clearance integration
616
+ | [geofferymm](https://github.com/geoffreymm)
617
+ | [#392](https://github.com/bugsnag/bugsnag-ruby/pull/392)
618
+
619
+ * Fix upgrade link to docs
620
+ | [duncanhewett](https://github.com/duncanhewett)
621
+ | [#390](https://github.com/bugsnag/bugsnag-ruby/pull/390)
622
+
623
+ ## 6.0.1 (09 Nov 2017)
624
+
625
+ Adds a warning for the change in usage for the `notify()` method from < 6.0 to
626
+ ease upgrading.
627
+
628
+ ## 6.0.0 (09 Nov 2017)
629
+
630
+ This notifier has been extensively re-written to make it easier to add new integrations and maintain in the future. This has led to several changes that are not backwards compatible. Please refer to the [upgrading guide](https://github.com/bugsnag/bugsnag-ruby/blob/master/UPGRADING.md) for more information.
631
+
632
+ ### Enhancements
633
+
634
+ * General notifier re-write
635
+ | [#320](https://github.com/bugsnag/bugsnag-ruby/pull/320)
636
+ | [#378](https://github.com/bugsnag/bugsnag-ruby/pull/378)
637
+ | [#368](https://github.com/bugsnag/bugsnag-ruby/pull/368)
638
+ | [#381](https://github.com/bugsnag/bugsnag-ruby/pull/381)
639
+ | [#385](https://github.com/bugsnag/bugsnag-ruby/pull/385)
640
+ | [#386](https://github.com/bugsnag/bugsnag-ruby/pull/386)
641
+
642
+ * Added Upgrade guide
643
+ | [#370](https://github.com/bugsnag/bugsnag-ruby/pull/370)
644
+
645
+ * Did-you-mean suggestions middleware
646
+ | [#372](https://github.com/bugsnag/bugsnag-ruby/pull/372)
647
+
648
+ * Updated examples
649
+ | [#374](https://github.com/bugsnag/bugsnag-ruby/pull/374)
650
+
651
+ ## 5.5.0 (09 Nov 2017)
652
+
653
+ ### Enhancements
654
+
655
+ * Allow environment variable proxy config for `Net::HTTP`
656
+ | [dexhorthy](https://github.com/dexhorthy)
657
+ | [#380](https://github.com/bugsnag/bugsnag-ruby/pull/380)
658
+
659
+ ## 5.4.1 (06 Oct 2017)
660
+
661
+ ### Fixes
662
+
663
+ * [DelayedJob] Fix `NameError` occurring on erroring job notification
664
+ | [Eito Katagiri](https://github.com/eitoball)
665
+ | [#377](https://github.com/bugsnag/bugsnag-ruby/pull/377)
666
+
667
+ * Fixed failing Rake/Java tests
668
+ | [#378](https://github.com/bugsnag/bugsnag-ruby/pull/378)
669
+
670
+ ## 5.4.0 (02 Oct 2017)
671
+
672
+ This release removes the default setting of ignoring classes of errors which are commonly associated with typos or server signals (`SystemExit`), instead recording them as `info`-level severity by default. This includes the following classes:
673
+
674
+ ```
675
+ AbstractController::ActionNotFound,
676
+ ActionController::InvalidAuthenticityToken,
677
+ ActionController::ParameterMissing,
678
+ ActionController::RoutingError,
679
+ ActionController::UnknownAction,
680
+ ActionController::UnknownFormat,
681
+ ActionController::UnknownHttpMethod,
682
+ ActiveRecord::RecordNotFound,
683
+ CGI::Session::CookieStore::TamperedWithCookie,
684
+ Mongoid::Errors::DocumentNotFound,
685
+ SignalException,
686
+ SystemExit
687
+ ```
688
+
689
+ ### Enhancements
690
+
691
+ * Add a one-time warning if the API key is not set
692
+ * Track whether errors were captured automatically and by which middleware
693
+
694
+ ## 5.3.3 (16 June 2017)
695
+
696
+ * [Rails] Fix failure to report when encountering objects which throw in `to_s`
697
+ [#361](https://github.com/bugsnag/bugsnag-ruby/pull/361)
698
+
699
+ ## 5.3.2 (27 April 2017)
700
+
701
+ ### Bug fixes
702
+
703
+ * [Sidekiq] Revert commit [c7862ea](https://github.com/bugsnag/bugsnag-ruby/commit/c7862ea90397357f8daad8698c1572230f65075c)
704
+ because Sidekiq's logging middleware was removed in version 5.0.0
705
+ | [Reuben Brown](https://github.com/reubenbrown)
706
+ | [#358](https://github.com/bugsnag/bugsnag-ruby/pull/358)
707
+
708
+ ## 5.3.1 (20 April 2017)
709
+
710
+ ### Bug fixes
711
+
712
+ * [Resque] Fix error when creating a worker without a queue
713
+ | [Dean Galvin](https://github.com/FreekingDean)
714
+ | [#355](https://github.com/bugsnag/bugsnag-ruby/pull/355)
715
+
716
+ ## 5.3.0 (07 April 2017)
717
+
718
+ ### Enhancements
719
+
720
+ * [Resque] Fix leaking config into parent process
721
+ | [Martin Holman](https://github.com/martin308)
722
+ | [#347](https://github.com/bugsnag/bugsnag-ruby/pull/347)
723
+ * Add new integration for Que
724
+ | [Sjoerd Andringa](https://github.com/s-andringa)
725
+ | [#305](https://github.com/bugsnag/bugsnag-ruby/pull/305)
726
+ * [Sidekiq] Start Bugsnag after the logger in the middleware chain
727
+ | [Stephen Bussey](https://github.com/sb8244)
728
+ | [Akhil Naini](https://github.com/akhiln)
729
+ | [#326](https://github.com/bugsnag/bugsnag-ruby/pull/326)
730
+ | [#350](https://github.com/bugsnag/bugsnag-ruby/pull/350)
731
+ * [Rake] Allow overriding `app_type` apps
732
+ | [#351](https://github.com/bugsnag/bugsnag-ruby/issues/351)
733
+ * Send the dyno name as the hostname when running on Heroku
734
+ | [#333](https://github.com/bugsnag/bugsnag-ruby/issues/333)
735
+ * [Delayed Job] Add additional job information such as arguments and number of
736
+ attempts when available
737
+ | [Tim Diggins](https://github.com/timdiggins)
738
+ | [Abraham Chan](https://github.com/abraham-chan)
739
+ | [Johnny Shields](https://github.com/johnnyshields)
740
+ | [#329](https://github.com/bugsnag/bugsnag-ruby/pull/329)
741
+ | [#332](https://github.com/bugsnag/bugsnag-ruby/pull/332)
742
+ | [#321](https://github.com/bugsnag/bugsnag-ruby/pull/321)
743
+
744
+ ### Bug fixes
745
+
746
+ * Initialize Railtie after Bugsnag class
747
+ | [#343](https://github.com/bugsnag/bugsnag-ruby/issues/343)
748
+ * Alias `notify_or_ignore` to `notify`
749
+ | [Simon Maynard](https://github.com/snmaynard)
750
+ | [#319](https://github.com/bugsnag/bugsnag-ruby/pull/319)
751
+
752
+ ## 5.2.0 (10 February 2017)
753
+
754
+ ### Enhancements
755
+
756
+ * Allow provider attribute in Deploy#notify
757
+ | [@jbaranov](https://github.com/jbaranov)
758
+ | [#339](https://github.com/bugsnag/bugsnag-ruby/pull/339)
759
+
760
+ ### Bug fixes
761
+
762
+ * Correctly hook on Action Controller
763
+ | [@rafaelfranca](https://github.com/rafaelfranca)
764
+ | [#338](https://github.com/bugsnag/bugsnag-ruby/pull/338)
765
+ * Fix Bugsnag error message typo
766
+ | [@Adsidera](https://github.com/Adsidera)
767
+ | [#344](https://github.com/bugsnag/bugsnag-ruby/pull/344)
768
+ * Default delivery method
769
+ | [@martin308](https://github.com/martin308)
770
+ | [#346](https://github.com/bugsnag/bugsnag-ruby/pull/346)
771
+
772
+ ## 5.1.0 (23 January 2017)
773
+
774
+ ### Bug fixes
775
+
776
+ * Fix behavior to not override Rails 5 `belongs_to` association
777
+ | [#314](https://github.com/bugsnag/bugsnag-ruby/pull/314)
778
+
779
+ ### Enhancements
780
+
781
+ * Add Clearance support
782
+ | [Jonathan Rochkind](https://github.com/jrochkind)
783
+ | [#313](https://github.com/bugsnag/bugsnag-ruby/pull/313)
784
+ * Add Shoruken support
785
+ | [Nigel Ramsay](https://github.com/nigelramsay)
786
+ | [#324](https://github.com/bugsnag/bugsnag-ruby/pull/324)
787
+
788
+ ## 5.0.1 (7 September 2016)
789
+
790
+ ### Bug fixes
791
+
792
+ * Show the job class name for Sidekiq jobs, not the wrapper class name
793
+ | [Simon Maynard](https://github.com/snmaynard)
794
+ | [#323](https://github.com/bugsnag/bugsnag-ruby/pull/323)
795
+
796
+ ## 5.0.0 (23 August 2016)
797
+
798
+ ### Enhancements
799
+
800
+ * Remove RoutingError from default ignore classes
801
+ | [#308](https://github.com/bugsnag/bugsnag-ruby/issues/308)
802
+ * Prefer BUGSNAG_RELEASE_STAGE over RAILS_ENV for release_stage
803
+ | [#298](https://github.com/bugsnag/bugsnag-ruby/issues/298)
804
+ * Apply grouping hash if method `bugsnag_grouping_hash` is available on the object
805
+ | [#318](https://github.com/bugsnag/bugsnag-ruby/issues/318)
806
+ | [#311](https://github.com/bugsnag/bugsnag-ruby/issues/311)
807
+ * Sidekiq improvements
808
+ | [#317](https://github.com/bugsnag/bugsnag-ruby/issues/317)
809
+ | [#282](https://github.com/bugsnag/bugsnag-ruby/issues/282)
810
+ | [#309](https://github.com/bugsnag/bugsnag-ruby/issues/309)
811
+ | [#306](https://github.com/bugsnag/bugsnag-ruby/issues/306)
812
+
813
+ ### Fixes
814
+
815
+ * Exception backtrace could be empty
816
+ | [#307](https://github.com/bugsnag/bugsnag-ruby/issues/307)
817
+
4
818
  ## 4.2.1 (23 Jun 2016)
5
819
 
6
820
  ### Fixes