bugsnag 6.26.2 → 6.26.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/VERSION +1 -1
  4. data/lib/bugsnag/cleaner.rb +37 -15
  5. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87508e2fde2b235e826dea54f9f05ee75cca5d046cd76e95a5f4d6136c1a401c
4
- data.tar.gz: c832d4f17a80904cc9b786043d8f56bd01c495aeb00fc98a5129bd4297c96eea
3
+ metadata.gz: 51f147f279fd5a2a7bbe26663246348f4d4bbccf9d901febeda2620d533341d3
4
+ data.tar.gz: 3648e3a84b41ff738318c4ea8b0db7218a6c3dd149cd084604c9cbe102cfc593
5
5
  SHA512:
6
- metadata.gz: cbe54bdc037eccae528486bd8608ea265c16718b6644c522415245fed6b003e47cff209f21a2bdd152e2270c17ba978a2d9d5f0e8f11c6ac902b503e56cec1b6
7
- data.tar.gz: 7c5ed7ae765769c16dfa9c59892520618bfbfc31e4142ad198d0988d21f834255d7c31f8f3b3d12ae5e80fe3d9707ca93981c24981ad01dc14231161b17089fa
6
+ metadata.gz: d3942fed5bf6c50cdaa12d25e39c7e7218badf7ef1d9481baeacd220fe5a14271200e47d552eb2e35008fdb83c3a1eac11eaaaae72ea1228879ad5be2c191e57
7
+ data.tar.gz: 10a2182a9002b5d0f664ba8a442717c5dafbcb32cc96561c179189c5a3be0661dc824070eaa3c28d32f927a732549962e13d556ef8fc2b454a9f44a177b683af
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ ## v6.26.3 (24 January 2024)
5
+
6
+ * Handle mailto links in `Cleaner#clean_url`
7
+ | [#813](https://github.com/bugsnag/bugsnag-ruby/pull/813)
8
+
4
9
  ## v6.26.2 (17 January 2024)
5
10
 
6
11
  ### Fixes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.26.2
1
+ 6.26.3
@@ -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
- return url unless uri.query
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
- "#{key}=#{val}"
37
+ clean_generic_url(url, uri)
47
38
  end
48
- end
39
+ rescue URI::InvalidURIError
40
+ pre_query_string, _query_string = url.split('?', 2)
49
41
 
50
- uri.query = query_params.join('&')
51
- uri.to_s
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
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.2
4
+ version: 6.26.3
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-01-17 00:00:00.000000000 Z
11
+ date: 2024-01-24 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.2/CHANGELOG.md
110
+ changelog_uri: https://github.com/bugsnag/bugsnag-ruby/blob/v6.26.3/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'