sentry-sanitizer 0.6.0 → 0.7.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f83f2a0c9bb759f6f43b1b25f3219e403123d8bdade87f5aa8f6838269e432e7
4
- data.tar.gz: 9230c77fb3a9a178d457068e2ca03f5e8491f0778ff1cb8d76e8c2a612b6c409
3
+ metadata.gz: 17e8a5a1dcd6a12efae12b9f326fe9c1df140f02428782a6f6ecb6c102bda038
4
+ data.tar.gz: 342037b0b4f1bd0e45e4ae5b9fe3698914275320bc45162bcd69d03236a3b8cf
5
5
  SHA512:
6
- metadata.gz: b7ec44c8b25b101d9fb01ec0472e1e6338db2c9d5385599f91341c911c9754951005d574d86a868fb13a4120c2a517e91d2334e2b9e93e4253adff9d0d77babf
7
- data.tar.gz: 52e91220a7cc128f9c02e20889187cf2c2fe23bd7061b2e01e359f12b9da175fdc2a8218891676513b8ccc280da4afc0c3bf39e95dfabfecfaf1416b422fea67
6
+ metadata.gz: 39b42429f3b7ee5783a29ebf796220167370d4038a48bd19c1a6809d23aace59dddf3c2498e4777edccf0badb1784f0250196e413347cea77817923fa79b5ed2
7
+ data.tar.gz: cb70a216f92b749b68acdb158277277d4d9d0e0b19966b1aff8275c5456794025291b3730b64c91e6b31df89d5f2af077b3aa057d84ac67bdbb89168cf1555f9
@@ -1,8 +1,6 @@
1
- name: CI
1
+ name: CI linux
2
2
  on:
3
3
  push:
4
- branches:
5
- - master
6
4
  pull_request:
7
5
 
8
6
  jobs:
@@ -16,6 +14,7 @@ jobs:
16
14
  - { ruby_version: 2.7 }
17
15
  - { ruby_version: 3.0 }
18
16
  - { ruby_version: 3.1 }
17
+ - { ruby_version: 3.2 }
19
18
  - { ruby_version: jruby }
20
19
  steps:
21
20
  - uses: actions/checkout@v1
@@ -31,6 +30,9 @@ jobs:
31
30
  bundle install --jobs 4 --retry 3 --no-cache
32
31
  bundle exec rspec
33
32
 
34
- - uses: codecov/codecov-action@v1
33
+ - uses: coverallsapp/github-action@v2
34
+ env:
35
+ COVERALLS_SERVICE_NUMBER: ${{ github.sha }}
35
36
  with:
