sentry-raven 3.1.1 → 3.1.2

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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/.craft.yml +9 -5
  3. data/.scripts/bump-version.rb +5 -0
  4. data/CHANGELOG.md +11 -0
  5. data/Gemfile +5 -1
  6. data/Makefile +3 -0
  7. data/README.md +19 -7
  8. data/lib/raven/base.rb +1 -0
  9. data/lib/raven/configuration.rb +0 -1
  10. data/lib/raven/event.rb +5 -1
  11. data/lib/raven/instance.rb +7 -1
  12. data/lib/raven/integrations/delayed_job.rb +1 -1
  13. data/lib/raven/integrations/rack.rb +2 -14
  14. data/lib/raven/transports/http.rb +2 -1
  15. data/lib/raven/utils/request_id.rb +16 -0
  16. data/lib/raven/version.rb +1 -1
  17. data/sentry-raven.gemspec +7 -0
  18. metadata +10 -148
  19. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  20. data/.github/pull_request_template.md +0 -16
  21. data/.github/workflows/test.yml +0 -92
  22. data/.github/workflows/zeus_upload.yml +0 -32
  23. data/.gitignore +0 -16
  24. data/.gitmodules +0 -0
  25. data/.rspec +0 -1
  26. data/.rubocop.yml +0 -112
  27. data/.scripts/bump-version.sh +0 -9
  28. data/CONTRIBUTING.md +0 -71
  29. data/sentry-ruby/.gitignore +0 -11
  30. data/sentry-ruby/.rspec +0 -3
  31. data/sentry-ruby/.travis.yml +0 -6
  32. data/sentry-ruby/CODE_OF_CONDUCT.md +0 -74
  33. data/sentry-ruby/Gemfile +0 -9
  34. data/sentry-ruby/LICENSE.txt +0 -21
  35. data/sentry-ruby/README.md +0 -44
  36. data/sentry-ruby/Rakefile +0 -6
  37. data/sentry-ruby/bin/console +0 -14
  38. data/sentry-ruby/bin/setup +0 -8
  39. data/sentry-ruby/examples/rails-6.0/.browserslistrc +0 -1
  40. data/sentry-ruby/examples/rails-6.0/.gitignore +0 -35
  41. data/sentry-ruby/examples/rails-6.0/Gemfile +0 -58
  42. data/sentry-ruby/examples/rails-6.0/README.md +0 -23
  43. data/sentry-ruby/examples/rails-6.0/Rakefile +0 -6
  44. data/sentry-ruby/examples/rails-6.0/app/assets/config/manifest.js +0 -2
  45. data/sentry-ruby/examples/rails-6.0/app/assets/images/.keep +0 -0
  46. data/sentry-ruby/examples/rails-6.0/app/assets/stylesheets/application.css +0 -15
  47. data/sentry-ruby/examples/rails-6.0/app/channels/application_cable/channel.rb +0 -4
  48. data/sentry-ruby/examples/rails-6.0/app/channels/application_cable/connection.rb +0 -4
  49. data/sentry-ruby/examples/rails-6.0/app/controllers/application_controller.rb +0 -2
  50. data/sentry-ruby/examples/rails-6.0/app/controllers/concerns/.keep +0 -0
  51. data/sentry-ruby/examples/rails-6.0/app/controllers/welcome_controller.rb +0 -23
  52. data/sentry-ruby/examples/rails-6.0/app/helpers/application_helper.rb +0 -2
  53. data/sentry-ruby/examples/rails-6.0/app/javascript/channels/consumer.js +0 -6
  54. data/sentry-ruby/examples/rails-6.0/app/javascript/channels/index.js +0 -5
  55. data/sentry-ruby/examples/rails-6.0/app/javascript/packs/application.js +0 -17
  56. data/sentry-ruby/examples/rails-6.0/app/jobs/application_job.rb +0 -7
  57. data/sentry-ruby/examples/rails-6.0/app/mailers/application_mailer.rb +0 -4
  58. data/sentry-ruby/examples/rails-6.0/app/models/application_record.rb +0 -3
  59. data/sentry-ruby/examples/rails-6.0/app/models/concerns/.keep +0 -0
  60. data/sentry-ruby/examples/rails-6.0/app/views/layouts/application.html.erb +0 -15
  61. data/sentry-ruby/examples/rails-6.0/app/views/layouts/mailer.html.erb +0 -13
  62. data/sentry-ruby/examples/rails-6.0/app/views/layouts/mailer.text.erb +0 -1
  63. data/sentry-ruby/examples/rails-6.0/app/views/welcome/report_demo.html.erb +0 -22
  64. data/sentry-ruby/examples/rails-6.0/app/views/welcome/view_error.html.erb +0 -1
  65. data/sentry-ruby/examples/rails-6.0/app/workers/error_worker.rb +0 -7
  66. data/sentry-ruby/examples/rails-6.0/babel.config.js +0 -72
  67. data/sentry-ruby/examples/rails-6.0/bin/bundle +0 -114
  68. data/sentry-ruby/examples/rails-6.0/bin/rails +0 -9
  69. data/sentry-ruby/examples/rails-6.0/bin/rake +0 -9
  70. data/sentry-ruby/examples/rails-6.0/bin/setup +0 -36
  71. data/sentry-ruby/examples/rails-6.0/bin/spring +0 -17
  72. data/sentry-ruby/examples/rails-6.0/bin/webpack +0 -18
  73. data/sentry-ruby/examples/rails-6.0/bin/webpack-dev-server +0 -18
  74. data/sentry-ruby/examples/rails-6.0/bin/yarn +0 -11
  75. data/sentry-ruby/examples/rails-6.0/config.ru +0 -5
  76. data/sentry-ruby/examples/rails-6.0/config/application.rb +0 -28
  77. data/sentry-ruby/examples/rails-6.0/config/boot.rb +0 -4
  78. data/sentry-ruby/examples/rails-6.0/config/cable.yml +0 -10
  79. data/sentry-ruby/examples/rails-6.0/config/credentials.yml.enc +0 -1
  80. data/sentry-ruby/examples/rails-6.0/config/database.yml +0 -25
  81. data/sentry-ruby/examples/rails-6.0/config/environment.rb +0 -5
  82. data/sentry-ruby/examples/rails-6.0/config/environments/development.rb +0 -62
  83. data/sentry-ruby/examples/rails-6.0/config/environments/production.rb +0 -112
  84. data/sentry-ruby/examples/rails-6.0/config/environments/test.rb +0 -48
  85. data/sentry-ruby/examples/rails-6.0/config/initializers/application_controller_renderer.rb +0 -8
  86. data/sentry-ruby/examples/rails-6.0/config/initializers/assets.rb +0 -14
  87. data/sentry-ruby/examples/rails-6.0/config/initializers/backtrace_silencers.rb +0 -7
  88. data/sentry-ruby/examples/rails-6.0/config/initializers/content_security_policy.rb +0 -30
  89. data/sentry-ruby/examples/rails-6.0/config/initializers/cookies_serializer.rb +0 -5
  90. data/sentry-ruby/examples/rails-6.0/config/initializers/filter_parameter_logging.rb +0 -4
  91. data/sentry-ruby/examples/rails-6.0/config/initializers/inflections.rb +0 -16
  92. data/sentry-ruby/examples/rails-6.0/config/initializers/mime_types.rb +0 -4
  93. data/sentry-ruby/examples/rails-6.0/config/initializers/wrap_parameters.rb +0 -14
  94. data/sentry-ruby/examples/rails-6.0/config/locales/en.yml +0 -33
  95. data/sentry-ruby/examples/rails-6.0/config/puma.rb +0 -38
  96. data/sentry-ruby/examples/rails-6.0/config/routes.rb +0 -10
  97. data/sentry-ruby/examples/rails-6.0/config/spring.rb +0 -6
  98. data/sentry-ruby/examples/rails-6.0/config/storage.yml +0 -34
  99. data/sentry-ruby/examples/rails-6.0/config/webpack/development.js +0 -5
  100. data/sentry-ruby/examples/rails-6.0/config/webpack/environment.js +0 -3
  101. data/sentry-ruby/examples/rails-6.0/config/webpack/production.js +0 -5
  102. data/sentry-ruby/examples/rails-6.0/config/webpack/test.js +0 -5
  103. data/sentry-ruby/examples/rails-6.0/config/webpacker.yml +0 -96
  104. data/sentry-ruby/examples/rails-6.0/db/seeds.rb +0 -7
  105. data/sentry-ruby/examples/rails-6.0/lib/assets/.keep +0 -0
  106. data/sentry-ruby/examples/rails-6.0/lib/tasks/.keep +0 -0
  107. data/sentry-ruby/examples/rails-6.0/package.json +0 -15
  108. data/sentry-ruby/examples/rails-6.0/postcss.config.js +0 -12
  109. data/sentry-ruby/examples/rails-6.0/public/404.html +0 -67
  110. data/sentry-ruby/examples/rails-6.0/public/422.html +0 -67
  111. data/sentry-ruby/examples/rails-6.0/public/500.html +0 -66
  112. data/sentry-ruby/examples/rails-6.0/public/apple-touch-icon-precomposed.png +0 -0
  113. data/sentry-ruby/examples/rails-6.0/public/apple-touch-icon.png +0 -0
  114. data/sentry-ruby/examples/rails-6.0/public/favicon.ico +0 -0
  115. data/sentry-ruby/examples/rails-6.0/public/robots.txt +0 -1
  116. data/sentry-ruby/examples/rails-6.0/storage/.keep +0 -0
  117. data/sentry-ruby/examples/rails-6.0/test/application_system_test_case.rb +0 -5
  118. data/sentry-ruby/examples/rails-6.0/test/channels/application_cable/connection_test.rb +0 -11
  119. data/sentry-ruby/examples/rails-6.0/test/controllers/.keep +0 -0
  120. data/sentry-ruby/examples/rails-6.0/test/fixtures/.keep +0 -0
  121. data/sentry-ruby/examples/rails-6.0/test/fixtures/files/.keep +0 -0
  122. data/sentry-ruby/examples/rails-6.0/test/helpers/.keep +0 -0
  123. data/sentry-ruby/examples/rails-6.0/test/integration/.keep +0 -0
  124. data/sentry-ruby/examples/rails-6.0/test/mailers/.keep +0 -0
  125. data/sentry-ruby/examples/rails-6.0/test/models/.keep +0 -0
  126. data/sentry-ruby/examples/rails-6.0/test/system/.keep +0 -0
  127. data/sentry-ruby/examples/rails-6.0/test/test_helper.rb +0 -13
  128. data/sentry-ruby/examples/rails-6.0/vendor/.keep +0 -0
  129. data/sentry-ruby/examples/rails-6.0/yarn.lock +0 -7508
  130. data/sentry-ruby/lib/sentry.rb +0 -16
  131. data/sentry-ruby/lib/sentry/backtrace.rb +0 -128
  132. data/sentry-ruby/lib/sentry/client.rb +0 -162
  133. data/sentry-ruby/lib/sentry/client/state.rb +0 -40
  134. data/sentry-ruby/lib/sentry/configuration.rb +0 -533
  135. data/sentry-ruby/lib/sentry/event.rb +0 -209
  136. data/sentry-ruby/lib/sentry/interface.rb +0 -31
  137. data/sentry-ruby/lib/sentry/interfaces/exception.rb +0 -15
  138. data/sentry-ruby/lib/sentry/interfaces/http.rb +0 -16
  139. data/sentry-ruby/lib/sentry/interfaces/message.rb +0 -18
  140. data/sentry-ruby/lib/sentry/interfaces/single_exception.rb +0 -14
  141. data/sentry-ruby/lib/sentry/interfaces/stack_trace.rb +0 -69
  142. data/sentry-ruby/lib/sentry/linecache.rb +0 -44
  143. data/sentry-ruby/lib/sentry/logger.rb +0 -20
  144. data/sentry-ruby/lib/sentry/transports.rb +0 -19
  145. data/sentry-ruby/lib/sentry/transports/dummy.rb +0 -16
  146. data/sentry-ruby/lib/sentry/transports/http.rb +0 -66
  147. data/sentry-ruby/lib/sentry/transports/stdout.rb +0 -20
  148. data/sentry-ruby/lib/sentry/utils/deep_merge.rb +0 -22
  149. data/sentry-ruby/lib/sentry/utils/exception_cause_chain.rb +0 -20
  150. data/sentry-ruby/lib/sentry/version.rb +0 -3
  151. data/sentry-ruby/sentry-ruby.gemspec +0 -26
  152. data/sentry-ruby/spec/sentry/backtrace_spec.rb +0 -38
  153. data/sentry-ruby/spec/sentry/client_spec.rb +0 -443
  154. data/sentry-ruby/spec/sentry/configuration_spec.rb +0 -400
  155. data/sentry-ruby/spec/sentry/event_spec.rb +0 -238
  156. data/sentry-ruby/spec/sentry/interface_spec.rb +0 -38
  157. data/sentry-ruby/spec/sentry/interfaces/stack_trace_spec.rb +0 -11
  158. data/sentry-ruby/spec/sentry/linecache_spec.rb +0 -40
  159. data/sentry-ruby/spec/sentry/transports/http_spec.rb +0 -57
  160. data/sentry-ruby/spec/sentry/transports/stdout_spec.rb +0 -11
  161. data/sentry-ruby/spec/sentry_spec.rb +0 -9
  162. data/sentry-ruby/spec/spec_helper.rb +0 -49
  163. data/sentry-ruby/spec/support/linecache.txt +0 -6
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
- require 'sentry/interface'
3
-
4
- class TestInterface < Sentry::Interface
5
- attr_accessor :some_attr
6
- end
7
-
8
- RSpec.describe Sentry::Interface do
9
- it "should register an interface when a new class is defined" do
10
- expect(Sentry::Interface.registered[:test]).to eq(TestInterface)
11
- end
12
-
13
- it "can be initialized with some attributes" do
14
- interface = TestInterface.new(:some_attr => "test")
15
- expect(interface.some_attr).to eq("test")
16
- end
17
-
18
- it "can initialize with a block" do
19
- interface = TestInterface.new { |int| int.some_attr = "test" }
20
- expect(interface.some_attr).to eq("test")
21
- end
22
-
23
- it "serializes to a Hash" do
24
- interface = TestInterface.new(:some_attr => "test")
25
- expect(interface.to_hash).to eq(:some_attr => "test")
26
- end
27
- end
28
-
29
- RSpec.describe Sentry::MessageInterface do
30
- it "supports invalid format string message when params is not defined" do
31
- interface = Sentry::MessageInterface.new(:params => nil, :message => "test '%'")
32
- expect(interface.unformatted_message).to eq("test '%'")
33
- end
34
- it "supports invalid format string message when params is empty" do
35
- interface = Sentry::MessageInterface.new(:message => "test '%'")
36
- expect(interface.unformatted_message).to eq("test '%'")
37
- end
38
- end
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Sentry::StacktraceInterface::Frame do
4
- it "should convert pathnames to strings" do
5
- frame = Sentry::StacktraceInterface::Frame.new(configuration: Sentry::Configuration.new)
6
- $LOAD_PATH.unshift Pathname.pwd # Oh no, a Pathname in the $LOAD_PATH!
7
- frame.abs_path = __FILE__
8
- expect(frame.filename).to match(/stack_trace_spec.rb/)
9
- $LOAD_PATH.shift
10
- end
11
- end
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
- # rubocop:disable Style/WordArray
3
- RSpec.describe Sentry::LineCache do
4
- describe "#get_file_context" do
5
- it "returns an array of nils if the path is not valid" do
6
- expect(subject.get_file_context("/nonexist", 1, 10)).to eq([nil, nil, nil])
7
- end
8
-
9
- it "returns a variable size depending on context" do
10
- expect(subject.get_file_context("spec/support/linecache.txt", 3, 2)).to eq(
11
- [
12
- ["foo\n", "bar\n"],
13
- "baz\n",
14
- ["qux\n", "lorem\n"]
15
- ]
16
- )
17
- end
18
-
19
- it "returns nil if line doesnt exist" do
20
- expect(subject.get_file_context("spec/support/linecache.txt", 1, 2)).to eq(
21
- [
22
- [nil, nil],
23
- "foo\n",
24
- ["bar\n", "baz\n"]
25
- ]
26
- )
27
- end
28
-
29
- it "returns a different section of the file based on lineno" do
30
- expect(subject.get_file_context("./spec/support/linecache.txt", 4, 2)).to eq(
31
- [
32
- ["bar\n", "baz\n"],
33
- "qux\n",
34
- ["lorem\n", "ipsum\n"]
35
- ]
36
- )
37
- end
38
- end
39
- end
40
- # rubocop:enable Style/WordArray
@@ -1,57 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Sentry::Transports::HTTP do
4
- let(:config) { Sentry::Configuration.new.tap { |c| c.dsn = 'http://12345@sentry.localdomain/sentry/42' } }
5
- let(:client) { Sentry::Client.new(config) }
6
-
7
- it 'should set a custom User-Agent' do
8
- expect(client.send(:transport).conn.headers[:user_agent]).to eq("sentry-ruby/#{Sentry::VERSION}")
9
- end
10
-
11
- it 'should raise an error on 4xx responses' do
12
- stubs = Faraday::Adapter::Test::Stubs.new do |stub|
13
- stub.post('sentry/api/42/store/') { [404, {}, 'not found'] }
14
- end
15
- client.configuration.http_adapter = [:test, stubs]
16
-
17
- event = JSON.generate(Sentry.capture_message("test").to_hash)
18
- expect { client.send(:transport).send_event("test", event) }.to raise_error(Sentry::Error, /the server responded with status 404/)
19
-
20
- stubs.verify_stubbed_calls
21
- end
22
-
23
- it 'should raise an error on 5xx responses' do
24
- stubs = Faraday::Adapter::Test::Stubs.new do |stub|
25
- stub.post('sentry/api/42/store/') { [500, {}, 'error'] }
26
- end
27
- client.configuration.http_adapter = [:test, stubs]
28
-
29
- event = JSON.generate(Sentry.capture_message("test").to_hash)
30
- expect { client.send(:transport).send_event("test", event) }.to raise_error(Sentry::Error, /the server responded with status 500/)
31
-
32
- stubs.verify_stubbed_calls
33
- end
34
-
35
- it 'should add header info message to the error' do
36
- stubs = Faraday::Adapter::Test::Stubs.new do |stub|
37
- stub.post('sentry/api/42/store/') { [400, { 'x-sentry-error' => 'error_in_header' }, 'error'] }
38
- end
39
- client.configuration.http_adapter = [:test, stubs]
40
-
41
- event = JSON.generate(Sentry.capture_message("test").to_hash)
42
- expect { client.send(:transport).send_event("test", event) }.to raise_error(Sentry::Error, /error_in_header/)
43
-
44
- stubs.verify_stubbed_calls
45
- end
46
-
47
- it 'allows to customise faraday' do
48
- builder = spy('faraday_builder')
49
- expect(Faraday).to receive(:new).and_yield(builder)
50
-
51
- client.configuration.faraday_builder = proc { |b| b.request :instrumentation }
52
-
53
- client.send(:transport)
54
-
55
- expect(builder).to have_received(:request).with(:instrumentation)
56
- end
57
- end
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe Sentry::Transports::Stdout do
4
- let(:config) { Sentry::Configuration.new.tap { |c| c.dsn = 'stdout://12345:67890@sentry.localdomain/sentry/42' } }
5
- let(:client) { Sentry::Client.new(config) }
6
-
7
- it 'should write to stdout' do
8
- event = JSON.generate(Sentry.capture_message("this is an STDOUT transport test").to_hash)
9
- expect { client.send(:transport).send_event("stdout test", event) }.to output(/\"message\":\"this is an STDOUT transport test\"/).to_stdout
10
- end
11
- end
@@ -1,9 +0,0 @@
1
- RSpec.describe Sentry do
2
- it "has a version number" do
3
- expect(Sentry::VERSION).not_to be nil
4
- end
5
-
6
- it "does something useful" do
7
- expect(false).to eq(true)
8
- end
9
- end
@@ -1,49 +0,0 @@
1
- require "bundler/setup"
2
- require "pry"
3
- require "sentry"
4
-
5
- RSpec.configure do |config|
6
- # Enable flags like --only-failures and --next-failure
7
- config.example_status_persistence_file_path = ".rspec_status"
8
-
9
- # Disable RSpec exposing methods globally on `Module` and `main`
10
- config.disable_monkey_patching!
11
-
12
- config.expect_with :rspec do |c|
13
- c.syntax = :expect
14
- end
15
- end
16
-
17
- def build_exception_with_cause(cause = "exception a")
18
- begin
19
- raise cause
20
- rescue
21
- raise "exception b"
22
- end
23
- rescue RuntimeError => e
24
- e
25
- end
26
-
27
- def build_exception_with_two_causes
28
- begin
29
- begin
30
- raise "exception a"
31
- rescue
32
- raise "exception b"
33
- end
34
- rescue
35
- raise "exception c"
36
- end
37
- rescue RuntimeError => e
38
- e
39
- end
40
-
41
- def build_exception_with_recursive_cause
42
- backtrace = []
43
-
44
- exception = double("Exception")
45
- allow(exception).to receive(:cause).and_return(exception)
46
- allow(exception).to receive(:message).and_return("example")
47
- allow(exception).to receive(:backtrace).and_return(backtrace)
48
- exception
49
- end
@@ -1,6 +0,0 @@
1
- foo
2
- bar
3
- baz
4
- qux
5
- lorem
6
- ipsum