bugsnag 6.26.2 → 6.26.3

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 (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'