36
- token: ${{ secrets.CODECOV_TOKEN }}
37
+ flag-name: ruby-${{ join(matrix.*, '-') }}
38
+ parallel: true
@@ -0,0 +1,39 @@
1
+ name: CI macos
2
+ on:
3
+ push:
4
+ pull_request:
5
+
6
+ jobs:
7
+ rspec:
8
+ name: Unit tests
9
+ runs-on: macos-13
10
+ strategy:
11
+ matrix:
12
+ include:
13
+ - { ruby_version: 2.5 }
14
+ - { ruby_version: 2.7 }
15
+ - { ruby_version: 3.0 }
16
+ - { ruby_version: 3.1 }
17
+ - { ruby_version: 3.2 }
18
+ - { ruby_version: jruby }
19
+ steps:
20
+ - uses: actions/checkout@v1
21
+
22
+ - name: Set up Ruby ${{ matrix.ruby_version }}
23
+ uses: ruby/setup-ruby@v1
24
+ with:
25
+ bundler: 2
26
+ ruby-version: ${{ matrix.ruby_version }}
27
+
28
+ - name: Run specs
29
+ run: |
30
+ bundle install --jobs 4 --retry 3 --no-cache
31
+ bundle exec rspec
32
+
33
+ - uses: coverallsapp/github-action@v2
34
+ env:
35
+ COVERALLS_SERVICE_NUMBER: ${{ github.sha }}
36
+ with:
37
+ flag-name: ruby-${{ join(matrix.*, '-') }}
38
+ parallel: true
39
+
@@ -0,0 +1,38 @@
1
+ name: Coveralls
2
+ on:
3
+ push:
4
+ pull_request:
5
+
6
+ jobs:
7
+ coveralls:
8
+ name: Coveralls Report
9
+ runs-on: ubuntu-latest
10
+ if: ${{ always() }}
11
+ steps:
12
+ - uses: actions/checkout@v3
13
+
14
+ - name: Wait on tests (PR)
15
+ uses: lewagon/wait-on-check-action@v1.3.1
16
+ if: github.event_name == 'pull_request'
17
+ with:
18
+ ref: ${{ github.event.pull_request.head.sha }}
19
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
20
+ wait-interval: 10 # seconds
21
+ running-workflow-name: Coveralls Report
22
+ allowed-conclusions: success,skipped,cancelled,failure
23
+
24
+ - name: Wait on tests
25
+ uses: lewagon/wait-on-check-action@v1.3.1
26
+ with:
27
+ ref: ${{ github.sha }}
28
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
29
+ wait-interval: 10 # seconds
30
+ running-workflow-name: Coveralls Report
31
+ allowed-conclusions: success,skipped,cancelled,failure
32
+
33
+ - uses: coverallsapp/github-action@v2
34
+ env:
35
+ COVERALLS_SERVICE_NUMBER: ${{ github.sha }}
36
+ with:
37
+ carryforward: "ruby-2.5,ruby-2.6,ruby-2.7,ruby-3.0,ruby-3.1,ruby-jruby"
38
+ parallel-finished: true
data/.rubocop.yml ADDED
@@ -0,0 +1,36 @@
1
+ AllCops:
2
+ NewCops: enable
3
+ SuggestExtensions: false
4
+
5
+ Style/StringLiterals:
6
+ EnforcedStyle: double_quotes
7
+
8
+ Metrics/BlockLength:
9
+ Enabled: false
10
+
11
+ Style/Documentation:
12
+ Enabled: false
13
+
14
+ Layout/LineLength:
15
+ Enabled: false
16
+
17
+ Naming/FileName:
18
+ Enabled: false
19
+
20
+ Metrics/MethodLength:
21
+ Enabled: false
22
+
23
+ Metrics/ClassLength:
24
+ Enabled: false
25
+
26
+ Metrics/AbcSize:
27
+ Enabled: false
28
+
29
+ Gemspec/RequiredRubyVersion:
30
+ Enabled: false
31
+
32
+ Style/SelectByRegexp:
33
+ Enabled: false
34
+
35
+ Style/CaseLikeIf:
36
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.7.0
4
+
5
+ - fix: filter extra even without request [#14](https://github.com/mrexox/sentry-sanitizer/pull/14)
4
6
 
5
7
  ## 0.5.0
6
8
 
data/Gemfile CHANGED
@@ -1,6 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
6
 
5
7
  # Specify your gem's dependencies in sentry-sanitizer.gemspec
6
8
  gemspec
9
+
10
+ gem "rubocop", "~> 1.28.2"
11
+ gem "simplecov", require: false, group: :test
12
+
13
+ gem "bundler", ">= 1.17"
14
+ gem "rack"
15
+ gem "rake", "~> 10.0"
16
+ gem "rspec", "~> 3.0"
data/Gemfile.lock CHANGED
@@ -1,19 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sentry-sanitizer (0.6.0)
4
+ sentry-sanitizer (0.7.0)
5
5
  sentry-ruby (~> 5.3)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- codecov (0.6.0)
11
- simplecov (>= 0.15, < 0.22)
12
- concurrent-ruby (1.1.10)
10
+ ast (2.4.2)
11
+ bigdecimal (3.1.9)
12
+ concurrent-ruby (1.3.5)
13
13
  diff-lcs (1.5.0)
14
14
  docile (1.4.0)
15
+ parallel (1.23.0)
16
+ parser (3.2.2.1)
17
+ ast (~> 2.4.1)
15
18
  rack (2.2.3.1)
19
+ rainbow (3.1.1)
16
20
  rake (10.5.0)
21
+ regexp_parser (2.8.0)
22
+ rexml (3.2.5)
17
23
  rspec (3.11.0)
18
24
  rspec-core (~> 3.11.0)
19
25
  rspec-expectations (~> 3.11.0)
@@ -27,24 +33,38 @@ GEM
27
33
  diff-lcs (>= 1.2.0, < 2.0)
28
34
  rspec-support (~> 3.11.0)
29
35
  rspec-support (3.11.0)
30
- sentry-ruby (5.4.1)
36
+ rubocop (1.28.2)
37
+ parallel (~> 1.10)
38
+ parser (>= 3.1.0.0)
39
+ rainbow (>= 2.2.2, < 4.0)
40
+ regexp_parser (>= 1.8, < 3.0)
41
+ rexml
42
+ rubocop-ast (>= 1.17.0, < 2.0)
43
+ ruby-progressbar (~> 1.7)
44
+ unicode-display_width (>= 1.4.0, < 3.0)
45
+ rubocop-ast (1.29.0)
46
+ parser (>= 3.2.1.0)
47
+ ruby-progressbar (1.13.0)
48
+ sentry-ruby (5.22.2)
49
+ bigdecimal
31
50
  concurrent-ruby (~> 1.0, >= 1.0.2)
32
51
  simplecov (0.18.5)
33
52
  docile (~> 1.1)
34
53
  simplecov-html (~> 0.11)
35
54
  simplecov-html (0.12.3)
55
+ unicode-display_width (2.4.2)
36
56
 
37
57
  PLATFORMS
38
58
  ruby
39
59
 
40
60
  DEPENDENCIES
41
61
  bundler (>= 1.17)
42
- codecov
43
62
  rack
44
63
  rake (~> 10.0)
45
64
  rspec (~> 3.0)
65
+ rubocop (~> 1.28.2)
46
66
  sentry-sanitizer!
47
- simplecov (~> 0.18.5)
67
+ simplecov
48
68
 
49
69
  BUNDLED WITH
50
70
  2.3.16
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ![CI](https://github.com/mrexox/sentry-sanitizer/workflows/CI/badge.svg)
2
2
  [![Gem Version](https://badge.fury.io/rb/sentry-sanitizer.svg)](https://badge.fury.io/rb/sentry-sanitizer)
3
- [![codecov](https://codecov.io/gh/mrexox/sentry-sanitizer/branch/master/graph/badge.svg?token=QW93HCVI0W)](https://codecov.io/gh/mrexox/sentry-sanitizer)
3
+ [![Coverage Status](https://coveralls.io/repos/github/mrexox/sentry-sanitizer/badge.svg?branch=master)](https://coveralls.io/github/mrexox/sentry-sanitizer?branch=master)
4
4
 
5
5
  # sentry-sanitizer: sanitizing extension for sentry-ruby
6
6
 
@@ -56,6 +56,9 @@ Sentry.init do |config|
56
56
  # You can sanitize all cookies with this setting
57
57
  config.sanitize.cookies = true
58
58
 
59
+ # You can sanitize query string params for GET requests
60
+ config.sanitize.query_string = true
61
+
59
62
  # ...
60
63
  end
61
64
  ```
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
  require "rspec/core/rake_task"
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "bundler/setup"
4
5
  require "sentry/sanitizer"
data/lefthook.yml ADDED
@@ -0,0 +1,6 @@
1
+ pre-commit:
2
+ commands:
3
+ lint:
4
+ run: bundle exec rubocop -A {staged_files}
5
+ glob: "*.rb"
6
+ stage_fixed: true
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sentry
2
4
  module Sanitizer
3
5
  class Cleaner
4
- DEFAULT_MASK = '[FILTERED]'.freeze
6
+ DEFAULT_MASK = "[FILTERED]"
5
7
  DEFAULT_SENSITIVE_HEADERS = %w[
6
8
  Authorization
7
9
  X-Xsrf-Token
@@ -14,37 +16,46 @@ module Sentry
14
16
  @http_headers = config.http_headers || DEFAULT_SENSITIVE_HEADERS
15
17
  @do_cookies = config.cookies || false
16
18
  @do_query_string = config.query_string || false
19
+ @mask = config.mask || DEFAULT_MASK
17
20
  end
18
21
 
19
22
  def call(event)
20
- if event.is_a?(Sentry::Event)
21
- sanitize_request(event, :object) if event.request
22
- event.extra = sanitize_data(event.extra)
23
- elsif event.is_a?(Hash)
24
- sanitize_request(event, :stringified_hash) if event['request']
25
- sanitize_request(event, :symbolized_hash) if event[:request]
26
- event['extra'] = sanitize_data(event['extra']) if event['extra']
27
- event[:extra] = sanitize_data(event[:extra]) if event[:extra]
23
+ case event
24
+ when Sentry::Event
25
+ sanitize(event, :event)
26
+ when Hash
27
+ sanitize(event, :hash)
28
28
  end
29
29
  end
30
30
 
31
- def sanitize_request(event, type)
31
+ def sanitize(event, type) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
32
32
  case type
33
- when :object
34
- event.request.data = sanitize_data(event.request.data)
35
- event.request.headers = sanitize_headers(event.request.headers)
36
- event.request.cookies = sanitize_cookies(event.request.cookies)
37
- event.request.query_string = sanitize_query_string(event.request.query_string)
38
- when :stringified_hash
39
- event['request']['data'] = sanitize_data(event['request']['data'])
40
- event['request']['headers'] = sanitize_headers(event['request']['headers'])
41
- event['request']['cookies'] = sanitize_cookies(event['request']['cookies'])
42
- event['request']['query_string'] = sanitize_query_string(event['request']['query_string'])
43
- when :symbolized_hash
44
- event[:request][:data] = sanitize_data(event[:request][:data])
45
- event[:request][:headers] = sanitize_headers(event[:request][:headers])
46
- event[:request][:cookies] = sanitize_cookies(event[:request][:cookies])
47
- event[:request][:query_string] = sanitize_query_string(event[:request][:query_string])
33
+ when :event
34
+ if event.request
35
+ event.request.data = sanitize_data(event.request.data)
36
+ event.request.headers = sanitize_headers(event.request.headers)
37
+ event.request.cookies = sanitize_cookies(event.request.cookies)
38
+ event.request.query_string = sanitize_query_string(event.request.query_string)
39
+ end
40
+ event.extra = sanitize_data(event.extra)
41
+ when :hash
42
+ if event["request"]
43
+ event["request"]["data"] = sanitize_data(event["request"]["data"])
44
+ event["request"]["headers"] = sanitize_headers(event["request"]["headers"])
45
+ event["request"]["cookies"] = sanitize_cookies(event["request"]["cookies"])
46
+ event["request"]["query_string"] = sanitize_query_string(event["request"]["query_string"])
47
+ elsif event[:request]
48
+ event[:request][:data] = sanitize_data(event[:request][:data])
49
+ event[:request][:headers] = sanitize_headers(event[:request][:headers])
50
+ event[:request][:cookies] = sanitize_cookies(event[:request][:cookies])
51
+ event[:request][:query_string] = sanitize_query_string(event[:request][:query_string])
52
+ end
53
+
54
+ if event["extra"]
55
+ event["extra"] = sanitize_data(event["extra"])
56
+ elsif event[:extra]
57
+ event[:extra] = sanitize_data(event[:extra])
58
+ end
48
59
  end
49
60
  end
50
61
 
@@ -57,19 +68,24 @@ module Sentry
57
68
 
58
69
  private
59
70
 
60
- attr_reader :fields, :http_headers, :do_cookies, :do_query_string
71
+ attr_reader :fields,
72
+ :http_headers,
73
+ :do_cookies,
74
+ :do_query_string,
75
+ :mask
61
76
 
62
77
  # Sanitize specified headers
63
78
  def sanitize_headers(headers)
64
79
  case http_headers
65
80
  when TrueClass
66
- headers.transform_values { DEFAULT_MASK }
81
+ headers.transform_values { mask }
67
82
  when Array
68
83
  return headers unless http_headers.size.positive?
84
+
69
85
  http_headers_regex = sensitive_regexp(http_headers)
70
86
 
71
87
  headers.keys.select { |key| key.match?(http_headers_regex) }.each do |key|
72
- headers[key] = DEFAULT_MASK
88
+ headers[key] = mask
73
89
  end
74
90
 
75
91
  headers
@@ -83,21 +99,21 @@ module Sentry
83
99
  return cookies unless do_cookies
84
100
  return cookies unless cookies.is_a? Hash
85
101
 
86
- cookies.transform_values { DEFAULT_MASK }
102
+ cookies.transform_values { mask }
87
103
  end
88
104
 
89
105
  def sanitize_query_string(query_string)
90
106
  return query_string unless do_query_string
91
107
  return query_string unless query_string.is_a? String
92
108
 
93
- sanitized_array = query_string.split('&').map do |kv_pair|
94
- k, v = kv_pair.split('=')
109
+ sanitized_array = query_string.split("&").map do |kv_pair|
110
+ k, v = kv_pair.split("=")
95
111
  new_v = sanitize_string(k, v)
96
112
 
97
113
  "#{k}=#{new_v}"
98
114
  end
99
115
 
100
- sanitized_array.join('&')
116
+ sanitized_array.join("&")
101
117
  end
102
118
 
103
119
  def sanitize_value(value, key)
@@ -115,7 +131,7 @@ module Sentry
115
131
 
116
132
  def sanitize_hash(key, value)
117
133
  if key&.match?(sensitive_fields)
118
- DEFAULT_MASK
134
+ mask
119
135
  elsif value.frozen?
120
136
  value.merge(value) { |k, v| sanitize_value(v, k) }
121
137
  else
@@ -132,7 +148,7 @@ module Sentry
132
148
  end
133
149
 
134
150
  def sanitize_string(key, value)
135
- key&.match?(sensitive_fields) ? DEFAULT_MASK : value
151
+ key&.match?(sensitive_fields) ? mask : value
136
152
  end
137
153
 
138
154
  def sensitive_fields
@@ -140,7 +156,7 @@ module Sentry
140
156
  end
141
157
 
142
158
  def sensitive_regexp(fields)
143
- Regexp.new(fields.map { |field| "\\b#{field}\\b" }.join('|'), 'i')
159
+ Regexp.new(fields.map { |field| "\\b#{field}\\b" }.join("|"), "i")
144
160
  end
145
161
  end
146
162
  end
@@ -1,6 +1,8 @@
1
- require 'sentry/configuration'
2
- require 'sentry/sanitizer/cleaner'
3
- require 'sentry/sanitizer/configuration_mixin'
1
+ # frozen_string_literal: true
2
+
3
+ require "sentry/configuration"
4
+ require "sentry/sanitizer/cleaner"
5
+ require "sentry/sanitizer/configuration_mixin"
4
6
 
5
7
  module Sentry
6
8
  # Monkey-patching Sentry::Configuration
@@ -14,53 +16,60 @@ module Sentry
14
16
  add_post_initialization_callback do
15
17
  @sanitize ||= Sentry::Sanitizer::Configuration.new
16
18
 
17
- self.before_send = ->(event, hint) do
19
+ self.before_send = lambda { |event, _hint|
18
20
  Sentry::Sanitizer::Cleaner.new(Sentry.configuration.sanitize).call(event)
19
21
 
20
22
  event
21
- end
23
+ }
22
24
  end
23
25
  end
24
26
 
25
27
  module Sanitizer
26
28
  class Configuration
27
- attr_accessor :fields, :http_headers, :cookies, :query_string
29
+ attr_reader :fields,
30
+ :http_headers,
31
+ :cookies,
32
+ :query_string,
33
+ :mask
28
34
 
29
35
  def configured?
30
- [fields, http_headers, cookies, query_string].any? { |setting| !setting.nil? }
36
+ [
37
+ fields,
38
+ http_headers,
39
+ cookies,
40
+ query_string
41
+ ].any? { |setting| !setting.nil? }
31
42
  end
32
43
 
33
44
  def fields=(fields)
34
- unless fields.is_a? Array
35
- raise ArgumentError, 'sanitize_fields must be array'
36
- end
45
+ raise ArgumentError, "sanitize_fields must be array" unless fields.is_a? Array
37
46
 
38
47
  @fields = fields
39
48
  end
40
49
 
41
50
  def http_headers=(headers)
42
- unless [Array, TrueClass, FalseClass].include?(headers.class)
43
- raise ArgumentError, 'sanitize_http_headers must be array'
44
- end
51
+ raise ArgumentError, "sanitize_http_headers must be array" unless [Array, TrueClass, FalseClass].include?(headers.class)
45
52
 
46
53
  @http_headers = headers
47
54
  end
48
55
 
49
56
  def cookies=(cookies)
50
- unless [TrueClass, FalseClass].include?(cookies.class)
51
- raise ArgumentError, 'cookies must be boolean'
52
- end
57
+ raise ArgumentError, "cookies must be boolean" unless [TrueClass, FalseClass].include?(cookies.class)
53
58
 
54
59
  @cookies = cookies
55
60
  end
56
61
 
57
62
  def query_string=(query_string)
58
- unless [TrueClass, FalseClass].include?(query_string.class)
59
- raise ArgumentError, 'query_string must be boolean'
60
- end
63
+ raise ArgumentError, "query_string must be boolean" unless [TrueClass, FalseClass].include?(query_string.class)
61
64
 
62
65
  @query_string = query_string
63
66
  end
67
+
68
+ def mask=(mask)
69
+ raise ArgumentError, "mask must be string" unless mask.is_a?(String)
70
+
71
+ @mask = mask
72
+ end
64
73
  end
65
74
  end
66
75
  end
@@ -1,18 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sentry
2
4
  module Sanitizer
3
5
  module ConfigurationMixin
4
6
  # Allow adding multiple hooks for this extension
7
+ #
8
+ # @param [nil, false, #call] value
9
+ #
5
10
  def before_send=(value)
6
- unless value == nil || value.respond_to?(:call)
7
- raise ArgumentError, "before_send must be callable (or false to disable)"
8
- end
11
+ raise ArgumentError, "before_send must be callable (or false to disable)" unless value.nil? || value == false || value.respond_to?(:call)
9
12
 
10
- return if value == nil
13
+ return unless value
11
14
 
12
15
  @before_send_hook_list ||= []
13
16
  @before_send_hook_list << value
14
17
 
15
- @before_send = ->(event, hint) {
18
+ @before_send = lambda { |event, hint|
16
19
  @before_send_hook_list.each do |hook|
17
20
  event = hook.call(event, hint)
18
21
  end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Sentry
2
4
  module Sanitizer
3
- VERSION = '0.6.0'
5
+ VERSION = "0.7.0"
4
6
  end
5
7
  end
@@ -1,11 +1,13 @@
1
- require 'sentry-ruby'
2
- require 'sentry/integrable'
3
- require 'sentry/sanitizer/configuration'
1
+ # frozen_string_literal: true
2
+
3
+ require "sentry-ruby"
4
+ require "sentry/integrable"
5
+ require "sentry/sanitizer/configuration"
4
6
 
5
7
  module Sentry
6
8
  module Sanitizer
7
9
  extend Integrable
8
10
 
9
- register_integration name: 'sanitizer', version: Sentry::Sanitizer::VERSION
11
+ register_integration name: "sanitizer", version: Sentry::Sanitizer::VERSION
10
12
  end
11
13
  end
@@ -1,2 +1,4 @@
1
- require 'sentry/sanitizer/version'
2
- require 'sentry/sanitizer'
1
+ # frozen_string_literal: true
2
+
3
+ require "sentry/sanitizer/version"
4
+ require "sentry/sanitizer"
@@ -1,40 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('lib', __dir__)
3
+ lib = File.expand_path("lib", __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'sentry/sanitizer/version'
5
+ require "sentry/sanitizer/version"
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = 'sentry-sanitizer'
8
+ spec.name = "sentry-sanitizer"
9
9
  spec.version = Sentry::Sanitizer::VERSION
10
- spec.authors = ['Valentine Kiselev']
11
- spec.email = ['mrexox@outlook.com']
10
+ spec.authors = ["Valentine Kiselev"]
11
+ spec.email = ["mrexox@outlook.com"]
12
12
 
13
- spec.summary = %q{Sanitizing middleware for sentry-ruby gem}
14
- spec.description = %q{Add missing sanitizing support for sentry-ruby (previous sentry-raven)}
15
- spec.homepage = 'https://github.com/mrexox/sentry-sanitizer'
16
- spec.license = 'BSD'
13
+ spec.summary = "Sanitizing middleware for sentry-ruby gem"
14
+ spec.description = "Add missing sanitizing support for sentry-ruby (previous sentry-raven)"
15
+ spec.homepage = "https://github.com/mrexox/sentry-sanitizer"
16
+ spec.license = "BSD"
17
17
 
18
- spec.metadata['homepage_uri'] = spec.homepage
19
- spec.metadata['source_code_uri'] = spec.homepage
20
- spec.metadata['changelog_uri'] = spec.homepage
18
+ spec.metadata["homepage_uri"] = spec.homepage
19
+ spec.metadata["source_code_uri"] = spec.homepage
20
+ spec.metadata["changelog_uri"] = spec.homepage
21
21
 
22
22
  # Specify which files should be added to the gem when it is released.
23
23
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
25
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
26
  end
27
27
 
28
- spec.require_paths = ['lib']
28
+ spec.require_paths = ["lib"]
29
29
 
30
- # Codecov
31
- spec.add_development_dependency 'codecov'
32
- spec.add_development_dependency 'simplecov', '~> 0.18.5'
33
-
34
- spec.add_development_dependency 'bundler', '>= 1.17'
35
- spec.add_development_dependency 'rake', '~> 10.0'
36
- spec.add_development_dependency 'rspec', '~> 3.0'
37
- spec.add_development_dependency 'rack'
38
-
39
- spec.add_runtime_dependency 'sentry-ruby', '~> 5.3'
30
+ spec.add_runtime_dependency "sentry-ruby", "~> 5.3"
31
+ spec.metadata["rubygems_mfa_required"] = "true"
40
32
  end
data/tea.yml ADDED
@@ -0,0 +1,6 @@
1
+ # https://tea.xyz/what-is-this-file
2
+ ---
3
+ version: 1.0.0
4
+ codeOwners:
5
+ - '0xb1a25Fe215747E1093901282dc2Ea68cE8c290D8'
6
+ quorum: 1
metadata CHANGED
@@ -1,99 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentry-sanitizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Valentine Kiselev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-19 00:00:00.000000000 Z
11
+ date: 2025-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: codecov
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: simplecov
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 0.18.5
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.18.5
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '1.17'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '1.17'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '10.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '10.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.0'
83
- - !ruby/object:Gem::Dependency
84
- name: rack
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
13
  - !ruby/object:Gem::Dependency
98
14
  name: sentry-ruby
99
15
  requirement: !ruby/object:Gem::Requirement
@@ -115,9 +31,12 @@ executables: []
115
31
  extensions: []
116
32
  extra_rdoc_files: []
117
33
  files:
118
- - ".github/workflows/ci.yml"
34
+ - ".github/workflows/ci-linux.yml"
35
+ - ".github/workflows/ci-macos.yml"
36
+ - ".github/workflows/coveralls-report.yml"
119
37
  - ".gitignore"
120
38
  - ".rspec"
39
+ - ".rubocop.yml"
121
40
  - ".travis.yml"
122
41
  - CHANGELOG.md
123
42
  - Gemfile
@@ -127,6 +46,7 @@ files:
127
46
  - Rakefile
128
47
  - bin/console
129
48
  - bin/setup
49
+ - lefthook.yml
130
50
  - lib/sentry-sanitizer.rb
131
51
  - lib/sentry/sanitizer.rb
132
52
  - lib/sentry/sanitizer/cleaner.rb
@@ -134,6 +54,7 @@ files:
134
54
  - lib/sentry/sanitizer/configuration_mixin.rb
135
55
  - lib/sentry/sanitizer/version.rb
136
56
  - sentry-sanitizer.gemspec
57
+ - tea.yml
137
58
  homepage: https://github.com/mrexox/sentry-sanitizer
138
59
  licenses:
139
60
  - BSD
@@ -141,6 +62,7 @@ metadata:
141
62
  homepage_uri: https://github.com/mrexox/sentry-sanitizer
142
63
  source_code_uri: https://github.com/mrexox/sentry-sanitizer
143
64
  changelog_uri: https://github.com/mrexox/sentry-sanitizer
65
+ rubygems_mfa_required: 'true'
144
66
  post_install_message:
145
67
  rdoc_options: []
146
68
  require_paths:
@@ -156,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
78
  - !ruby/object:Gem::Version
157
79
  version: '0'
158
80
  requirements: []
159
- rubygems_version: 3.2.3
81
+ rubygems_version: 3.4.19
160
82
  signing_key:
161
83
  specification_version: 4
162
84
  summary: Sanitizing middleware for sentry-ruby gem