sentry-raven 3.1.0 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +6 -0
  4. data/lib/raven/configuration.rb +10 -0
  5. data/lib/raven/instance.rb +5 -0
  6. data/lib/raven/integrations/delayed_job.rb +2 -1
  7. data/lib/raven/integrations/rack.rb +15 -2
  8. data/lib/raven/integrations/sidekiq/error_handler.rb +2 -2
  9. data/lib/raven/transports/http.rb +0 -2
  10. data/lib/raven/{integrations/sidekiq → utils}/context_filter.rb +3 -3
  11. data/lib/raven/version.rb +1 -1
  12. data/sentry-ruby/.gitignore +11 -0
  13. data/sentry-ruby/.rspec +3 -0
  14. data/sentry-ruby/.travis.yml +6 -0
  15. data/sentry-ruby/CODE_OF_CONDUCT.md +74 -0
  16. data/sentry-ruby/Gemfile +9 -0
  17. data/sentry-ruby/LICENSE.txt +21 -0
  18. data/sentry-ruby/README.md +44 -0
  19. data/sentry-ruby/Rakefile +6 -0
  20. data/sentry-ruby/bin/console +14 -0
  21. data/sentry-ruby/bin/setup +8 -0
  22. data/sentry-ruby/examples/rails-6.0/.browserslistrc +1 -0
  23. data/sentry-ruby/examples/rails-6.0/.gitignore +35 -0
  24. data/sentry-ruby/examples/rails-6.0/Gemfile +58 -0
  25. data/sentry-ruby/examples/rails-6.0/README.md +23 -0
  26. data/sentry-ruby/examples/rails-6.0/Rakefile +6 -0
  27. data/sentry-ruby/examples/rails-6.0/app/assets/config/manifest.js +2 -0
  28. data/sentry-ruby/examples/rails-6.0/app/assets/images/.keep +0 -0
  29. data/sentry-ruby/examples/rails-6.0/app/assets/stylesheets/application.css +15 -0
  30. data/sentry-ruby/examples/rails-6.0/app/channels/application_cable/channel.rb +4 -0
  31. data/sentry-ruby/examples/rails-6.0/app/channels/application_cable/connection.rb +4 -0
  32. data/sentry-ruby/examples/rails-6.0/app/controllers/application_controller.rb +2 -0
  33. data/sentry-ruby/examples/rails-6.0/app/controllers/concerns/.keep +0 -0
  34. data/sentry-ruby/examples/rails-6.0/app/controllers/welcome_controller.rb +23 -0
  35. data/sentry-ruby/examples/rails-6.0/app/helpers/application_helper.rb +2 -0
  36. data/sentry-ruby/examples/rails-6.0/app/javascript/channels/consumer.js +6 -0
  37. data/sentry-ruby/examples/rails-6.0/app/javascript/channels/index.js +5 -0
  38. data/sentry-ruby/examples/rails-6.0/app/javascript/packs/application.js +17 -0
  39. data/sentry-ruby/examples/rails-6.0/app/jobs/application_job.rb +7 -0
  40. data/sentry-ruby/examples/rails-6.0/app/mailers/application_mailer.rb +4 -0
  41. data/sentry-ruby/examples/rails-6.0/app/models/application_record.rb +3 -0
  42. data/sentry-ruby/examples/rails-6.0/app/models/concerns/.keep +0 -0
  43. data/sentry-ruby/examples/rails-6.0/app/views/layouts/application.html.erb +15 -0
  44. data/sentry-ruby/examples/rails-6.0/app/views/layouts/mailer.html.erb +13 -0
  45. data/sentry-ruby/examples/rails-6.0/app/views/layouts/mailer.text.erb +1 -0
  46. data/sentry-ruby/examples/rails-6.0/app/views/welcome/report_demo.html.erb +22 -0
  47. data/sentry-ruby/examples/rails-6.0/app/views/welcome/view_error.html.erb +1 -0
  48. data/sentry-ruby/examples/rails-6.0/app/workers/error_worker.rb +7 -0
  49. data/sentry-ruby/examples/rails-6.0/babel.config.js +72 -0
  50. data/sentry-ruby/examples/rails-6.0/bin/bundle +114 -0
  51. data/sentry-ruby/examples/rails-6.0/bin/rails +9 -0
  52. data/sentry-ruby/examples/rails-6.0/bin/rake +9 -0
  53. data/sentry-ruby/examples/rails-6.0/bin/setup +36 -0
  54. data/sentry-ruby/examples/rails-6.0/bin/spring +17 -0
  55. data/sentry-ruby/examples/rails-6.0/bin/webpack +18 -0
  56. data/sentry-ruby/examples/rails-6.0/bin/webpack-dev-server +18 -0
  57. data/sentry-ruby/examples/rails-6.0/bin/yarn +11 -0
  58. data/sentry-ruby/examples/rails-6.0/config.ru +5 -0
  59. data/sentry-ruby/examples/rails-6.0/config/application.rb +28 -0
  60. data/sentry-ruby/examples/rails-6.0/config/boot.rb +4 -0
  61. data/sentry-ruby/examples/rails-6.0/config/cable.yml +10 -0
  62. data/sentry-ruby/examples/rails-6.0/config/credentials.yml.enc +1 -0
  63. data/sentry-ruby/examples/rails-6.0/config/database.yml +25 -0
  64. data/sentry-ruby/examples/rails-6.0/config/environment.rb +5 -0
  65. data/sentry-ruby/examples/rails-6.0/config/environments/development.rb +62 -0
  66. data/sentry-ruby/examples/rails-6.0/config/environments/production.rb +112 -0
  67. data/sentry-ruby/examples/rails-6.0/config/environments/test.rb +48 -0
  68. data/sentry-ruby/examples/rails-6.0/config/initializers/application_controller_renderer.rb +8 -0
  69. data/sentry-ruby/examples/rails-6.0/config/initializers/assets.rb +14 -0
  70. data/sentry-ruby/examples/rails-6.0/config/initializers/backtrace_silencers.rb +7 -0
  71. data/sentry-ruby/examples/rails-6.0/config/initializers/content_security_policy.rb +30 -0
  72. data/sentry-ruby/examples/rails-6.0/config/initializers/cookies_serializer.rb +5 -0
  73. data/sentry-ruby/examples/rails-6.0/config/initializers/filter_parameter_logging.rb +4 -0
  74. data/sentry-ruby/examples/rails-6.0/config/initializers/inflections.rb +16 -0
  75. data/sentry-ruby/examples/rails-6.0/config/initializers/mime_types.rb +4 -0
  76. data/sentry-ruby/examples/rails-6.0/config/initializers/wrap_parameters.rb +14 -0
  77. data/sentry-ruby/examples/rails-6.0/config/locales/en.yml +33 -0
  78. data/sentry-ruby/examples/rails-6.0/config/puma.rb +38 -0
  79. data/sentry-ruby/examples/rails-6.0/config/routes.rb +10 -0
  80. data/sentry-ruby/examples/rails-6.0/config/spring.rb +6 -0
  81. data/sentry-ruby/examples/rails-6.0/config/storage.yml +34 -0
  82. data/sentry-ruby/examples/rails-6.0/config/webpack/development.js +5 -0
  83. data/sentry-ruby/examples/rails-6.0/config/webpack/environment.js +3 -0
  84. data/sentry-ruby/examples/rails-6.0/config/webpack/production.js +5 -0
  85. data/sentry-ruby/examples/rails-6.0/config/webpack/test.js +5 -0
  86. data/sentry-ruby/examples/rails-6.0/config/webpacker.yml +96 -0
  87. data/sentry-ruby/examples/rails-6.0/db/seeds.rb +7 -0
  88. data/sentry-ruby/examples/rails-6.0/lib/assets/.keep +0 -0
  89. data/sentry-ruby/examples/rails-6.0/lib/tasks/.keep +0 -0
  90. data/sentry-ruby/examples/rails-6.0/package.json +15 -0
  91. data/sentry-ruby/examples/rails-6.0/postcss.config.js +12 -0
  92. data/sentry-ruby/examples/rails-6.0/public/404.html +67 -0
  93. data/sentry-ruby/examples/rails-6.0/public/422.html +67 -0
  94. data/sentry-ruby/examples/rails-6.0/public/500.html +66 -0
  95. data/sentry-ruby/examples/rails-6.0/public/apple-touch-icon-precomposed.png +0 -0
  96. data/sentry-ruby/examples/rails-6.0/public/apple-touch-icon.png +0 -0
  97. data/sentry-ruby/examples/rails-6.0/public/favicon.ico +0 -0
  98. data/sentry-ruby/examples/rails-6.0/public/robots.txt +1 -0
  99. data/sentry-ruby/examples/rails-6.0/storage/.keep +0 -0
  100. data/sentry-ruby/examples/rails-6.0/test/application_system_test_case.rb +5 -0
  101. data/sentry-ruby/examples/rails-6.0/test/channels/application_cable/connection_test.rb +11 -0
  102. data/sentry-ruby/examples/rails-6.0/test/controllers/.keep +0 -0
  103. data/sentry-ruby/examples/rails-6.0/test/fixtures/.keep +0 -0
  104. data/sentry-ruby/examples/rails-6.0/test/fixtures/files/.keep +0 -0
  105. data/sentry-ruby/examples/rails-6.0/test/helpers/.keep +0 -0
  106. data/sentry-ruby/examples/rails-6.0/test/integration/.keep +0 -0
  107. data/sentry-ruby/examples/rails-6.0/test/mailers/.keep +0 -0
  108. data/sentry-ruby/examples/rails-6.0/test/models/.keep +0 -0
  109. data/sentry-ruby/examples/rails-6.0/test/system/.keep +0 -0
  110. data/sentry-ruby/examples/rails-6.0/test/test_helper.rb +13 -0
  111. data/sentry-ruby/examples/rails-6.0/vendor/.keep +0 -0
  112. data/sentry-ruby/examples/rails-6.0/yarn.lock +7508 -0
  113. data/sentry-ruby/lib/sentry.rb +16 -0
  114. data/sentry-ruby/lib/sentry/backtrace.rb +128 -0
  115. data/sentry-ruby/lib/sentry/client.rb +162 -0
  116. data/sentry-ruby/lib/sentry/client/state.rb +40 -0
  117. data/sentry-ruby/lib/sentry/configuration.rb +533 -0
  118. data/sentry-ruby/lib/sentry/event.rb +209 -0
  119. data/sentry-ruby/lib/sentry/interface.rb +31 -0
  120. data/sentry-ruby/lib/sentry/interfaces/exception.rb +15 -0
  121. data/sentry-ruby/lib/sentry/interfaces/http.rb +16 -0
  122. data/sentry-ruby/lib/sentry/interfaces/message.rb +18 -0
  123. data/sentry-ruby/lib/sentry/interfaces/single_exception.rb +14 -0
  124. data/sentry-ruby/lib/sentry/interfaces/stack_trace.rb +69 -0
  125. data/sentry-ruby/lib/sentry/linecache.rb +44 -0
  126. data/sentry-ruby/lib/sentry/logger.rb +20 -0
  127. data/sentry-ruby/lib/sentry/transports.rb +19 -0
  128. data/sentry-ruby/lib/sentry/transports/dummy.rb +16 -0
  129. data/sentry-ruby/lib/sentry/transports/http.rb +66 -0
  130. data/sentry-ruby/lib/sentry/transports/stdout.rb +20 -0
  131. data/sentry-ruby/lib/sentry/utils/deep_merge.rb +22 -0
  132. data/sentry-ruby/lib/sentry/utils/exception_cause_chain.rb +20 -0
  133. data/sentry-ruby/lib/sentry/version.rb +3 -0
  134. data/sentry-ruby/sentry-ruby.gemspec +26 -0
  135. data/sentry-ruby/spec/sentry/backtrace_spec.rb +38 -0
  136. data/sentry-ruby/spec/sentry/client_spec.rb +443 -0
  137. data/sentry-ruby/spec/sentry/configuration_spec.rb +400 -0
  138. data/sentry-ruby/spec/sentry/event_spec.rb +238 -0
  139. data/sentry-ruby/spec/sentry/interface_spec.rb +38 -0
  140. data/sentry-ruby/spec/sentry/interfaces/stack_trace_spec.rb +11 -0
  141. data/sentry-ruby/spec/sentry/linecache_spec.rb +40 -0
  142. data/sentry-ruby/spec/sentry/transports/http_spec.rb +57 -0
  143. data/sentry-ruby/spec/sentry/transports/stdout_spec.rb +11 -0
  144. data/sentry-ruby/spec/sentry_spec.rb +9 -0
  145. data/sentry-ruby/spec/spec_helper.rb +49 -0
  146. data/sentry-ruby/spec/support/linecache.txt +6 -0
  147. metadata +138 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41350227e78833d91c3cbff3192b09d7bf3cec1b8560aeabf815ec5f6fcac156
