bugsnag 6.26.2 → 6.26.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/VERSION +1 -1
- data/lib/bugsnag/cleaner.rb +37 -15
- data/lib/bugsnag/report.rb +8 -1
- data/lib/bugsnag/stacktrace.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f5f206e7ff8559ae2b853a2600004877d41d36414ea82b1cce49c41940e34dc
|
4
|
+
data.tar.gz: '08e3054a24b2c3928cd8e130a995525223989d09fdf1d0a5fdaefc71d460bbc0'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 785d927eeaf5c3c2d2af5c04b33295dee3ce172354da1434b245e0d706b29d04aa6261c9a55764d9b726e0d6e9f0cf1e4523925925bb5f7118b86954e391b1d9
|
7
|
+
data.tar.gz: f11f3d9508cee3b65a4da040d681aa703710cc2e3718b40292daa5534d4ffdcb929334ef9640bca4901754379848d2bd42e8f63b9211b7eb5d2f758499b9d950
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,23 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
+
## v6.26.4 (25 March 2024)
|
5
|
+
|
6
|
+
### Fixes
|
7
|
+
|
8
|
+
* Fix Unicode encoding issues when using `Exception#detailed_message` (Ruby 3.2+)
|
9
|
+
| [#817](https://github.com/bugsnag/bugsnag-ruby/pull/817)
|
10
|
+
* Fix compatibility with Ruby 3.4-dev
|
11
|
+
| [#815](https://github.com/bugsnag/bugsnag-ruby/pull/815)
|
12
|
+
| [k0kubun](https://github.com/k0kubun)
|
13
|
+
|
14
|
+
## v6.26.3 (24 January 2024)
|
15
|
+
|
16
|
+
### Fixes
|
17
|
+
|
18
|
+
* Handle mailto links in `Cleaner#clean_url`
|
19
|
+
| [#813](https://github.com/bugsnag/bugsnag-ruby/pull/813)
|
20
|
+
|
4
21
|
## v6.26.2 (17 January 2024)
|
5
22
|
|
6
23
|
### Fixes
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
6.26.
|
1
|
+
6.26.4
|
data/lib/bugsnag/cleaner.rb
CHANGED
@@ -30,25 +30,19 @@ module Bugsnag
|
|
30
30
|
|
31
31
|
begin
|
32
32
|
uri = URI(url)
|
33
|
-
rescue URI::InvalidURIError
|
34
|
-
pre_query_string, _query_string = url.split('?', 2)
|
35
|
-
|
36
|
-
return "#{pre_query_string}?#{FILTERED}"
|
37
|
-
end
|
38
33
|
|
39
|
-
|
40
|
-
|
41
|
-
query_params = uri.query.split('&').map { |pair| pair.split('=') }
|
42
|
-
query_params.map! do |key, val|
|
43
|
-
if filters_match?(key)
|
44
|
-
"#{key}=#{FILTERED}"
|
34
|
+
if uri.is_a?(URI::MailTo)
|
35
|
+
clean_mailto_url(url, uri)
|
45
36
|
else
|
46
|
-
|
37
|
+
clean_generic_url(url, uri)
|
47
38
|
end
|
48
|
-
|
39
|
+
rescue URI::InvalidURIError
|
40
|
+
pre_query_string, _query_string = url.split('?', 2)
|
49
41
|
|
50
|
-
|
51
|
-
|
42
|
+
"#{pre_query_string}?#{FILTERED}"
|
43
|
+
rescue StandardError
|
44
|
+
FILTERED
|
45
|
+
end
|
52
46
|
end
|
53
47
|
|
54
48
|
##
|
@@ -209,5 +203,33 @@ module Bugsnag
|
|
209
203
|
scope.start_with?("#{scope_to_filter}.")
|
210
204
|
end
|
211
205
|
end
|
206
|
+
|
207
|
+
def clean_generic_url(original_url, uri)
|
208
|
+
return original_url unless uri.query
|
209
|
+
|
210
|
+
query_params = uri.query.split('&').map { |pair| pair.split('=') }
|
211
|
+
|
212
|
+
uri.query = filter_uri_parameter_array(query_params).join('&')
|
213
|
+
uri.to_s
|
214
|
+
end
|
215
|
+
|
216
|
+
def clean_mailto_url(original_url, uri)
|
217
|
+
return original_url unless uri.headers
|
218
|
+
|
219
|
+
# headers in mailto links can't contain square brackets so we replace
|
220
|
+
# filtered parameters with 'FILTERED' instead of '[FILTERED]'
|
221
|
+
uri.headers = filter_uri_parameter_array(uri.headers, 'FILTERED').join('&')
|
222
|
+
uri.to_s
|
223
|
+
end
|
224
|
+
|
225
|
+
def filter_uri_parameter_array(parameters, replacement = FILTERED)
|
226
|
+
parameters.map do |key, value|
|
227
|
+
if filters_match?(key)
|
228
|
+
"#{key}=#{replacement}"
|
229
|
+
else
|
230
|
+
"#{key}=#{value}"
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
212
234
|
end
|
213
235
|
end
|
data/lib/bugsnag/report.rb
CHANGED
@@ -466,8 +466,15 @@ module Bugsnag
|
|
466
466
|
exception.detailed_message
|
467
467
|
end
|
468
468
|
|
469
|
+
# the string returned by 'detailed_message' defaults to 'ASCII_8BIT' but
|
470
|
+
# is actually UTF-8 encoded; we can't convert the encoding normally as its
|
471
|
+
# internal encoding doesn't match its actual encoding
|
472
|
+
message.force_encoding(::Encoding::UTF_8) if message.encoding == ::Encoding::ASCII_8BIT
|
473
|
+
|
469
474
|
# remove the class name to be consistent with Exception#message
|
470
|
-
message.sub(" (#{class_name})",
|
475
|
+
message.sub!(" (#{class_name})".encode(message.encoding), "") rescue nil
|
476
|
+
|
477
|
+
message
|
471
478
|
end
|
472
479
|
|
473
480
|
def generate_raw_exceptions(exception)
|
data/lib/bugsnag/stacktrace.rb
CHANGED
@@ -3,7 +3,7 @@ require_relative 'code_extractor'
|
|
3
3
|
module Bugsnag
|
4
4
|
module Stacktrace
|
5
5
|
# e.g. "org/jruby/RubyKernel.java:1264:in `catch'"
|
6
|
-
BACKTRACE_LINE_REGEX = /^((?:[a-zA-Z]:)?[^:]+):(\d+)(?::in `([^']+)')?$/
|
6
|
+
BACKTRACE_LINE_REGEX = /^((?:[a-zA-Z]:)?[^:]+):(\d+)(?::in [`']([^']+)')?$/
|
7
7
|
|
8
8
|
# e.g. "org.jruby.Ruby.runScript(Ruby.java:807)"
|
9
9
|
JAVA_BACKTRACE_REGEX = /^(.*)\((.*)(?::([0-9]+))?\)$/
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bugsnag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.26.
|
4
|
+
version: 6.26.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -107,7 +107,7 @@ homepage: https://github.com/bugsnag/bugsnag-ruby
|
|
107
107
|
licenses:
|
108
108
|
- MIT
|
109
109
|
metadata:
|
110
|
-
changelog_uri: https://github.com/bugsnag/bugsnag-ruby/blob/v6.26.
|
110
|
+
changelog_uri: https://github.com/bugsnag/bugsnag-ruby/blob/v6.26.4/CHANGELOG.md
|
111
111
|
documentation_uri: https://docs.bugsnag.com/platforms/ruby/
|
112
112
|
source_code_uri: https://github.com/bugsnag/bugsnag-ruby/
|
113
113
|
rubygems_mfa_required: 'true'
|
@@ -126,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0'
|
128
128
|
requirements: []
|
129
|
-
rubygems_version: 3.
|
129
|
+
rubygems_version: 3.4.10
|
130
130
|
signing_key:
|
131
131
|
specification_version: 4
|
132
132
|
summary: Ruby notifier for bugsnag.com
|