sentry-raven 2.12.1 → 3.0.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.
- checksums.yaml +5 -5
- data/.craft.yml +14 -0
- data/.github/workflows/test.yml +77 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +44 -9
- data/.scripts/bump-version.sh +9 -0
- data/Gemfile +17 -25
- data/README.md +4 -3
- data/changelog.md +38 -0
- data/lib/raven/backtrace.rb +7 -5
- data/lib/raven/base.rb +5 -3
- data/lib/raven/breadcrumbs.rb +1 -1
- data/lib/raven/breadcrumbs/activesupport.rb +10 -10
- data/lib/raven/breadcrumbs/logger.rb +3 -3
- data/lib/raven/cli.rb +2 -2
- data/lib/raven/client.rb +12 -6
- data/lib/raven/configuration.rb +15 -5
- data/lib/raven/event.rb +5 -6
- data/lib/raven/instance.rb +6 -3
- data/lib/raven/integrations/delayed_job.rb +14 -15
- data/lib/raven/integrations/rack-timeout.rb +2 -3
- data/lib/raven/integrations/rack.rb +4 -3
- data/lib/raven/integrations/rails.rb +1 -0
- data/lib/raven/integrations/rails/active_job.rb +10 -7
- data/lib/raven/integrations/rails/overrides/debug_exceptions_catcher.rb +2 -2
- data/lib/raven/interface.rb +2 -2
- data/lib/raven/interfaces/stack_trace.rb +1 -1
- data/lib/raven/linecache.rb +5 -2
- data/lib/raven/logger.rb +3 -2
- data/lib/raven/processor/cookies.rb +16 -6
- data/lib/raven/processor/post_data.rb +2 -0
- data/lib/raven/processor/removecircularreferences.rb +1 -0
- data/lib/raven/processor/sanitizedata.rb +65 -17
- data/lib/raven/processor/utf8conversion.rb +2 -0
- data/lib/raven/transports.rb +4 -0
- data/lib/raven/transports/http.rb +5 -5
- data/lib/raven/utils/exception_cause_chain.rb +1 -0
- data/lib/raven/utils/real_ip.rb +1 -1
- data/lib/raven/version.rb +2 -2
- data/sentry-raven.gemspec +2 -2
- metadata +7 -12
- data/.travis.yml +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 765b22e2ec433b8ab12697da42d40ba6c0f2f95956bd6ce93b0923b9160f386f
|
4
|
+
data.tar.gz: b4f97a6effa6828a10cb7844001852db042627dfe375aae61e93b92d10eb2ba7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25c1a39ce4a97b7e40fa66fc1dd1eb7ae4ef96a6e0956f7600db04717eb8c9f147d83317513ba072db31a4390b678b9c56f406f6ba02377f11b4810a3fef5128
|
7
|
+
data.tar.gz: 17adf7a479a1539a9fdc81003b2204c0334334cb54482812339af18cd7a75eb9830e22389fc0eed7e304787b993f8aaca92bb1d1c2f414e88a61858acadf08aa
|
data/.craft.yml
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
minVersion: '0.9.0'
|
2
|
+
github:
|
3
|
+
owner: getsentry
|
4
|
+
repo: raven-ruby
|
5
|
+
changelogPolicy: simple
|
6
|
+
preReleaseCommand: ruby .scripts/bump-version.sh
|
7
|
+
statusProvider:
|
8
|
+
name: github
|
9
|
+
targets:
|
10
|
+
- name: github
|
11
|
+
- name: registry
|
12
|
+
type: sdk
|
13
|
+
config:
|
14
|
+
canonical: 'gem:sentry-raven'
|
@@ -0,0 +1,77 @@
|
|
1
|
+
name: Test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
- release/**
|
8
|
+
pull_request:
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
name: Test on ruby ${{ matrix.ruby_version }} and rails ${{ matrix.rails_version }}
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
rails_version: [0, 4.2, 5.2, 6.0]
|
16
|
+
ruby_version: [2.3, 2.4, 2.5, 2.6, 2.7, jruby, head]
|
17
|
+
os: [ubuntu-latest]
|
18
|
+
include:
|
19
|
+
- ruby_version: head
|
20
|
+
rails_version: 0
|
21
|
+
- ruby_version: 2.7
|
22
|
+
rails_version: 6.0
|
23
|
+
env: RUBYOPT="--enable-frozen-string-literal --debug=frozen-string-literal"
|
24
|
+
exclude:
|
25
|
+
- ruby_version: 2.3
|
26
|
+
rails_version: 6.0
|
27
|
+
- ruby_version: 2.4
|
28
|
+
rails_version: 6.0
|
29
|
+
- ruby_version: 2.7
|
30
|
+
rails_version: 4.2
|
31
|
+
- ruby_version: head
|
32
|
+
rails_version: 4.2
|
33
|
+
- ruby_version: head
|
34
|
+
rails_version: 5.2
|
35
|
+
- ruby_version: head
|
36
|
+
rails_version: 6.0
|
37
|
+
|
38
|
+
steps:
|
39
|
+
- uses: actions/checkout@v1
|
40
|
+
|
41
|
+
- name: Set up Ruby ${{ matrix.ruby_version }}
|
42
|
+
uses: ruby/setup-ruby@v1
|
43
|
+
with:
|
44
|
+
bundler: 1
|
45
|
+
ruby-version: ${{ matrix.ruby_version }}
|
46
|
+
|
47
|
+
- name: Build with Rails ${{ matrix.rails_version }}
|
48
|
+
env:
|
49
|
+
RAILS_VERSION: ${{ matrix.rails_version }}
|
50
|
+
run: |
|
51
|
+
bundle install --jobs 4 --retry 3
|
52
|
+
bundle exec rake
|
53
|
+
|
54
|
+
job_zeus:
|
55
|
+
name: Zeus
|
56
|
+
runs-on: ubuntu-latest
|
57
|
+
steps:
|
58
|
+
- uses: actions/checkout@v2
|
59
|
+
- uses: actions/setup-node@v1
|
60
|
+
- name: Set up Ruby
|
61
|
+
uses: ruby/setup-ruby@v1
|
62
|
+
with:
|
63
|
+
ruby-version: 2.6 # Not needed with a .ruby-version file
|
64
|
+
- run: bundle install
|
65
|
+
- name: Install Zeus
|
66
|
+
run: |
|
67
|
+
yarn global add @zeus-ci/cli
|
68
|
+
echo "::add-path::$(yarn global bin)"
|
69
|
+
- name: Upload to Zeus
|
70
|
+
env:
|
71
|
+
ZEUS_API_TOKEN: ${{ secrets.ZEUS_API_TOKEN }}
|
72
|
+
ZEUS_HOOK_BASE: ${{ secrets.ZEUS_HOOK_BASE }}
|
73
|
+
run: |
|
74
|
+
zeus job update -b $GITHUB_RUN_ID -j $GITHUB_RUN_NUMBER -r $GITHUB_SHA
|
75
|
+
gem build sentry-raven.gemspec
|
76
|
+
zeus upload -b $GITHUB_RUN_ID -j $GITHUB_RUN_NUMBER -t "application/tar+gem" ./*.gem
|
77
|
+
zeus job update --status=passed -b $GITHUB_RUN_ID -j $GITHUB_RUN_NUMBER -r $GITHUB_SHA
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -13,33 +13,45 @@ Metrics/ClassLength:
|
|
13
13
|
Metrics/AbcSize:
|
14
14
|
Max: 40
|
15
15
|
|
16
|
+
Metrics/BlockLength:
|
17
|
+
Enabled: false
|
18
|
+
|
16
19
|
Metrics/CyclomaticComplexity:
|
17
20
|
Max: 12
|
18
21
|
|
19
22
|
Metrics/PerceivedComplexity:
|
20
23
|
Max: 11
|
21
24
|
|
22
|
-
Metrics/LineLength:
|
23
|
-
Max: 155
|
24
|
-
|
25
25
|
Metrics/MethodLength:
|
26
26
|
Max: 30
|
27
27
|
|
28
|
-
Style/
|
28
|
+
Style/SymbolArray:
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
Style/PercentLiteralDelimiters:
|
32
|
+
Enabled: false
|
33
|
+
|
34
|
+
Style/FrozenStringLiteralComment:
|
29
35
|
Enabled: false
|
30
36
|
|
31
|
-
|
37
|
+
Style/SignalException:
|
32
38
|
Enabled: false
|
33
39
|
|
34
40
|
Style/ClassAndModuleChildren:
|
35
41
|
Enabled: false
|
36
42
|
|
43
|
+
Style/RescueStandardError:
|
44
|
+
Enabled: false
|
45
|
+
|
37
46
|
Style/ParallelAssignment:
|
38
47
|
Enabled: false
|
39
48
|
|
40
49
|
Style/Documentation:
|
41
50
|
Enabled: false
|
42
51
|
|
52
|
+
Style/CommentedKeyword:
|
53
|
+
Enabled: false
|
54
|
+
|
43
55
|
Style/RescueModifier:
|
44
56
|
Enabled: false
|
45
57
|
|
@@ -52,10 +64,11 @@ Style/CaseEquality:
|
|
52
64
|
Style/DoubleNegation:
|
53
65
|
Enabled: false
|
54
66
|
|
55
|
-
Style/
|
56
|
-
|
57
|
-
|
58
|
-
|
67
|
+
Style/GuardClause:
|
68
|
+
Enabled: false
|
69
|
+
|
70
|
+
Style/RedundantBegin:
|
71
|
+
Enabled: false
|
59
72
|
|
60
73
|
Style/NumericLiterals:
|
61
74
|
Exclude:
|
@@ -64,6 +77,9 @@ Style/NumericLiterals:
|
|
64
77
|
Style/HashSyntax:
|
65
78
|
EnforcedStyle: hash_rockets
|
66
79
|
|
80
|
+
Style/IfUnlessModifier:
|
81
|
+
Enabled: false
|
82
|
+
|
67
83
|
Lint/RescueException:
|
68
84
|
Exclude:
|
69
85
|
- 'lib/raven/base.rb'
|
@@ -72,3 +88,22 @@ Lint/RescueException:
|
|
72
88
|
- 'lib/raven/integrations/rack.rb'
|
73
89
|
- 'lib/raven/integrations/sidekiq.rb'
|
74
90
|
- 'spec/raven/event_spec.rb'
|
91
|
+
|
92
|
+
Lint/SuppressedException:
|
93
|
+
Enabled: false
|
94
|
+
|
95
|
+
Lint/AssignmentInCondition:
|
96
|
+
Enabled: false
|
97
|
+
|
98
|
+
Layout/LineLength:
|
99
|
+
Max: 155
|
100
|
+
|
101
|
+
Naming/FileName:
|
102
|
+
Exclude:
|
103
|
+
- 'lib/sentry-raven-without-integrations.rb'
|
104
|
+
- 'lib/sentry-raven.rb'
|
105
|
+
- 'lib/raven/integrations/rack-timeout.rb'
|
106
|
+
|
107
|
+
Naming/MethodParameterName:
|
108
|
+
Enabled: false
|
109
|
+
|
data/Gemfile
CHANGED
@@ -2,37 +2,29 @@ source "https://rubygems.org/"
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
|
6
|
-
gem "rails", "< 5"
|
7
|
-
gem "rspec-rails", "> 3"
|
8
|
-
elsif ENV["RAILS_VERSION"] && (ENV["RAILS_VERSION"].to_i == 0)
|
9
|
-
# no-op. No Rails.
|
10
|
-
else
|
11
|
-
gem "rails", "< 6"
|
12
|
-
gem "rspec-rails", "> 3"
|
13
|
-
end
|
5
|
+
rails_version = ENV["RAILS_VERSION"].to_f
|
14
6
|
|
15
|
-
if
|
16
|
-
gem "
|
17
|
-
gem "
|
18
|
-
gem "rack", "~> 1.6.8"
|
19
|
-
gem "sidekiq", "< 3.2"
|
20
|
-
gem "rack-timeout", "0.3.0"
|
21
|
-
else
|
22
|
-
gem "rack"
|
23
|
-
gem "sidekiq"
|
24
|
-
gem "rack-timeout"
|
7
|
+
if rails_version != 0
|
8
|
+
gem "rails", "~> #{rails_version}"
|
9
|
+
gem "rspec-rails", "~> 4.0"
|
25
10
|
end
|
11
|
+
|
12
|
+
gem "sidekiq"
|
13
|
+
|
14
|
+
gem "rack"
|
15
|
+
gem "rack-timeout"
|
16
|
+
|
26
17
|
gem "pry"
|
27
|
-
gem "pry-coolline"
|
28
18
|
gem "benchmark-ips"
|
29
|
-
gem "benchmark-ipsa"
|
19
|
+
gem "benchmark-ipsa"
|
30
20
|
gem "ruby-prof", platform: :mri
|
31
21
|
gem "rake", "> 12"
|
32
|
-
gem "rubocop", "~> 0.
|
33
|
-
gem "rspec", "
|
34
|
-
gem "capybara" # rspec system tests
|
22
|
+
gem "rubocop", "~> 0.81.0"
|
23
|
+
gem "rspec", "~> 3.9.0"
|
24
|
+
gem "capybara", "~> 3.15.0" # rspec system tests
|
35
25
|
gem "puma" # rspec system tests
|
36
26
|
|
37
27
|
gem "timecop"
|
38
|
-
gem "test-unit"
|
28
|
+
gem "test-unit"
|
29
|
+
gem "simplecov"
|
30
|
+
gem "codecov"
|
data/README.md
CHANGED
@@ -8,7 +8,8 @@
|
|
8
8
|
# Raven-Ruby, the Ruby Client for Sentry
|
9
9
|
|
10
10
|
[](https://rubygems.org/gems/sentry-raven)
|
11
|
-
|
11
|
+

|
12
|
+
[](https://codecov.io/gh/getsentry/raven-ruby/branch/master)
|
12
13
|
[](https://rubygems.org/gems/sentry-raven/)
|
13
14
|
[](https://dependabot.com/compatibility-score.html?dependency-name=sentry-raven&package-manager=bundler&version-scheme=semver)
|
14
15
|
|
@@ -19,7 +20,7 @@ The official Ruby-language client and integration layer for the [Sentry](https:/
|
|
19
20
|
|
20
21
|
## Requirements
|
21
22
|
|
22
|
-
We test on Ruby
|
23
|
+
We test on Ruby 2.3, 2.4, 2.5, 2.6 and 2.7 at the latest patchlevel/teeny version. We also support JRuby 9.0. Our Rails integration works with Rails 4.2+, including Rails 5 and Rails 6.
|
23
24
|
|
24
25
|
## Getting Started
|
25
26
|
|
@@ -133,4 +134,4 @@ For more information, see [Context](https://docs.sentry.io/clients/ruby/context/
|
|
133
134
|
* [Documentation](https://docs.sentry.io/clients/ruby/)
|
134
135
|
* [Bug Tracker](https://github.com/getsentry/raven-ruby/issues)
|
135
136
|
* [Forum](https://forum.sentry.io/)
|
136
|
-
|
137
|
+
- [Discord](https://discord.gg/ez5KZN7)
|
data/changelog.md
CHANGED
@@ -1,3 +1,41 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## Unreleased
|
4
|
+
|
5
|
+
## 3.0.1
|
6
|
+
|
7
|
+
* fix: Improve SanitizeData processor (#984)
|
8
|
+
* fix: Masking cookies as key/pair instead of a single string (#983)
|
9
|
+
* fix: Transports classes' requiring issue (#986)
|
10
|
+
* fix: Frozen string issues (#977)
|
11
|
+
* feat: Officially support Rails 6 (#982)
|
12
|
+
|
13
|
+
3.0.0
|
14
|
+
----
|
15
|
+
|
16
|
+
* SDK now requires Ruby >= 2.3
|
17
|
+
* REF: Retain any literal "HTTP-" in header names [@elliterate, #950]
|
18
|
+
* REF: Delete JSON spec for recursive hashes [@ksylvest, #952]
|
19
|
+
* FEAT: Bump faraday version to latest [@ksylvest, #946]
|
20
|
+
|
21
|
+
2.13.0
|
22
|
+
----
|
23
|
+
|
24
|
+
* FIX: Sanitize event data before they are sent to async job. [@edariedl, #895]
|
25
|
+
* FIX: Serialization MongoDB ObjectId to JSON problem with gem delayed_job_mongoid conjunction. [@eagleas, #935]
|
26
|
+
* FEAT: Skip ActiveJob integration if there is a better one [@fsateler, #909]
|
27
|
+
* FIX: Bugs with send_event in asynchronous mode (#940) [@cstyles, #940]
|
28
|
+
|
29
|
+
2.12.3
|
30
|
+
----
|
31
|
+
|
32
|
+
* FIX: crash when Process.wait is used [@asBrettisay, #895]
|
33
|
+
|
34
|
+
2.12.2
|
35
|
+
----
|
36
|
+
|
37
|
+
* FIX: return tags/extra for [@rivayama, #931]
|
38
|
+
|
1
39
|
2.12.1
|
2
40
|
----
|
3
41
|
|
data/lib/raven/backtrace.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
## Inspired by Rails' and Airbrake's backtrace parsers.
|
2
4
|
|
3
5
|
module Raven
|
@@ -5,16 +7,16 @@ module Raven
|
|
5
7
|
class Backtrace
|
6
8
|
# Handles backtrace parsing line by line
|
7
9
|
class Line
|
8
|
-
RB_EXTENSION = ".rb"
|
10
|
+
RB_EXTENSION = ".rb"
|
9
11
|
# regexp (optional leading X: on windows, or JRuby9000 class-prefix)
|
10
12
|
RUBY_INPUT_FORMAT = /
|
11
13
|
^ \s* (?: [a-zA-Z]: | uri:classloader: )? ([^:]+ | <.*>):
|
12
14
|
(\d+)
|
13
15
|
(?: :in \s `([^']+)')?$
|
14
|
-
/x
|
16
|
+
/x.freeze
|
15
17
|
|
16
18
|
# org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
|
17
|
-
JAVA_INPUT_FORMAT = /^(.+)\.([^\.]+)\(([^\:]+)\:(\d+)\)
|
19
|
+
JAVA_INPUT_FORMAT = /^(.+)\.([^\.]+)\(([^\:]+)\:(\d+)\)$/.freeze
|
18
20
|
|
19
21
|
# The file portion of the line (such as app/models/user.rb)
|
20
22
|
attr_reader :file
|
@@ -74,7 +76,7 @@ module Raven
|
|
74
76
|
|
75
77
|
def self.in_app_pattern
|
76
78
|
@in_app_pattern ||= begin
|
77
|
-
project_root = Raven.configuration.project_root
|
79
|
+
project_root = Raven.configuration.project_root&.to_s
|
78
80
|
Regexp.new("^(#{project_root}/)?#{Raven.configuration.app_dirs_pattern || APP_DIRS_PATTERN}")
|
79
81
|
end
|
80
82
|
end
|
@@ -84,7 +86,7 @@ module Raven
|
|
84
86
|
attr_writer :file, :number, :method, :module_name
|
85
87
|
end
|
86
88
|
|
87
|
-
APP_DIRS_PATTERN = /(bin|exe|app|config|lib|test)
|
89
|
+
APP_DIRS_PATTERN = /(bin|exe|app|config|lib|test)/.freeze
|
88
90
|
|
89
91
|
# holder for an Array of Backtrace::Line instances
|
90
92
|
attr_reader :lines
|
data/lib/raven/base.rb
CHANGED
@@ -85,12 +85,13 @@ module Raven
|
|
85
85
|
|
86
86
|
def load_integration(integration)
|
87
87
|
require "raven/integrations/#{integration}"
|
88
|
-
rescue Exception =>
|
89
|
-
logger.warn "Unable to load raven/integrations/#{integration}: #{
|
88
|
+
rescue Exception => e
|
89
|
+
logger.warn "Unable to load raven/integrations/#{integration}: #{e}"
|
90
90
|
end
|
91
91
|
|
92
92
|
def safely_prepend(module_name, opts = {})
|
93
93
|
return if opts[:to].nil? || opts[:from].nil?
|
94
|
+
|
94
95
|
if opts[:to].respond_to?(:prepend, true)
|
95
96
|
opts[:to].send(:prepend, opts[:from].const_get(module_name))
|
96
97
|
else
|
@@ -100,7 +101,8 @@ module Raven
|
|
100
101
|
|
101
102
|
def sys_command(command)
|
102
103
|
result = `#{command} 2>&1` rescue nil
|
103
|
-
return if result.nil? || result.empty? || $CHILD_STATUS.exitstatus != 0
|
104
|
+
return if result.nil? || result.empty? || ($CHILD_STATUS && $CHILD_STATUS.exitstatus != 0)
|
105
|
+
|
104
106
|
result.strip
|
105
107
|
end
|
106
108
|
end
|
data/lib/raven/breadcrumbs.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
module Raven
|
2
2
|
module ActiveSupportBreadcrumbs
|
3
3
|
class << self
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
end
|
4
|
+
def add(name, started, _finished, _unique_id, data)
|
5
|
+
Raven.breadcrumbs.record do |crumb|
|
6
|
+
crumb.data = data
|
7
|
+
crumb.category = name
|
8
|
+
crumb.timestamp = started.to_i
|
10
9
|
end
|
10
|
+
end
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
12
|
+
def inject
|
13
|
+
ActiveSupport::Notifications.subscribe(/.*/) do |name, started, finished, unique_id, data|
|
14
|
+
add(name, started, finished, unique_id, data)
|
16
15
|
end
|
16
|
+
end
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|