hermes-rb 0.5.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +43 -0
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/Appraisals +12 -0
- data/Changelog.md +9 -0
- data/Gemfile.lock +38 -28
- data/README.md +32 -5
- data/bin/hermes_health_check +12 -0
- data/gemfiles/rails.5.2.gemfile +9 -0
- data/gemfiles/rails.6.1.gemfile +9 -0
- data/gemfiles/rails.7.0.gemfile +9 -0
- data/hermes-rb.gemspec +3 -2
- data/lib/hermes/checks/health_check.rb +14 -0
- data/lib/hermes/checks.rb +5 -0
- data/lib/hermes/logger/params_filter.rb +1 -1
- data/lib/hermes/logger.rb +4 -0
- data/lib/hermes/rb/version.rb +1 -1
- data/lib/hermes/tracers/datadog.rb +7 -1
- data/lib/hermes.rb +1 -0
- metadata +29 -6
- data/.travis.yml +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01e56f5cf846518bbedba098f5d3129cea50b81390e948eb8b3640cd98b4ee58
|
4
|
+
data.tar.gz: d672a90b3b7ddec2b8c7fcf3a57307c208297362dd16191c11792f4d8ddc4d4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9440e207aaddc314e99d66e87c9d0296b80df0280c2d4112e4d1b6530fcf3bf9da17fcdb44f398ae8f607cf6c4dbf4eed66ba44b6836d748781ce997100777d6
|
7
|
+
data.tar.gz: 55886c1f907cf1031bdf2fb8528bfa5e4efeb062161aef0e64c6b6bf601481eb411736b93e24b0b21b5a11636d0a308f5c73bce4508e2071698c7b670e5eceff
|
@@ -0,0 +1,43 @@
|
|
1
|
+
name: CI
|
2
|
+
on: [pull_request]
|
3
|
+
jobs:
|
4
|
+
rspec:
|
5
|
+
strategy:
|
6
|
+
fail-fast: false
|
7
|
+
matrix:
|
8
|
+
include:
|
9
|
+
- { ruby: '2.7', rails: '5.2' }
|
10
|
+
- { ruby: '3.0', rails: '6.1' }
|
11
|
+
- { ruby: '3.1', rails: '7.0' }
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
env:
|
14
|
+
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/rails.${{ matrix.rails }}.gemfile
|
15
|
+
DATABASE_URL: "postgresql://postgres:postgres@127.0.0.1:5432/hermes-rb-test"
|
16
|
+
DISTRIBUTED_TRACING_DATABASE_URI: "postgresql://postgres:postgres@127.0.0.1:5432/hermes-rb-test"
|
17
|
+
HUTCH_URI: "amqp://guest:guest@127.0.0.1:5672"
|
18
|
+
HUTCH_ENABLE_HTTP_API_USE: false
|
19
|
+
services:
|
20
|
+
postgres:
|
21
|
+
image: postgres:14
|
22
|
+
env:
|
23
|
+
POSTGRES_USER: postgres
|
24
|
+
POSTGRES_PASSWORD: postgres
|
25
|
+
POSTGRES_DB: hermes-rb-test
|
26
|
+
ports:
|
27
|
+
- 5432:5432
|
28
|
+
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
29
|
+
rabbitmq:
|
30
|
+
image: rabbitmq
|
31
|
+
env:
|
32
|
+
RABBITMQ_DEFAULT_USER: guest
|
33
|
+
RABBITMQ_DEFAULT_PASS: guest
|
34
|
+
ports:
|
35
|
+
- 5672:5672
|
36
|
+
options: --health-cmd "rabbitmqctl node_health_check" --health-interval 10s --health-timeout 5s --health-retries 5
|
37
|
+
steps:
|
38
|
+
- uses: actions/checkout@v2
|
39
|
+
- uses: ruby/setup-ruby@v1
|
40
|
+
with:
|
41
|
+
ruby-version: ${{ matrix.ruby }}
|
42
|
+
bundler-cache: true
|
43
|
+
- run: bundle exec rspec
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.7
|
data/Appraisals
ADDED
data/Changelog.md
CHANGED
@@ -2,6 +2,15 @@
|
|
2
2
|
|
3
3
|
## Master
|
4
4
|
|
5
|
+
## 0.7.0
|
6
|
+
- Add support for DDTrace v1
|
7
|
+
|
8
|
+
## 0.6.1
|
9
|
+
- Extend the list of sensitive keywords for Hermes::Logger::ParamsFilter
|
10
|
+
|
11
|
+
## 0.6.0
|
12
|
+
- Add Health check
|
13
|
+
|
5
14
|
## 0.5.0
|
6
15
|
- Add Datadog tracer
|
7
16
|
- Allow to provide a custom tracer
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hermes-rb (0.
|
4
|
+
hermes-rb (0.7.0)
|
5
5
|
activerecord (>= 5)
|
6
6
|
activesupport (>= 5)
|
7
7
|
dry-container (~> 0)
|
@@ -12,36 +12,40 @@ PATH
|
|
12
12
|
GEM
|
13
13
|
remote: https://rubygems.org/
|
14
14
|
specs:
|
15
|
-
activemodel (
|
16
|
-
activesupport (=
|
17
|
-
activerecord (
|
18
|
-
activemodel (=
|
19
|
-
activesupport (=
|
20
|
-
activesupport (
|
15
|
+
activemodel (7.0.3)
|
16
|
+
activesupport (= 7.0.3)
|
17
|
+
activerecord (7.0.3)
|
18
|
+
activemodel (= 7.0.3)
|
19
|
+
activesupport (= 7.0.3)
|
20
|
+
activesupport (7.0.3)
|
21
21
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
22
22
|
i18n (>= 1.6, < 2)
|
23
23
|
minitest (>= 5.1)
|
24
24
|
tzinfo (~> 2.0)
|
25
|
-
zeitwerk (~> 2.3)
|
26
25
|
amq-protocol (2.3.2)
|
27
|
-
|
26
|
+
appraisal (2.4.1)
|
27
|
+
bundler
|
28
|
+
rake
|
29
|
+
thor (>= 0.14.0)
|
30
|
+
bunny (2.19.0)
|
28
31
|
amq-protocol (~> 2.3, >= 2.3.1)
|
32
|
+
sorted_set (~> 1, >= 1.0.2)
|
29
33
|
carrot-top (0.0.7)
|
30
34
|
json
|
31
|
-
concurrent-ruby (1.1.
|
35
|
+
concurrent-ruby (1.1.10)
|
32
36
|
ddtrace (0.45.0)
|
33
37
|
msgpack
|
34
38
|
diff-lcs (1.4.4)
|
35
|
-
dry-configurable (0.
|
39
|
+
dry-configurable (0.15.0)
|
36
40
|
concurrent-ruby (~> 1.0)
|
37
|
-
dry-core (~> 0.
|
38
|
-
dry-container (0.
|
41
|
+
dry-core (~> 0.6)
|
42
|
+
dry-container (0.9.0)
|
39
43
|
concurrent-ruby (~> 1.0)
|
40
|
-
dry-configurable (~> 0.
|
41
|
-
dry-core (0.
|
44
|
+
dry-configurable (~> 0.13, >= 0.13.0)
|
45
|
+
dry-core (0.7.1)
|
42
46
|
concurrent-ruby (~> 1.0)
|
43
|
-
dry-inflector (0.2.
|
44
|
-
dry-logic (1.
|
47
|
+
dry-inflector (0.2.1)
|
48
|
+
dry-logic (1.2.0)
|
45
49
|
concurrent-ruby (~> 1.0)
|
46
50
|
dry-core (~> 0.5, >= 0.5)
|
47
51
|
dry-struct (1.4.0)
|
@@ -54,23 +58,24 @@ GEM
|
|
54
58
|
dry-core (~> 0.5, >= 0.5)
|
55
59
|
dry-inflector (~> 0.1, >= 0.1.2)
|
56
60
|
dry-logic (~> 1.0, >= 1.0.2)
|
57
|
-
hutch (1.
|
58
|
-
activesupport (>= 4.2, <
|
59
|
-
bunny (>= 2.
|
61
|
+
hutch (1.1.1)
|
62
|
+
activesupport (>= 4.2, < 8)
|
63
|
+
bunny (>= 2.19, < 3.0)
|
60
64
|
carrot-top (~> 0.0.7)
|
61
|
-
multi_json (~> 1.
|
62
|
-
i18n (1.
|
65
|
+
multi_json (~> 1.15)
|
66
|
+
i18n (1.10.0)
|
63
67
|
concurrent-ruby (~> 1.0)
|
64
68
|
ice_nine (0.11.2)
|
65
|
-
json (2.
|
66
|
-
minitest (5.
|
69
|
+
json (2.6.2)
|
70
|
+
minitest (5.15.0)
|
67
71
|
msgpack (1.4.2)
|
68
72
|
multi_json (1.15.0)
|
69
73
|
newrelic_rpm (6.15.0)
|
70
74
|
pg (1.2.3)
|
71
|
-
rack (2.2.3)
|
75
|
+
rack (2.2.3.1)
|
72
76
|
rake (13.0.1)
|
73
|
-
|
77
|
+
rbtree (0.4.5)
|
78
|
+
request_store (1.5.1)
|
74
79
|
rack (>= 1.4)
|
75
80
|
rspec (3.10.0)
|
76
81
|
rspec-core (~> 3.10.0)
|
@@ -85,16 +90,21 @@ GEM
|
|
85
90
|
diff-lcs (>= 1.2.0, < 2.0)
|
86
91
|
rspec-support (~> 3.10.0)
|
87
92
|
rspec-support (3.10.0)
|
93
|
+
set (1.0.2)
|
94
|
+
sorted_set (1.0.3)
|
95
|
+
rbtree
|
96
|
+
set (~> 1.0)
|
97
|
+
thor (1.2.1)
|
88
98
|
timecop (0.9.2)
|
89
99
|
tzinfo (2.0.4)
|
90
100
|
concurrent-ruby (~> 1.0)
|
91
101
|
vcr (5.0.0)
|
92
|
-
zeitwerk (2.4.2)
|
93
102
|
|
94
103
|
PLATFORMS
|
95
104
|
ruby
|
96
105
|
|
97
106
|
DEPENDENCIES
|
107
|
+
appraisal
|
98
108
|
bundler
|
99
109
|
ddtrace
|
100
110
|
hermes-rb!
|
@@ -106,4 +116,4 @@ DEPENDENCIES
|
|
106
116
|
vcr
|
107
117
|
|
108
118
|
BUNDLED WITH
|
109
|
-
2.
|
119
|
+
2.2.22
|
data/README.md
CHANGED
@@ -37,8 +37,8 @@ Rails.application.config.to_prepare do
|
|
37
37
|
config.configure_hutch do |hutch|
|
38
38
|
hutch.uri = ENV.fetch("HUTCH_URI")
|
39
39
|
hutch.force_publisher_confirms = true
|
40
|
-
hutch.enable_http_api_use = false
|
41
|
-
hutch.tracer = MyOwnCustomTracerIfIWantToDoSomethingCrazy
|
40
|
+
hutch.enable_http_api_use = false
|
41
|
+
hutch.tracer = MyOwnCustomTracerIfIWantToDoSomethingCrazy
|
42
42
|
end
|
43
43
|
config.distributed_tracing_database_uri = ENV.fetch("DISTRIBUTED_TRACING_DATABASE_URI", nil)
|
44
44
|
config.error_notification_service = Raven
|
@@ -47,7 +47,7 @@ Rails.application.config.to_prepare do
|
|
47
47
|
event_handler.handle_events do
|
48
48
|
handle Events::Example::Happened, with: Example::HappenedHandler
|
49
49
|
handle Events::Example::SyncCallHappened, with: Example::SyncCallHappenedHandler, async: false
|
50
|
-
|
50
|
+
|
51
51
|
extra_consumer_config = -> do
|
52
52
|
classic_queue
|
53
53
|
quorum_queue initial_group_size: 3
|
@@ -148,7 +148,7 @@ If you don't care about it, you can leave it empty.
|
|
148
148
|
|
149
149
|
12. `distributed_tracing_database_table` - Table name for storing traces, by default it's `hermes_distributed_traces`. Optional.
|
150
150
|
|
151
|
-
13. `distributes_tracing_mapper` - an object responding to `call` method taking one argument (a hash of attributes) which must return a hash as well. This hash will be used for assigning attributes when creating `Hermes::DistributedTrace`. It defaults to `Hermes::DistributedTrace::Mapper`, which uses `logger_params_filter` to remove sensitive info (this config option is covered below). You can either provide a custom mapper or pass a custom params filter, for example: `Hermes::DistributedTrace::Mapper.new(params_filter: custom_params_filter)`
|
151
|
+
13. `distributes_tracing_mapper` - an object responding to `call` method taking one argument (a hash of attributes) which must return a hash as well. This hash will be used for assigning attributes when creating `Hermes::DistributedTrace`. It defaults to `Hermes::DistributedTrace::Mapper`, which uses `logger_params_filter` to remove sensitive info (this config option is covered below). You can either provide a custom mapper or pass a custom params filter, for example: `Hermes::DistributedTrace::Mapper.new(params_filter: custom_params_filter)`
|
152
152
|
|
153
153
|
14. `error_notification_service` - an object responding to `capture_exception` method taking one argument (error). Its interface is based on `Raven` from [Sentry Raven](https://github.com/getsentry/sentry-ruby/tree/master/sentry-raven). By default `Hermes::NullErrorNotificationService` is used, which does nothing. Optional.
|
154
154
|
|
@@ -160,7 +160,7 @@ If you don't care about it, you can leave it empty.
|
|
160
160
|
|
161
161
|
18. `logger_params_filter` - a service used as params filter for logger, to make sure no sensitive data will be logged. It defaults to `Hermes::Logger::ParamsFilter` which already performs some filtering but it might not be enough in your case. If you are not satisfied with the defaults, you have 2 options, which are especially simple in Rails apps:
|
162
162
|
- provide custom array of sensitive attributes and still use a default filter: `Hermes::Logger::ParamsFilter.new(sensitive_keywords: Rails.application.config.filter_parameters)`.
|
163
|
-
- provide custom filter object, which responds to `call` method and takes 2 arguments: attribute name and its value and performs mutation by using `gsub!` (don't worry, the entire body is cloned before passing it to the filter, so nothing unexpected will happen). This is compatible with the interface of `Rails.application.config.filter_parameters` when you use a custom filter there. In such case, you can do something like this: `Rails.application.config.filter_parameters = [Proc.new { |k, v| do_something_custom_here(k, v) }]` and then just assign `Rails.application.config.filter_parameters.first` in the Hermes config.
|
163
|
+
- provide custom filter object, which responds to `call` method and takes 2 arguments: attribute name and its value and performs mutation by using `gsub!` (don't worry, the entire body is cloned before passing it to the filter, so nothing unexpected will happen). This is compatible with the interface of `Rails.application.config.filter_parameters` when you use a custom filter there. In such case, you can do something like this: `Rails.application.config.filter_parameters = [Proc.new { |k, v| do_something_custom_here(k, v) }]` and then just assign `Rails.application.config.filter_parameters.first` in the Hermes config.
|
164
164
|
## RPC
|
165
165
|
|
166
166
|
If you want to handle RPC call, you need to add `rpc: true` flag. Keep in mind that RPC requires a synchronous processing and response, so you also need to set `async: false`. The routing key and correlation ID will be resolved based on the message that is published by the client. The payload that is sent back will be what event handler reutrns, so it might be a good idea to just return a hash so that you can operate on JSON easily.
|
@@ -459,6 +459,33 @@ end
|
|
459
459
|
|
460
460
|
Hermes is just an extra layer on top of [hutch](https://github.com/gocardless/hutch), refer to Hutch's docs for more info about dealing with the workers and deployment.
|
461
461
|
|
462
|
+
## Health Checks
|
463
|
+
|
464
|
+
If you want to perform a health check, use `Hermes::Checks::HealthCheck.check`, which checks if it's possible to connect RabbitMQ via Hutch.
|
465
|
+
|
466
|
+
The interface is compliant with `health_check`[https://github.com/ianheggie/health_check] gem. If you want to add the custom health check, just add this to the config:
|
467
|
+
|
468
|
+
``` rb
|
469
|
+
config.add_custom_check("hermes") do
|
470
|
+
Hermes::Checks::HealthCheck.check
|
471
|
+
end
|
472
|
+
```
|
473
|
+
|
474
|
+
You can also use `bin/health_check` file to perform healthcheck - on success, the script exits with `0` status and on failure, it logs the error and exits with `1` status.
|
475
|
+
|
476
|
+
To perform the actual check:
|
477
|
+
|
478
|
+
1. Via `health_check` gem:
|
479
|
+
```
|
480
|
+
curl -v localhost:3000/health_check/hermes.json
|
481
|
+
```
|
482
|
+
|
483
|
+
2. Via binary:
|
484
|
+
|
485
|
+
```
|
486
|
+
bundle exec hermes_health_check
|
487
|
+
```
|
488
|
+
|
462
489
|
## CircleCI config for installing RabbitMQ
|
463
490
|
|
464
491
|
Use `- image: brandembassy/rabbitmq:latest`
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require_relative "../lib/hermes-rb"
|
5
|
+
|
6
|
+
result = Hermes::Checks::HealthCheck.check
|
7
|
+
if result.empty?
|
8
|
+
exit 0
|
9
|
+
else
|
10
|
+
Hermes::DependenciesContainer["logger"].log_health_check_failure(result)
|
11
|
+
exit 1
|
12
|
+
end
|
data/hermes-rb.gemspec
CHANGED
@@ -23,8 +23,8 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
24
24
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
25
25
|
end
|
26
|
-
spec.bindir = "
|
27
|
-
spec.executables =
|
26
|
+
spec.bindir = "bin"
|
27
|
+
spec.executables = ["hermes_health_check"]
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
30
|
spec.add_dependency "dry-struct", "~> 1"
|
@@ -42,4 +42,5 @@ Gem::Specification.new do |spec|
|
|
42
42
|
spec.add_development_dependency "pg"
|
43
43
|
spec.add_development_dependency "newrelic_rpm"
|
44
44
|
spec.add_development_dependency "ddtrace"
|
45
|
+
spec.add_development_dependency "appraisal"
|
45
46
|
end
|
@@ -2,7 +2,7 @@ module Hermes
|
|
2
2
|
class Logger
|
3
3
|
class ParamsFilter
|
4
4
|
SENSITIVE_ATTRIBUTES_KEYWORDS = %w(token password credit_card card_number security_code verification_value
|
5
|
-
private_key signature api_key secret_key publishable_key).freeze
|
5
|
+
private_key signature api_key secret_key publishable_key client_key client_secret secret).freeze
|
6
6
|
STRIPPED_VALUE = "[STRIPPED]".freeze
|
7
7
|
|
8
8
|
private_constant :SENSITIVE_ATTRIBUTES_KEYWORDS, :STRIPPED_VALUE
|
data/lib/hermes/logger.rb
CHANGED
@@ -17,6 +17,10 @@ module Hermes
|
|
17
17
|
backend.info "[Hutch] published event to: #{routing_key}, properties: #{properties}, body: #{strip_sensitive_info(body)} at #{timestamp}"
|
18
18
|
end
|
19
19
|
|
20
|
+
def log_health_check_failure(error)
|
21
|
+
backend.info "[Hermes] health check failed: #{error}"
|
22
|
+
end
|
23
|
+
|
20
24
|
private
|
21
25
|
|
22
26
|
def strip_sensitive_info(body)
|
data/lib/hermes/rb/version.rb
CHANGED
@@ -11,7 +11,13 @@ module Hermes
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def handle(message)
|
14
|
-
::Datadog.
|
14
|
+
tracer = ::Datadog.respond_to?(:tracer) ? ::Datadog.tracer : "Datadog::Tracing".safe_constantize
|
15
|
+
|
16
|
+
tracer.trace(
|
17
|
+
klass.class.name || klass.class.to_s,
|
18
|
+
service: "hermes",
|
19
|
+
span_type: "rabbitmq"
|
20
|
+
) do
|
15
21
|
klass.process(message)
|
16
22
|
end
|
17
23
|
end
|
data/lib/hermes.rb
CHANGED
@@ -25,6 +25,7 @@ require "hermes/producer_error_handler"
|
|
25
25
|
require "hermes/producer_error_handler/null_handler"
|
26
26
|
require "hermes/producer_error_handler/safe_handler"
|
27
27
|
require "hermes/tracers"
|
28
|
+
require "hermes/checks"
|
28
29
|
require "active_support"
|
29
30
|
require "active_support/core_ext/string"
|
30
31
|
require "active_record"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hermes-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Karol Galanciak
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-struct
|
@@ -206,17 +206,34 @@ dependencies:
|
|
206
206
|
- - ">="
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: appraisal
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
209
223
|
description: A messenger of gods, delivering them via RabbitMQ with a little help
|
210
224
|
from Hutch
|
211
225
|
email:
|
212
226
|
- dev@bookingsync.com
|
213
|
-
executables:
|
227
|
+
executables:
|
228
|
+
- hermes_health_check
|
214
229
|
extensions: []
|
215
230
|
extra_rdoc_files: []
|
216
231
|
files:
|
232
|
+
- ".github/workflows/ci.yml"
|
217
233
|
- ".gitignore"
|
218
234
|
- ".rspec"
|
219
|
-
- ".
|
235
|
+
- ".ruby-version"
|
236
|
+
- Appraisals
|
220
237
|
- Changelog.md
|
221
238
|
- Gemfile
|
222
239
|
- Gemfile.lock
|
@@ -224,12 +241,18 @@ files:
|
|
224
241
|
- README.md
|
225
242
|
- Rakefile
|
226
243
|
- bin/console
|
244
|
+
- bin/hermes_health_check
|
227
245
|
- bin/setup
|
246
|
+
- gemfiles/rails.5.2.gemfile
|
247
|
+
- gemfiles/rails.6.1.gemfile
|
248
|
+
- gemfiles/rails.7.0.gemfile
|
228
249
|
- hermes-rb.gemspec
|
229
250
|
- lib/hermes-rb.rb
|
230
251
|
- lib/hermes.rb
|
231
252
|
- lib/hermes/b_3_propagation_model_headers.rb
|
232
253
|
- lib/hermes/base_event.rb
|
254
|
+
- lib/hermes/checks.rb
|
255
|
+
- lib/hermes/checks/health_check.rb
|
233
256
|
- lib/hermes/configuration.rb
|
234
257
|
- lib/hermes/consumer_builder.rb
|
235
258
|
- lib/hermes/database_error_handler.rb
|
@@ -284,7 +307,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
284
307
|
- !ruby/object:Gem::Version
|
285
308
|
version: '0'
|
286
309
|
requirements: []
|
287
|
-
rubygems_version: 3.
|
310
|
+
rubygems_version: 3.2.22
|
288
311
|
signing_key:
|
289
312
|
specification_version: 4
|
290
313
|
summary: A messenger of gods, delivering them via RabbitMQ with a little help from
|
data/.travis.yml
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
---
|
2
|
-
language: ruby
|
3
|
-
cache: bundler
|
4
|
-
rvm:
|
5
|
-
- 2.7.2
|
6
|
-
env:
|
7
|
-
- HUTCH_URI="amqp://guest:guest@localhost:5672"
|
8
|
-
- HUTCH_ENABLE_HTTP_API_USE=false
|
9
|
-
dist: xenial
|
10
|
-
addons:
|
11
|
-
apt:
|
12
|
-
packages:
|
13
|
-
- rabbitmq-server
|
14
|
-
services:
|
15
|
-
- rabbitmq
|
16
|
-
- postgresql
|
17
|
-
before_install: gem install bundler -v 2.1.4
|