hawk-ruby 0.1.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 +7 -0
- data/CHANGELOG.md +10 -0
- data/LICENSE +21 -0
- data/README.md +104 -0
- data/docs/configuration.md +160 -0
- data/docs/integrations.md +149 -0
- data/docs/releasing.md +23 -0
- data/docs/verification.md +85 -0
- data/lib/hawk/boundary.rb +26 -0
- data/lib/hawk/breadcrumbs/logger.rb +64 -0
- data/lib/hawk/breadcrumbs/net_http.rb +63 -0
- data/lib/hawk/breadcrumbs/rails.rb +24 -0
- data/lib/hawk/breadcrumbs.rb +92 -0
- data/lib/hawk/client.rb +175 -0
- data/lib/hawk/configuration.rb +138 -0
- data/lib/hawk/delayed_job.rb +61 -0
- data/lib/hawk/delivery.rb +113 -0
- data/lib/hawk/diagnostics.rb +53 -0
- data/lib/hawk/event.rb +136 -0
- data/lib/hawk/filter.rb +36 -0
- data/lib/hawk/filtered_fields.rb +56 -0
- data/lib/hawk/framework_filter.rb +16 -0
- data/lib/hawk/hook.rb +12 -0
- data/lib/hawk/job_context.rb +89 -0
- data/lib/hawk/json_value.rb +77 -0
- data/lib/hawk/process_hooks.rb +24 -0
- data/lib/hawk/rack/body.rb +76 -0
- data/lib/hawk/rack.rb +71 -0
- data/lib/hawk/rails/action_cable.rb +79 -0
- data/lib/hawk/rails/active_job.rb +74 -0
- data/lib/hawk/rails/error_subscriber.rb +38 -0
- data/lib/hawk/rails/integration.rb +51 -0
- data/lib/hawk/rails/payload_filter.rb +34 -0
- data/lib/hawk/rails.rb +5 -0
- data/lib/hawk/rake.rb +29 -0
- data/lib/hawk/release.rb +31 -0
- data/lib/hawk/resque.rb +77 -0
- data/lib/hawk/scope.rb +108 -0
- data/lib/hawk/scope_store.rb +55 -0
- data/lib/hawk/sidekiq.rb +80 -0
- data/lib/hawk/source.rb +83 -0
- data/lib/hawk/token.rb +53 -0
- data/lib/hawk/transport.rb +111 -0
- data/lib/hawk/version.rb +5 -0
- data/lib/hawk.rb +85 -0
- data/sig/hawk/boundary.rbs +7 -0
- data/sig/hawk/breadcrumbs/logger.rbs +17 -0
- data/sig/hawk/breadcrumbs/net_http.rbs +16 -0
- data/sig/hawk/breadcrumbs/rails.rbs +7 -0
- data/sig/hawk/breadcrumbs.rbs +13 -0
- data/sig/hawk/client.rbs +41 -0
- data/sig/hawk/configuration.rbs +61 -0
- data/sig/hawk/delayed_job.rbs +24 -0
- data/sig/hawk/delivery.rbs +27 -0
- data/sig/hawk/diagnostics.rbs +24 -0
- data/sig/hawk/event.rbs +24 -0
- data/sig/hawk/filter.rbs +13 -0
- data/sig/hawk/filtered_fields.rbs +11 -0
- data/sig/hawk/framework_filter.rbs +5 -0
- data/sig/hawk/hook.rbs +5 -0
- data/sig/hawk/job_context.rbs +15 -0
- data/sig/hawk/json_value.rbs +17 -0
- data/sig/hawk/process_hooks.rbs +7 -0
- data/sig/hawk/rack.rbs +74 -0
- data/sig/hawk/rails/action_cable.rbs +40 -0
- data/sig/hawk/rails/active_job.rbs +34 -0
- data/sig/hawk/rails/error_subscriber.rbs +9 -0
- data/sig/hawk/rails/payload_filter.rbs +16 -0
- data/sig/hawk/rails.rbs +26 -0
- data/sig/hawk/rake.rbs +13 -0
- data/sig/hawk/release.rbs +6 -0
- data/sig/hawk/resque.rbs +25 -0
- data/sig/hawk/scope.rbs +31 -0
- data/sig/hawk/scope_store.rbs +15 -0
- data/sig/hawk/sidekiq.rbs +29 -0
- data/sig/hawk/source.rbs +18 -0
- data/sig/hawk/token.rbs +14 -0
- data/sig/hawk/transport.rbs +32 -0
- data/sig/hawk.rbs +16 -0
- metadata +223 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
class JSONValue
|
|
3
|
+
@seen: Hash[Object, bool]
|
|
4
|
+
@remaining: Integer
|
|
5
|
+
def self.normalize: (top) -> json
|
|
6
|
+
def self.object: (top) -> payload
|
|
7
|
+
def initialize: () -> void
|
|
8
|
+
def visit: (top, Integer) -> json
|
|
9
|
+
|
|
10
|
+
private
|
|
11
|
+
|
|
12
|
+
def scalar: (top) -> json
|
|
13
|
+
def text: (String) -> String
|
|
14
|
+
def container: (Array[top] | Hash[top, top], Integer) -> json
|
|
15
|
+
def mapping: (Hash[top, top], Integer) -> payload
|
|
16
|
+
end
|
|
17
|
+
end
|
data/sig/hawk/rack.rbs
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
type rack_headers = Hash[String, String | Array[String]]
|
|
3
|
+
type rack_body = _RackEnumerableBody | _RackCallableBody
|
|
4
|
+
type rack_response = [Integer, rack_headers, rack_body]
|
|
5
|
+
|
|
6
|
+
interface _RackProtocol
|
|
7
|
+
def respond_to?: (Symbol, ?bool) -> bool
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
interface _RackEnumerableBody
|
|
11
|
+
include _RackProtocol
|
|
12
|
+
def each: () { (String) -> void } -> top
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
interface _RackCallableBody
|
|
16
|
+
include _RackProtocol
|
|
17
|
+
def call: (top) -> top
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
interface _RackFileBody
|
|
21
|
+
include _RackEnumerableBody
|
|
22
|
+
def to_path: () -> String
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
interface _RackClosableBody
|
|
26
|
+
def close: () -> top
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
interface _RackApp
|
|
30
|
+
def call: (Hash[String, top]) -> rack_response
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class Rack
|
|
34
|
+
@app: _RackApp
|
|
35
|
+
@client: Client?
|
|
36
|
+
@integration: Symbol
|
|
37
|
+
def initialize: (_RackApp, ?client: Client?, ?integration: Symbol) -> void
|
|
38
|
+
def call: (Hash[String, top]) -> rack_response
|
|
39
|
+
|
|
40
|
+
private
|
|
41
|
+
|
|
42
|
+
def active_client: () -> Client?
|
|
43
|
+
def invoke: (Client, Hash[String, top]) -> rack_response
|
|
44
|
+
def metadata: (Hash[String, top]) -> payload
|
|
45
|
+
def optional_metadata: (payload, Hash[String, top]) -> payload
|
|
46
|
+
def headers: (Hash[String, top]) -> payload
|
|
47
|
+
|
|
48
|
+
class Body
|
|
49
|
+
@body: _RackEnumerableBody
|
|
50
|
+
@client: Client
|
|
51
|
+
@scope: Scope
|
|
52
|
+
def self.wrap: (rack_body, client: Client, scope: Scope) -> rack_body
|
|
53
|
+
def initialize: (_RackEnumerableBody, client: Client, scope: Scope) -> void
|
|
54
|
+
def each: () -> Enumerator[String, top]
|
|
55
|
+
| () { (String) -> void } -> top
|
|
56
|
+
def close: () -> top
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
class FileBody < Body
|
|
60
|
+
@file_body: _RackFileBody
|
|
61
|
+
def initialize: (_RackFileBody, client: Client, scope: Scope) -> void
|
|
62
|
+
def to_path: () -> String
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
class CallableBody
|
|
66
|
+
@body: _RackCallableBody
|
|
67
|
+
@client: Client
|
|
68
|
+
@scope: Scope
|
|
69
|
+
def initialize: (_RackCallableBody, client: Client, scope: Scope) -> void
|
|
70
|
+
def call: (top) -> top
|
|
71
|
+
def close: () -> top
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Hawk::Rails
|
|
2
|
+
interface _CableChannel
|
|
3
|
+
def perform_action: (Hash[String, top]) -> top
|
|
4
|
+
def subscribe_to_channel: () -> top
|
|
5
|
+
def unsubscribe_from_channel: () -> top
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
interface _CableConnection
|
|
9
|
+
def handle_open: () -> top
|
|
10
|
+
def handle_close: () -> top
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
interface _CableRescue
|
|
14
|
+
def rescue_with_handler: (Exception) -> Exception?
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module ActionCable
|
|
18
|
+
self.@installed: bool?
|
|
19
|
+
def self.install: () -> void
|
|
20
|
+
def self.client: () -> Hawk::Client?
|
|
21
|
+
def self.run: [A] (Object, String) { () -> A } -> A
|
|
22
|
+
def self.report: (Exception, handled: bool) -> String?
|
|
23
|
+
|
|
24
|
+
module ChannelMethods : _CableChannel
|
|
25
|
+
def perform_action: (Hash[String, top]) -> top
|
|
26
|
+
def subscribe_to_channel: () -> top
|
|
27
|
+
def unsubscribe_from_channel: () -> top
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
module ConnectionMethods : _CableConnection
|
|
31
|
+
private
|
|
32
|
+
def handle_open: () -> top
|
|
33
|
+
def handle_close: () -> top
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
module RescueMethods : _CableRescue
|
|
37
|
+
def rescue_with_handler: (Exception) -> Exception?
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Hawk::Rails
|
|
2
|
+
interface _ActiveJobExecutor
|
|
3
|
+
def execute: (Hash[String, top]) -> top
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
interface _ActiveJobInstance
|
|
7
|
+
def serialize: () -> Hash[String, top]
|
|
8
|
+
def deserialize: (Hash[String, top]) -> top
|
|
9
|
+
def perform_now: () -> top
|
|
10
|
+
def job_id: () -> String
|
|
11
|
+
def queue_name: () -> String
|
|
12
|
+
def executions: () -> Integer
|
|
13
|
+
def arguments: () -> Array[top]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
module ActiveJob
|
|
17
|
+
self.@installed: bool?
|
|
18
|
+
def self.install: () -> void
|
|
19
|
+
def self.client: () -> Hawk::Client?
|
|
20
|
+
def self.run: [A] (Hash[String, top], top) { () -> A } -> A
|
|
21
|
+
def self.metadata: (Hawk::Client, Hash[String, top]) -> Hawk::payload
|
|
22
|
+
|
|
23
|
+
module ClassMethods : _ActiveJobExecutor
|
|
24
|
+
def execute: (Hash[String, top]) -> top
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
module InstanceMethods : _ActiveJobInstance
|
|
28
|
+
@hawk_context: Hawk::payload?
|
|
29
|
+
def serialize: () -> Hash[String, top]
|
|
30
|
+
def deserialize: (Hash[String, top]) -> top
|
|
31
|
+
def perform_now: () -> top
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
module Hawk::Rails
|
|
2
|
+
class ErrorSubscriber
|
|
3
|
+
self.@installed: bool?
|
|
4
|
+
def self.install: () -> void
|
|
5
|
+
def report: (Exception, handled: bool, severity: Symbol, context: top, ?source: String?) -> void
|
|
6
|
+
private
|
|
7
|
+
def request_owned?: (Hawk::Client, Exception, String?) -> bool
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
interface _ParameterFilter
|
|
3
|
+
def filter: (payload) -> top
|
|
4
|
+
end
|
|
5
|
+
module Rails
|
|
6
|
+
class PayloadFilter
|
|
7
|
+
PATHS: Array[Array[String]]
|
|
8
|
+
@filter: _ParameterFilter
|
|
9
|
+
def initialize: (_ParameterFilter) -> void
|
|
10
|
+
def call: (payload) -> payload
|
|
11
|
+
private
|
|
12
|
+
def filter: (payload) -> payload
|
|
13
|
+
def filter_tree: (String, json) -> json
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/sig/hawk/rails.rbs
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
interface _RailsErrorReporter
|
|
3
|
+
def subscribe: (Hawk::Rails::ErrorSubscriber) -> void
|
|
4
|
+
end
|
|
5
|
+
interface _RailsMiddlewareStack
|
|
6
|
+
def insert_after: (Class, Class, ?integration: Symbol) -> void
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
interface _RailsConfiguration
|
|
10
|
+
def filter_parameters: () -> Array[top]
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
interface _RailsApplication
|
|
14
|
+
def config: () -> _RailsConfiguration
|
|
15
|
+
def middleware: () -> _RailsMiddlewareStack
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module Rails
|
|
19
|
+
def self.configure: (Configuration) -> void
|
|
20
|
+
def self.activate_integrations: (Configuration) -> void
|
|
21
|
+
def self.integration_client: (Symbol) -> Client?
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
class Railtie
|
|
25
|
+
end
|
|
26
|
+
end
|
data/sig/hawk/rake.rbs
ADDED
data/sig/hawk/resque.rbs
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
interface _ResqueJob
|
|
3
|
+
def perform: () -> bool
|
|
4
|
+
def payload: () -> Hash[String, top]
|
|
5
|
+
def queue: () -> String
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
interface _ResqueFailure
|
|
9
|
+
def create: (?Hash[Symbol, top]) -> top
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module Resque
|
|
13
|
+
def self.install: () -> void
|
|
14
|
+
def self.client: () -> Client?
|
|
15
|
+
def self.metadata: (Client, Hash[String, top], top) -> payload
|
|
16
|
+
def self.run: [A] (Hash[String, top], String) { () -> A } -> A
|
|
17
|
+
def self.report_failure: (Hash[Symbol, top]) -> void
|
|
18
|
+
module JobMethods : _ResqueJob
|
|
19
|
+
def perform: () -> bool
|
|
20
|
+
end
|
|
21
|
+
module FailureMethods : _ResqueFailure
|
|
22
|
+
def create: (?Hash[Symbol, top]) -> top
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
data/sig/hawk/scope.rbs
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
class Scope
|
|
3
|
+
class Ledger
|
|
4
|
+
@errors: Hash[Exception, bool]
|
|
5
|
+
def initialize: () -> void
|
|
6
|
+
def accept: (Exception, ?evict: bool) -> (:duplicate | :overflow | :accepted)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
attr_reader context: payload
|
|
10
|
+
attr_reader user: payload?
|
|
11
|
+
attr_reader anonymous_id: String
|
|
12
|
+
attr_accessor addons: payload
|
|
13
|
+
attr_accessor breadcrumbs: Array[payload]
|
|
14
|
+
attr_accessor ledger: Ledger
|
|
15
|
+
attr_accessor boundary: bool
|
|
16
|
+
attr_accessor request_metadata: (^() -> payload)?
|
|
17
|
+
def initialize: (?context: raw_context, ?user: raw_context?, ?anonymous_id: String) -> void
|
|
18
|
+
@filtered_context_keys: Hash[String, bool]
|
|
19
|
+
@filtered_user: bool
|
|
20
|
+
def set_context: (raw_context) -> void
|
|
21
|
+
def set_user: (raw_context?) -> void
|
|
22
|
+
def restore_filtered: (raw_context, raw_context?) -> void
|
|
23
|
+
def filtered_paths: (?except_context: Array[String], ?user_override: bool) -> Array[Array[String]]
|
|
24
|
+
def event_addons: () -> payload
|
|
25
|
+
def event_data: (raw_context, raw_context?, raw_context?, payload) -> { context: payload, user: payload, breadcrumbs: Array[payload], addons: payload, filtered_paths: Array[Array[String]] }
|
|
26
|
+
def copy: () -> Scope
|
|
27
|
+
private
|
|
28
|
+
def update_context: (raw_context, bool) -> void
|
|
29
|
+
def update_user: (raw_context?, bool) -> void
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
class ScopeStore
|
|
3
|
+
@configuration: Configuration
|
|
4
|
+
@anonymous_id: String
|
|
5
|
+
@scope_key: String
|
|
6
|
+
@escape_key: String
|
|
7
|
+
def initialize: (Configuration, String) -> void
|
|
8
|
+
def current: () -> Scope
|
|
9
|
+
def replace: (Scope) -> void
|
|
10
|
+
def remember_escape: (Exception) -> void
|
|
11
|
+
def consume_escape: (Exception) -> bool
|
|
12
|
+
def clear_escape: () -> void
|
|
13
|
+
def clear: () -> void
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
interface _MiddlewareChain
|
|
3
|
+
def add: (Class) -> void
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
interface _SidekiqConfig
|
|
7
|
+
def client_middleware: () { (_MiddlewareChain) -> void } -> void
|
|
8
|
+
def server_middleware: () { (_MiddlewareChain) -> void } -> void
|
|
9
|
+
def error_handlers: () -> Array[top]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
module Sidekiq
|
|
13
|
+
def self.install: () -> void
|
|
14
|
+
def self.register_client: (_SidekiqConfig) -> void
|
|
15
|
+
def self.register: (_SidekiqConfig) -> void
|
|
16
|
+
def self.client: () -> Client?
|
|
17
|
+
def self.metadata: (Client, Hash[String, top]) -> payload
|
|
18
|
+
class ClientMiddleware
|
|
19
|
+
def call: [A] (top, Hash[String, top], String, ?top) { () -> A } -> A
|
|
20
|
+
end
|
|
21
|
+
class ServerMiddleware
|
|
22
|
+
def call: [A] (top, Hash[String, top], String) { () -> A } -> A
|
|
23
|
+
end
|
|
24
|
+
class ErrorHandler
|
|
25
|
+
def call: (Exception, Hash[Symbol, top], ?top) -> void
|
|
26
|
+
end
|
|
27
|
+
ERROR_HANDLER: ErrorHandler
|
|
28
|
+
end
|
|
29
|
+
end
|
data/sig/hawk/source.rbs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
class Source
|
|
3
|
+
@enabled: bool
|
|
4
|
+
@roots: Array[String]
|
|
5
|
+
def initialize: (Configuration) -> void
|
|
6
|
+
def frames: (Exception) -> Array[payload]
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def location_frame: (Thread::Backtrace::Location) -> payload?
|
|
11
|
+
def realpath: (String) -> String?
|
|
12
|
+
def parse: (String) -> payload?
|
|
13
|
+
def frame: (String, Integer, String?) -> payload?
|
|
14
|
+
def snippets: (String, Integer) -> Array[payload]
|
|
15
|
+
def readable_path: (String) -> String?
|
|
16
|
+
def excerpt: (String, Integer) -> Array[payload]
|
|
17
|
+
end
|
|
18
|
+
end
|
data/sig/hawk/token.rbs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
class ConfigurationError < ArgumentError
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
class Token
|
|
6
|
+
LABEL: Regexp
|
|
7
|
+
@integration_id: String
|
|
8
|
+
def self.decode: (String) -> Token
|
|
9
|
+
def self.integration_id: (top) -> String?
|
|
10
|
+
def self.valid_secret?: (top) -> bool
|
|
11
|
+
def initialize: (String) -> void
|
|
12
|
+
def endpoint: () -> URI::HTTPS
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
interface _Transport
|
|
3
|
+
def available?: () -> bool
|
|
4
|
+
def send: (String) -> Symbol
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
class Transport
|
|
8
|
+
class ResponseTooLarge < StandardError
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
@configuration: Configuration
|
|
12
|
+
@uri: URI::HTTP?
|
|
13
|
+
@mutex: Thread::Mutex
|
|
14
|
+
@pid: Integer
|
|
15
|
+
@cooldown_until: Float
|
|
16
|
+
def initialize: (Configuration) -> void
|
|
17
|
+
def available?: () -> bool
|
|
18
|
+
def send: (String) -> Symbol
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def reset: () -> void
|
|
23
|
+
def monotonic: () -> Float
|
|
24
|
+
def connection: (URI::HTTP) -> Net::HTTP
|
|
25
|
+
def request: (String, URI::HTTP) -> Symbol
|
|
26
|
+
def handle: (Net::HTTPResponse) -> Symbol
|
|
27
|
+
def response_body: (Net::HTTPResponse) -> String
|
|
28
|
+
def success?: (String) -> bool
|
|
29
|
+
def cooldown: (String?) -> void
|
|
30
|
+
def retry_delay: (String?) -> Float
|
|
31
|
+
end
|
|
32
|
+
end
|
data/sig/hawk.rbs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Hawk
|
|
2
|
+
self.@client: Client?
|
|
3
|
+
VERSION: String
|
|
4
|
+
type json = nil | bool | Integer | Float | String | Array[json] | Hash[String, json]
|
|
5
|
+
def self.client: () -> Client?
|
|
6
|
+
def self.init: () { (Configuration) -> void } -> Client
|
|
7
|
+
def self.capture_exception: (Exception, ?context: raw_context, ?user: raw_context?, ?level: Symbol) -> String?
|
|
8
|
+
def self.capture_message: (String, ?context: raw_context, ?user: raw_context?, ?level: Symbol) -> String?
|
|
9
|
+
def self.set_context: (raw_context) -> void
|
|
10
|
+
def self.add_breadcrumb: (raw_context) -> void
|
|
11
|
+
def self.set_user: (raw_context?) -> void
|
|
12
|
+
def self.with_scope: [A] () { (Scope) -> A } -> A
|
|
13
|
+
def self.capture: [A] () { () -> A } -> A
|
|
14
|
+
def self.flush: (?timeout: Float?) -> bool
|
|
15
|
+
def self.close: (?timeout: Float?) -> bool
|
|
16
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: hawk-ruby
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Leonid Svyatov
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: base64
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0.2'
|
|
19
|
+
- - "<"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '1'
|
|
22
|
+
type: :runtime
|
|
23
|
+
prerelease: false
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
requirements:
|
|
26
|
+
- - ">="
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
version: '0.2'
|
|
29
|
+
- - "<"
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '1'
|
|
32
|
+
- !ruby/object:Gem::Dependency
|
|
33
|
+
name: json
|
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
|
35
|
+
requirements:
|
|
36
|
+
- - ">="
|
|
37
|
+
- !ruby/object:Gem::Version
|
|
38
|
+
version: '2.7'
|
|
39
|
+
- - "<"
|
|
40
|
+
- !ruby/object:Gem::Version
|
|
41
|
+
version: '4'
|
|
42
|
+
type: :runtime
|
|
43
|
+
prerelease: false
|
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - ">="
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: '2.7'
|
|
49
|
+
- - "<"
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: '4'
|
|
52
|
+
- !ruby/object:Gem::Dependency
|
|
53
|
+
name: logger
|
|
54
|
+
requirement: !ruby/object:Gem::Requirement
|
|
55
|
+
requirements:
|
|
56
|
+
- - ">="
|
|
57
|
+
- !ruby/object:Gem::Version
|
|
58
|
+
version: '1.6'
|
|
59
|
+
- - "<"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '2'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '1.6'
|
|
69
|
+
- - "<"
|
|
70
|
+
- !ruby/object:Gem::Version
|
|
71
|
+
version: '2'
|
|
72
|
+
- !ruby/object:Gem::Dependency
|
|
73
|
+
name: net-http
|
|
74
|
+
requirement: !ruby/object:Gem::Requirement
|
|
75
|
+
requirements:
|
|
76
|
+
- - ">="
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: '0.4'
|
|
79
|
+
- - "<"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '1'
|
|
82
|
+
type: :runtime
|
|
83
|
+
prerelease: false
|
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0.4'
|
|
89
|
+
- - "<"
|
|
90
|
+
- !ruby/object:Gem::Version
|
|
91
|
+
version: '1'
|
|
92
|
+
- !ruby/object:Gem::Dependency
|
|
93
|
+
name: securerandom
|
|
94
|
+
requirement: !ruby/object:Gem::Requirement
|
|
95
|
+
requirements:
|
|
96
|
+
- - ">="
|
|
97
|
+
- !ruby/object:Gem::Version
|
|
98
|
+
version: '0.3'
|
|
99
|
+
- - "<"
|
|
100
|
+
- !ruby/object:Gem::Version
|
|
101
|
+
version: '1'
|
|
102
|
+
type: :runtime
|
|
103
|
+
prerelease: false
|
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
+
requirements:
|
|
106
|
+
- - ">="
|
|
107
|
+
- !ruby/object:Gem::Version
|
|
108
|
+
version: '0.3'
|
|
109
|
+
- - "<"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: '1'
|
|
112
|
+
description: A Ruby error catcher with optional framework integrations for Hawk.
|
|
113
|
+
email:
|
|
114
|
+
- leonid@svyatov.com
|
|
115
|
+
executables: []
|
|
116
|
+
extensions: []
|
|
117
|
+
extra_rdoc_files: []
|
|
118
|
+
files:
|
|
119
|
+
- CHANGELOG.md
|
|
120
|
+
- LICENSE
|
|
121
|
+
- README.md
|
|
122
|
+
- docs/configuration.md
|
|
123
|
+
- docs/integrations.md
|
|
124
|
+
- docs/releasing.md
|
|
125
|
+
- docs/verification.md
|
|
126
|
+
- lib/hawk.rb
|
|
127
|
+
- lib/hawk/boundary.rb
|
|
128
|
+
- lib/hawk/breadcrumbs.rb
|
|
129
|
+
- lib/hawk/breadcrumbs/logger.rb
|
|
130
|
+
- lib/hawk/breadcrumbs/net_http.rb
|
|
131
|
+
- lib/hawk/breadcrumbs/rails.rb
|
|
132
|
+
- lib/hawk/client.rb
|
|
133
|
+
- lib/hawk/configuration.rb
|
|
134
|
+
- lib/hawk/delayed_job.rb
|
|
135
|
+
- lib/hawk/delivery.rb
|
|
136
|
+
- lib/hawk/diagnostics.rb
|
|
137
|
+
- lib/hawk/event.rb
|
|
138
|
+
- lib/hawk/filter.rb
|
|
139
|
+
- lib/hawk/filtered_fields.rb
|
|
140
|
+
- lib/hawk/framework_filter.rb
|
|
141
|
+
- lib/hawk/hook.rb
|
|
142
|
+
- lib/hawk/job_context.rb
|
|
143
|
+
- lib/hawk/json_value.rb
|
|
144
|
+
- lib/hawk/process_hooks.rb
|
|
145
|
+
- lib/hawk/rack.rb
|
|
146
|
+
- lib/hawk/rack/body.rb
|
|
147
|
+
- lib/hawk/rails.rb
|
|
148
|
+
- lib/hawk/rails/action_cable.rb
|
|
149
|
+
- lib/hawk/rails/active_job.rb
|
|
150
|
+
- lib/hawk/rails/error_subscriber.rb
|
|
151
|
+
- lib/hawk/rails/integration.rb
|
|
152
|
+
- lib/hawk/rails/payload_filter.rb
|
|
153
|
+
- lib/hawk/rake.rb
|
|
154
|
+
- lib/hawk/release.rb
|
|
155
|
+
- lib/hawk/resque.rb
|
|
156
|
+
- lib/hawk/scope.rb
|
|
157
|
+
- lib/hawk/scope_store.rb
|
|
158
|
+
- lib/hawk/sidekiq.rb
|
|
159
|
+
- lib/hawk/source.rb
|
|
160
|
+
- lib/hawk/token.rb
|
|
161
|
+
- lib/hawk/transport.rb
|
|
162
|
+
- lib/hawk/version.rb
|
|
163
|
+
- sig/hawk.rbs
|
|
164
|
+
- sig/hawk/boundary.rbs
|
|
165
|
+
- sig/hawk/breadcrumbs.rbs
|
|
166
|
+
- sig/hawk/breadcrumbs/logger.rbs
|
|
167
|
+
- sig/hawk/breadcrumbs/net_http.rbs
|
|
168
|
+
- sig/hawk/breadcrumbs/rails.rbs
|
|
169
|
+
- sig/hawk/client.rbs
|
|
170
|
+
- sig/hawk/configuration.rbs
|
|
171
|
+
- sig/hawk/delayed_job.rbs
|
|
172
|
+
- sig/hawk/delivery.rbs
|
|
173
|
+
- sig/hawk/diagnostics.rbs
|
|
174
|
+
- sig/hawk/event.rbs
|
|
175
|
+
- sig/hawk/filter.rbs
|
|
176
|
+
- sig/hawk/filtered_fields.rbs
|
|
177
|
+
- sig/hawk/framework_filter.rbs
|
|
178
|
+
- sig/hawk/hook.rbs
|
|
179
|
+
- sig/hawk/job_context.rbs
|
|
180
|
+
- sig/hawk/json_value.rbs
|
|
181
|
+
- sig/hawk/process_hooks.rbs
|
|
182
|
+
- sig/hawk/rack.rbs
|
|
183
|
+
- sig/hawk/rails.rbs
|
|
184
|
+
- sig/hawk/rails/action_cable.rbs
|
|
185
|
+
- sig/hawk/rails/active_job.rbs
|
|
186
|
+
- sig/hawk/rails/error_subscriber.rbs
|
|
187
|
+
- sig/hawk/rails/payload_filter.rbs
|
|
188
|
+
- sig/hawk/rake.rbs
|
|
189
|
+
- sig/hawk/release.rbs
|
|
190
|
+
- sig/hawk/resque.rbs
|
|
191
|
+
- sig/hawk/scope.rbs
|
|
192
|
+
- sig/hawk/scope_store.rbs
|
|
193
|
+
- sig/hawk/sidekiq.rbs
|
|
194
|
+
- sig/hawk/source.rbs
|
|
195
|
+
- sig/hawk/token.rbs
|
|
196
|
+
- sig/hawk/transport.rbs
|
|
197
|
+
homepage: https://hawk.so
|
|
198
|
+
licenses:
|
|
199
|
+
- MIT
|
|
200
|
+
metadata:
|
|
201
|
+
rubygems_mfa_required: 'true'
|
|
202
|
+
source_code_uri: https://github.com/svyatov/hawk.ruby
|
|
203
|
+
bug_tracker_uri: https://github.com/svyatov/hawk.ruby/issues
|
|
204
|
+
changelog_uri: https://github.com/svyatov/hawk.ruby/blob/main/CHANGELOG.md
|
|
205
|
+
documentation_uri: https://github.com/svyatov/hawk.ruby/blob/main/README.md
|
|
206
|
+
rdoc_options: []
|
|
207
|
+
require_paths:
|
|
208
|
+
- lib
|
|
209
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
210
|
+
requirements:
|
|
211
|
+
- - ">="
|
|
212
|
+
- !ruby/object:Gem::Version
|
|
213
|
+
version: '3.3'
|
|
214
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
|
+
requirements:
|
|
216
|
+
- - ">="
|
|
217
|
+
- !ruby/object:Gem::Version
|
|
218
|
+
version: '0'
|
|
219
|
+
requirements: []
|
|
220
|
+
rubygems_version: 4.0.20
|
|
221
|
+
specification_version: 4
|
|
222
|
+
summary: Ruby error reporting for Hawk
|
|
223
|
+
test_files: []
|