4
- data.tar.gz: a40cf7486907f4069c719584c63dcf36a34587702bcfee8a25e0ab5816cdf72f
3
+ metadata.gz: 9409fd1db13a8eec36f00e801c3391b84739dc6166123e5397494b85766149ec
4
+ data.tar.gz: 3a9eb01cfdf1922ec4e8b1a5553a31d224a7df39fc6a37ddbed9277e4b3d72ab
5
5
  SHA512:
6
- metadata.gz: 7d0c868e31eb523845681398cb7579022dc6635bf3cc2982ae55cd83f5b0eaf414988b9a7ba6f728d96c43518fd27895fd98a3e0960577c1f06e4bb333be3339
7
- data.tar.gz: a9d232ad2858a142d01d52eaa854ca1daa9c7844353487ac2be6c97b9715e41c3c807d93fdd5662e44e5bf0443dffbeb67e0d1ad39d3563e4cf088e433b7be6c
6
+ metadata.gz: 46c863f1960b12c97a03a91edda72dd4ec16d04da2e6890a80bd736b092b11e44e74822c6497219883f7ed1c5c135e7b789b36da299fcba389f2accdefb83b97
7
+ data.tar.gz: 560dad6f93a0fbd345100b4c4de7e578dedb874a8fab63a8168f629b53d13938276cf4f10db6e2dd357ffc8fa04dc91a87dac6185bcd7e5e3585bbf98ef09e5c
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.1.1
4
+
5
+ **Feature**
6
+
7
+ - Add request id to headers if exists ([#1033](https://github.com/getsentry/sentry-ruby/pull/1033))
8
+
9
+ - Allow blocks on user_context ([#1023](https://github.com/getsentry/sentry-ruby/pull/1023))
10
+
11
+ - Enable configurable rack environment recorded parameters ([#860](https://github.com/getsentry/sentry-ruby/pull/860))
12
+
13
+ - Remove ActiveJob keys for both Sidekiq and DelayedJob ([#898](https://github.com/getsentry/sentry-ruby/pull/898))
14
+
15
+ **Fix**
16
+
17
+ - Remove circular dependency in transport/http.rb ([#1035](https://github.com/getsentry/sentry-ruby/pull/1035))
18
+
3
19
  ## 3.1.0
4
20
 
5
21
  **Feature**
data/README.md CHANGED
@@ -7,6 +7,11 @@
7
7
 
8
8
  # Raven-Ruby, the Ruby Client for Sentry
9
9
 
10
+ ### 🚧 We're restructuring this SDK for the [version 4.0](https://github.com/getsentry/raven-ruby/issues/1029) 🚧
11
+
12
+ ---
13
+
14
+
10
15
  [![Gem Version](https://img.shields.io/gem/v/sentry-raven.svg)](https://rubygems.org/gems/sentry-raven)
11
16
  ![Build Status](https://github.com/getsentry/raven-ruby/workflows/Test/badge.svg)
12
17
  [![Coverage Status](https://img.shields.io/codecov/c/github/getsentry/raven-ruby/master?logo=codecov)](https://codecov.io/gh/getsentry/raven-ruby/branch/master)
@@ -18,6 +23,7 @@
18
23
 
19
24
  The official Ruby-language client and integration layer for the [Sentry](https://github.com/getsentry/sentry) error reporting API.
20
25
 
26
+
21
27
  ## Requirements
22
28
 
23
29
  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.
@@ -193,6 +193,9 @@ module Raven
193
193
  # the dsn value, whether it's set via `config.dsn=` or `ENV["SENTRY_DSN"]`
194
194
  attr_reader :dsn
195
195
 
196
+ # Array of rack env parameters to be included in the event sent to sentry.
197
+ attr_accessor :rack_env_whitelist
198
+
196
199
  # Most of these errors generate 4XX responses. In general, Sentry clients
197
200
  # only automatically report 5xx responses.
198
201
  IGNORE_DEFAULT = [
@@ -232,6 +235,12 @@ module Raven
232
235
  HEROKU_DYNO_METADATA_MESSAGE = "You are running on Heroku but haven't enabled Dyno Metadata. For Sentry's "\
233
236
  "release detection to work correctly, please run `heroku labs:enable runtime-dyno-metadata`".freeze
234
237
 
238
+ RACK_ENV_WHITELIST_DEFAULT = %w(
239
+ REMOTE_ADDR
240
+ SERVER_NAME
241
+ SERVER_PORT
242
+ ).freeze
243
+
235
244
  LOG_PREFIX = "** [Raven] ".freeze
236
245
  MODULE_SEPARATOR = "::".freeze
237
246
 
@@ -270,6 +279,7 @@ module Raven
270
279
  self.timeout = 2
271
280
  self.transport_failure_callback = false
272
281
  self.before_send = false
282
+ self.rack_env_whitelist = RACK_ENV_WHITELIST_DEFAULT
273
283
  end
274
284
 
275
285
  def server=(value)
@@ -176,7 +176,12 @@ module Raven
176
176
  # @example
177
177
  # Raven.user_context('id' => 1, 'email' => 'foo@example.com')
178
178
  def user_context(options = nil)
179
+ original_user_context = context.user
179
180
  context.user = options || {}
181
+ yield if block_given?
182
+ context.user
183
+ ensure
184
+ context.user = original_user_context if block_given?
180
185
  end
181
186
 
182
187
  # Bind tags context. Merges with existing context (if any).
@@ -1,4 +1,5 @@
1
1
  require 'delayed_job'
2
+ require 'raven/utils/context_filter'
2
3
 
3
4
  module Delayed
4
5
  module Plugins
@@ -29,7 +30,7 @@ module Delayed
29
30
  extra[:handler] = job.handler[0...1000] if job.handler
30
31
 
31
32
  if job.respond_to?('payload_object') && job.payload_object.respond_to?('job_data')
32
- extra[:active_job] = job.payload_object.job_data
33
+ extra[:active_job] = Utils::ContextFilter.filter_context(job.payload_object.job_data)
33
34
  end
34
35
  ::Raven.capture_exception(e,
35
36
  :logger => 'delayed_job',
@@ -67,6 +67,8 @@ module Raven
67
67
  end
68
68
 
69
69
  module RackInterface
70
+ REQUEST_ID_HEADERS = %w(action_dispatch.request_id HTTP_X_REQUEST_ID).freeze
71
+
70
72
  def from_rack(env_hash)
71
73
  req = ::Rack::Request.new(env_hash)
72
74
 
@@ -82,6 +84,15 @@ module Raven
82
84
 
83
85
  private
84
86
 
87
+ # Request ID based on ActionDispatch::RequestId
88
+ def read_request_id_from(env_hash)
89
+ REQUEST_ID_HEADERS.each do |key|
90
+ request_id = env_hash[key]
91
+ return request_id if request_id
92
+ end
93
+ nil
94
+ end
95
+
85
96
  # See Sentry server default limits at
86
97
  # https://github.com/getsentry/sentry/blob/master/src/sentry/conf/server.py
87
98
  def read_data_from(request)
@@ -101,6 +112,7 @@ module Raven
101
112
  begin
102
113
  key = key.to_s # rack env can contain symbols
103
114
  value = value.to_s
115
+ next memo['X-Request-Id'] ||= read_request_id_from(env_hash) if REQUEST_ID_HEADERS.include?(key)
104
116
  next unless key.upcase == key # Non-upper case stuff isn't either
105
117
 
106
118
  # Rack adds in an incorrect HTTP_VERSION key, which causes downstream
@@ -110,7 +122,6 @@ module Raven
110
122
  # See: https://github.com/rack/rack/blob/028438f/lib/rack/handler/cgi.rb#L29
111
123
  next if key == 'HTTP_VERSION' && value == env_hash['SERVER_PROTOCOL']
112
124
  next if key == 'HTTP_COOKIE' # Cookies don't go here, they go somewhere else
113
-
114
125
  next unless key.start_with?('HTTP_') || %w(CONTENT_TYPE CONTENT_LENGTH).include?(key)
115
126
 
116
127
  # Rack stores headers as HTTP_WHAT_EVER, we need What-Ever
@@ -128,8 +139,10 @@ module Raven
128
139
  end
129
140
 
130
141
  def format_env_for_sentry(env_hash)
142
+ return env_hash if Raven.configuration.rack_env_whitelist.empty?
143
+
131
144
  env_hash.select do |k, _v|
132
- %w(REMOTE_ADDR SERVER_NAME SERVER_PORT).include? k.to_s
145
+ Raven.configuration.rack_env_whitelist.include? k.to_s
133
146
  end
134
147
  end
135
148
  end
@@ -1,4 +1,4 @@
1
- require 'raven/integrations/sidekiq/context_filter'
1
+ require 'raven/utils/context_filter'
2
2
 
3
3
  module Raven
4
4
  module Sidekiq
@@ -6,7 +6,7 @@ module Raven
6
6
  SIDEKIQ_NAME = "Sidekiq".freeze
7
7
 
8
8
  def call(ex, context)
9
- context = ContextFilter.filter_context(context)
9
+ context = Utils::ContextFilter.filter_context(context)
10
10
  Raven.context.transaction.push transaction_from_context(context)
11
11
  Raven.capture_exception(
12
12
  ex,
@@ -1,7 +1,5 @@
1
1
  require 'faraday'
2
2
 
3
- require 'raven/transports'
4
-
5
3
  module Raven
6
4
  module Transports
7
5
  class HTTP < Transport
@@ -1,8 +1,8 @@
1
1
  module Raven
2
- module Sidekiq
2
+ module Utils
3
3
  module ContextFilter
4
4
  class << self
5
- ACTIVEJOB_RESERVED_PREFIX = "_aj_".freeze
5
+ ACTIVEJOB_RESERVED_PREFIX_REGEX = /^_aj_/.freeze
6
6
  HAS_GLOBALID = const_defined?('GlobalID')
7
7
 
8
8
  # Once an ActiveJob is queued, ActiveRecord references get serialized into
@@ -25,7 +25,7 @@ module Raven
25
25
  private
26
26
 
27
27
  def filter_context_hash(key, value)
28
- (key = key[3..-1]) if key [0..3] == ACTIVEJOB_RESERVED_PREFIX
28
+ key = key.to_s.sub(ACTIVEJOB_RESERVED_PREFIX_REGEX, "") if key.match(ACTIVEJOB_RESERVED_PREFIX_REGEX)
29
29
  [key, filter_context(value)]
30
30
  end
31
31
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Raven
4
- VERSION = "3.1.0"
4
+ VERSION = "3.1.1"
5
5
  end
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,6 @@
1
+ ---
2
+ language: ruby
3
+ cache: bundler
4
+ rvm:
5
+ - 2.6.5
6
+ before_install: gem install bundler -v 2.1.1
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at stan001212@gmail.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [https://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: https://contributor-covenant.org
74
+ [version]: https://contributor-covenant.org/version/1/4/
@@ -0,0 +1,9 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in sentry-ruby.gemspec
4
+ gemspec
5
+
6
+ gem "rake", "~> 12.0"
7
+ gem "rspec", "~> 3.0"
8
+
9
+ gem "pry"
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2020 st0012
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,44 @@
1
+ # Sentry::Ruby
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/sentry/ruby`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'sentry-ruby'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle install
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install sentry-ruby
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/sentry-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/sentry-ruby/blob/master/CODE_OF_CONDUCT.md).
36
+
37
+
38
+ ## License
39
+
40
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
41
+
42
+ ## Code of Conduct
43
+
44
+ Everyone interacting in the Sentry::Ruby project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/sentry-ruby/blob/master/CODE_OF_CONDUCT.md).
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "sentry/ruby"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,35 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+ /db/*.sqlite3-journal
13
+
14
+ # Ignore all logfiles and tempfiles.
15
+ /log/*
16
+ /tmp/*
17
+ !/log/.keep
18
+ !/tmp/.keep
19
+
20
+ # Ignore uploaded files in development.
21
+ /storage/*
22
+ !/storage/.keep
23
+
24
+ /public/assets
25
+ .byebug_history
26
+
27
+ # Ignore master key for decrypting credentials and more.
28
+ /config/master.key
29
+
30
+ /public/packs
31
+ /public/packs-test
32
+ /node_modules
33
+ /yarn-error.log
34
+ yarn-debug.log*
35
+ .yarn-integrity