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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7a8150916885c53a7ec982a4a8b4c52b3ae181c372a49d848af7e1938c4e57d
4
- data.tar.gz: 1df94ecfc4595c5c8e6c67d79750c4a2fbca4f1a7119a1f5c532b83890a9e1f8
3
+ metadata.gz: 01e56f5cf846518bbedba098f5d3129cea50b81390e948eb8b3640cd98b4ee58
4
+ data.tar.gz: d672a90b3b7ddec2b8c7fcf3a57307c208297362dd16191c11792f4d8ddc4d4f
5
5
  SHA512:
6
- metadata.gz: 57bd2ad4a3a48368360bc1d7fcd42817ef698f326c423068b237123142707d64ca025af62cc8fc0bc9540a0cfe338d701124d73a19b3fe6795c98a7a91ff3a50
7
- data.tar.gz: 89550087ed862bdeb2cb3472d766071f6504f8608ffad58c3fa164c756dee2775b91d7ee299a55949e8ba7d8a31750accaff0688269a13cf81185a924bf71cfc
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
@@ -9,3 +9,4 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+ .ruby-gemset
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7
data/Appraisals ADDED
@@ -0,0 +1,12 @@
1
+ %w[5.2 6.1 7.0].each do |version|
2
+ appraise "rails.#{version}" do
3
+ gem "activesupport", "~> #{version}.0"
4
+ gem "activerecord", "~> #{version}.0"
5
+
6
+ if version == "5.2"
7
+ gem "ddtrace", "< 1.0"
8
+ else
9
+ gem "ddtrace", "> 1.0"
10
+ end
11
+ end
12
+ end
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.5.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 (6.1.3)
16
- activesupport (= 6.1.3)
17
- activerecord (6.1.3)
18
- activemodel (= 6.1.3)
19
- activesupport (= 6.1.3)
20
- activesupport (6.1.3)
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
- bunny (2.15.0)
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.8)
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.12.1)
39
+ dry-configurable (0.15.0)
36
40
  concurrent-ruby (~> 1.0)
37
- dry-core (~> 0.5, >= 0.5.0)
38
- dry-container (0.7.2)
41
+ dry-core (~> 0.6)
42
+ dry-container (0.9.0)
39
43
  concurrent-ruby (~> 1.0)
40
- dry-configurable (~> 0.1, >= 0.1.3)
41
- dry-core (0.5.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.0)
44
- dry-logic (1.1.0)
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.0.0)
58
- activesupport (>= 4.2, < 7)
59
- bunny (>= 2.15, < 2.16)
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.14)
62
- i18n (1.8.9)
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.5.1)
66
- minitest (5.14.4)
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
- request_store (1.5.0)
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.1.4
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
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activesupport", "~> 5.2.0"
6
+ gem "activerecord", "~> 5.2.0"
7
+ gem "ddtrace", "< 1.0"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activesupport", "~> 6.1.0"
6
+ gem "activerecord", "~> 6.1.0"
7
+ gem "ddtrace", "> 1.0"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activesupport", "~> 7.0.0"
6
+ gem "activerecord", "~> 7.0.0"
7
+ gem "ddtrace", "> 1.0"
8
+
9
+ gemspec path: "../"
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 = "exe"
27
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
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
@@ -0,0 +1,14 @@
1
+ module Hermes
2
+ module Checks
3
+ class HealthCheck
4
+ def self.check
5
+ broker = Hutch::Broker.new
6
+ broker.connect
7
+ broker.disconnect
8
+ ""
9
+ rescue StandardError => e
10
+ "[Hermes - #{e.message}] "
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ module Hermes
2
+ module Checks
3
+ autoload :HealthCheck, "hermes/checks/health_check"
4
+ end
5
+ 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)
@@ -1,5 +1,5 @@
1
1
  module Hermes
2
2
  module Rb
3
- VERSION = "0.5.0"
3
+ VERSION = "0.7.0"
4
4
  end
5
5
  end
@@ -11,7 +11,13 @@ module Hermes
11
11
  end
12
12
 
13
13
  def handle(message)
14
- ::Datadog.tracer.trace(klass.class.name, service: "hermes", span_type: "rabbitmq") do
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.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karol Galanciak
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-02 00:00:00.000000000 Z
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
- - ".travis.yml"
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.1.2
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