salesforce_streamer 2.1.0 → 2.4.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: b7aa51a1aab875d18d027a1686a598d795d30126cea6fc81f08e705911bdc92c
4
- data.tar.gz: ce9f47fdc1f3c277347c684fc533e92e56e93779c3115a0894f8834c1196b795
3
+ metadata.gz: 44577fdf473e9b6522ab3020453442e6e0ff9fe9a260405b711f6bc76cabb7db
4
+ data.tar.gz: 8c2ec55c1e067ba5ea86837c1c778a33e5d90003713cc3758977f5de679f126a
5
5
  SHA512:
6
- metadata.gz: 6d7183472e280c49188c8f0a386ddf24e47ee99cd827b0e1b9bb3c22184136ef81694364020a4c6676f728317af530e5959908fe79d871ba065d43f29b0c5f97
7
- data.tar.gz: 329f63f5ced7e03256761765e70a3d13107779fa895e249e69e07e98d148ed1142b0f23c9e8cc86d38faae92087af59080524cef60a70ba51619ab4ec9cdd36b
6
+ metadata.gz: d6a0b79d9a2a14e8c666462385e794781037865bae627d1f7bbd018381ed1f3900eb7c726451eb62ca02782b42bee8fdb9c1e3dce9a53c35e7ab724b2607a7f6
7
+ data.tar.gz: 891d7f0bafc8ca5490e109afd96408239afeee13c3d8e4cbcde571d9799edf61973981c6c63bc954e32c9fec45bdbd4b22659c9cd3b6070362357ccf58bf399c
data/.bundler-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.16
@@ -3,9 +3,14 @@ version: 1
3
3
  update_configs:
4
4
  - package_manager: "ruby:bundler"
5
5
  directory: "/"
6
- update_schedule: "monthly"
6
+ update_schedule: "daily"
7
7
  commit_message:
8
8
  prefix: "[dependabot]"
9
9
  allowed_updates:
10
10
  - match:
11
- update_type: "all"
11
+ dependency_type: "all"
12
+ update_type: "security"
13
+ automerged_updates:
14
+ - match:
15
+ dependency_type: "all"
16
+ update_type: "security:patch"
@@ -1,7 +1,7 @@
1
- # automatically approve PRs submitted by Dependabot
1
+ # automatically approve PRs submitted by Dependabot or Renofidev
2
2
  # this will allow Dependabot to automatically merge dependency update PRs where CI passes
3
3
  # from: https://github.com/hmarr/auto-approve-action
4
- name: Auto approve Dependabot PRs
4
+ name: Auto approve dependency upgrades PRs
5
5
 
6
6
  on:
7
7
  pull_request
@@ -11,6 +11,6 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - uses: hmarr/auto-approve-action@v2.0.0
14
- if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
14
+ if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]' || github.actor == 'renofidev'
15
15
  with:
16
16
  github-token: "${{ secrets.GITHUB_TOKEN }}"
@@ -0,0 +1,19 @@
1
+ name: automerge
2
+ on:
3
+ pull_request_review:
4
+ types:
5
+ - submitted
6
+ check_suite:
7
+ types:
8
+ - completed
9
+ status: {}
10
+ jobs:
11
+ automerge:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: automerge
15
+ uses: "pascalgn/automerge-action@v0.12.0"
16
+ env:
17
+ GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
18
+ MERGE_METHOD: squash
19
+ MERGE_DELETE_BRANCH: true
data/Gemfile.lock CHANGED
@@ -1,28 +1,26 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- salesforce_streamer (2.1.0)
4
+ salesforce_streamer (2.4.0)
5
+ cookiejar (~> 0.3.0)
5
6
  dry-initializer (~> 3.0)
6
7
  faye (~> 1.4)
7
- restforce (>= 4.2, < 6.0)
8
+ restforce (~> 5.0)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
13
  addressable (2.7.0)
13
14
  public_suffix (>= 2.0.2, < 5.0)
14
- ast (2.4.1)
15
+ ast (2.4.2)
15
16
  byebug (11.1.3)
16
- codecov (0.2.3)
17
- colorize
18
- json
19
- simplecov
20
- colorize (0.8.1)
17
+ codecov (0.5.2)
18
+ simplecov (>= 0.15, < 0.22)
21
19
  cookiejar (0.3.3)
22
20
  diff-lcs (1.4.4)
23
- docile (1.3.2)
24
- dry-initializer (3.0.3)
25
- em-http-request (1.1.6)
21
+ docile (1.3.5)
22
+ dry-initializer (3.0.4)
23
+ em-http-request (1.1.7)
26
24
  addressable (>= 2.3.4)
27
25
  cookiejar (!= 0.3.1)
28
26
  em-socksify (>= 0.3)
@@ -31,8 +29,15 @@ GEM
31
29
  em-socksify (0.3.2)
32
30
  eventmachine (>= 1.0.0.beta.4)
33
31
  eventmachine (1.2.7)
34
- faraday (1.0.1)
32
+ faraday (1.4.1)
33
+ faraday-excon (~> 1.1)
34
+ faraday-net_http (~> 1.0)
35
+ faraday-net_http_persistent (~> 1.1)
35
36
  multipart-post (>= 1.2, < 3)
37
+ ruby2_keywords (>= 0.0.4)
38
+ faraday-excon (1.1.0)
39
+ faraday-net_http (1.0.1)
40
+ faraday-net_http_persistent (1.1.0)
36
41
  faraday_middleware (1.0.0)
37
42
  faraday (~> 1.0)
38
43
  faye (1.4.0)
@@ -48,64 +53,69 @@ GEM
48
53
  websocket-driver (>= 0.5.1)
49
54
  hashie (4.1.0)
50
55
  http_parser.rb (0.6.0)
51
- json (2.3.1)
52
- jwt (2.2.1)
56
+ jwt (2.2.3)
53
57
  multi_json (1.15.0)
54
58
  multipart-post (2.1.1)
55
- parallel (1.19.2)
56
- parser (2.7.1.4)
59
+ parallel (1.20.1)
60
+ parser (3.0.1.1)
57
61
  ast (~> 2.4.1)
58
- public_suffix (4.0.5)
62
+ public_suffix (4.0.6)
59
63
  rack (2.2.3)
60
64
  rainbow (3.0.0)
61
- rake (13.0.1)
62
- regexp_parser (1.7.1)
63
- restforce (5.0.1)
65
+ rake (13.0.3)
66
+ regexp_parser (2.1.1)
67
+ restforce (5.0.5)
64
68
  faraday (>= 0.9.0, <= 2.0)
65
69
  faraday_middleware (>= 0.8.8, <= 2.0)
66
70
  hashie (>= 1.2.0, < 5.0)
67
71
  jwt (>= 1.5.6)
68
- rexml (3.2.4)
69
- rspec (3.9.0)
70
- rspec-core (~> 3.9.0)
71
- rspec-expectations (~> 3.9.0)
72
- rspec-mocks (~> 3.9.0)
73
- rspec-core (3.9.2)
74
- rspec-support (~> 3.9.3)
75
- rspec-expectations (3.9.2)
72
+ rexml (3.2.5)
73
+ rspec (3.10.0)
74
+ rspec-core (~> 3.10.0)
75
+ rspec-expectations (~> 3.10.0)
76
+ rspec-mocks (~> 3.10.0)
77
+ rspec-core (3.10.1)
78
+ rspec-support (~> 3.10.0)
79
+ rspec-expectations (3.10.1)
76
80
  diff-lcs (>= 1.2.0, < 2.0)
77
- rspec-support (~> 3.9.0)
78
- rspec-mocks (3.9.1)
81
+ rspec-support (~> 3.10.0)
82
+ rspec-mocks (3.10.2)
79
83
  diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.9.0)
81
- rspec-support (3.9.3)
82
- rubocop (0.88.0)
84
+ rspec-support (~> 3.10.0)
85
+ rspec-support (3.10.2)
86
+ rubocop (1.14.0)
83
87
  parallel (~> 1.10)
84
- parser (>= 2.7.1.1)
88
+ parser (>= 3.0.0.0)
85
89
  rainbow (>= 2.2.2, < 4.0)
86
- regexp_parser (>= 1.7)
90
+ regexp_parser (>= 1.8, < 3.0)
87
91
  rexml
88
- rubocop-ast (>= 0.1.0, < 1.0)
92
+ rubocop-ast (>= 1.5.0, < 2.0)
89
93
  ruby-progressbar (~> 1.7)
90
- unicode-display_width (>= 1.4.0, < 2.0)
91
- rubocop-ast (0.3.0)
92
- parser (>= 2.7.1.4)
93
- rubocop-performance (1.7.1)
94
- rubocop (>= 0.82.0)
95
- rubocop-rspec (1.42.0)
96
- rubocop (>= 0.87.0)
97
- ruby-progressbar (1.10.1)
98
- simplecov (0.18.5)
94
+ unicode-display_width (>= 1.4.0, < 3.0)
95
+ rubocop-ast (1.5.0)
96
+ parser (>= 3.0.1.1)
97
+ rubocop-rake (0.5.1)
98
+ rubocop
99
+ rubocop-rspec (2.3.0)
100
+ rubocop (~> 1.0)
101
+ rubocop-ast (>= 1.1.0)
102
+ ruby-progressbar (1.11.0)
103
+ ruby2_keywords (0.0.4)
104
+ simplecov (0.21.2)
99
105
  docile (~> 1.1)
100
106
  simplecov-html (~> 0.11)
101
- simplecov-html (0.12.2)
102
- unicode-display_width (1.7.0)
107
+ simplecov_json_formatter (~> 0.1)
108
+ simplecov-html (0.12.3)
109
+ simplecov_json_formatter (0.1.3)
110
+ unicode-display_width (2.0.0)
103
111
  websocket-driver (0.7.3)
104
112
  websocket-extensions (>= 0.1.0)
105
113
  websocket-extensions (0.1.5)
106
114
 
107
115
  PLATFORMS
108
- ruby
116
+ x86_64-darwin-19
117
+ x86_64-darwin-20
118
+ x86_64-linux
109
119
 
110
120
  DEPENDENCIES
111
121
  byebug
@@ -113,9 +123,9 @@ DEPENDENCIES
113
123
  rake
114
124
  rspec
115
125
  rubocop
116
- rubocop-performance
126
+ rubocop-rake
117
127
  rubocop-rspec
118
128
  salesforce_streamer!
119
129
 
120
130
  BUNDLED WITH
121
- 2.1.4
131
+ 2.2.16
data/README.md CHANGED
@@ -91,6 +91,7 @@ SalesforceStreamer.configure do |config|
91
91
  config.exception_adapter = proc { |e| puts e }
92
92
  config.replay_adapter = MyReplayAdapter
93
93
  config.use_middleware AfterMessageReceived
94
+ config.use_faye_extension ErrorLoggingExtension.new
94
95
  config.manage_topics = true
95
96
  end
96
97
  ```
@@ -173,6 +174,32 @@ end
173
174
 
174
175
  This adapter will be used directly by `Restforce::ReplayExtension`.
175
176
 
177
+ ### Use Faye Extension
178
+
179
+ The `config.use_faye_extension` should be given an object that responds to
180
+ `.incoming(message, callback)` or `.outgoing(message, callback)` or both. Find
181
+ out more about extensions from
182
+ [Faye](https://github.com/faye/faye/blob/master/spec/ruby/server/extensions_spec.rb)
183
+ specs.
184
+
185
+ Any configured extensions are added to the Faye client used by the Restforce
186
+ client when starting up the server. If the extension responds to `.server=` then
187
+ the instance of `SalesforceStreamer::Server` is assigned. This may be convenient
188
+ to restart the server subscriptions if an error requires a reset.
189
+
190
+ ```ruby
191
+ class MyRestartFayeExtension
192
+ attr_accessor :server
193
+
194
+ def incoming(message, callback)
195
+ callback.call(message).tap |message|
196
+ server.restart if message['error'] == 'tragic'
197
+ end
198
+ end
199
+ end
200
+
201
+ SalesforceStreamer.config.use_faye_extension MyRestartFayeExtension.new
202
+ ```
176
203
  ## Development
177
204
 
178
205
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,27 +1,69 @@
1
+ require 'cookiejar/cookie_validation'
2
+
1
3
  # Original source code at
2
4
  # https://github.com/dwaite/cookiejar/blob/master/lib/cookiejar/cookie_validation.rb
3
- # Re-opening the CookieValidation module to rewrite the domains_match method to
4
- # skip the validation of domains. Open issue at
5
- # https://github.com/restforce/restforce/issues/120
6
- module CoreExtensions
7
- module CookieJar
8
- module CookieValidation
9
- def self.extended(base)
10
- base.class_eval do
11
- def self.domains_match(tested_domain, base_domain)
12
- return true if tested_domain[-15..].eql?('.salesforce.com')
5
+ module CookieJar
6
+ module CookieValidation
7
+ # Re-opening the CookieValidation module to rewrite the domains_match method to
8
+ # skip the validation of domains. Open issue at
9
+ # https://github.com/restforce/restforce/issues/120
10
+ def self.domains_match(tested_domain, base_domain)
11
+ return true if tested_domain[-15..].eql?('.salesforce.com')
12
+
13
+ # original implementation
14
+ base = effective_host base_domain
15
+ search_domains = compute_search_domains_for_host base
16
+ search_domains.find do |domain|
17
+ domain == tested_domain
18
+ end
19
+ end
13
20
 
14
- # original implementation
15
- base = effective_host base_domain
16
- search_domains = compute_search_domains_for_host base
17
- search_domains.find do |domain|
18
- domain == tested_domain
21
+ # Implements https://github.com/dwaite/cookiejar/commit/adb79c0a14c2b347c5289e79379a1acfe34bf388
22
+ # which is not part of the cookiejar gem yet and is required to prevent
23
+ # Unknown cookie parameter 'samesite' (CookieJar::InvalidCookieError)
24
+ def self.parse_set_cookie(set_cookie_value)
25
+ args = {}
26
+ params = set_cookie_value.split(/;\s*/)
27
+
28
+ first = true
29
+ params.each do |param|
30
+ result = PARAM1.match param
31
+ unless result
32
+ fail InvalidCookieError,
33
+ "Invalid cookie parameter in cookie '#{set_cookie_value}'"
34
+ end
35
+ key = result[1].downcase.to_sym
36
+ keyvalue = result[2]
37
+ if first
38
+ args[:name] = result[1]
39
+ args[:value] = keyvalue
40
+ first = false
41
+ else
42
+ case key
43
+ when :expires
44
+ begin
45
+ args[:expires_at] = Time.parse keyvalue
46
+ rescue ArgumentError
47
+ raise unless $ERROR_INFO.message == 'time out of range'
48
+ args[:expires_at] = Time.at(0x7FFFFFFF)
19
49
  end
50
+ when :"max-age"
51
+ args[:max_age] = keyvalue.to_i
52
+ when :domain, :path
53
+ args[key] = keyvalue
54
+ when :secure
55
+ args[:secure] = true
56
+ when :httponly
57
+ args[:http_only] = true
58
+ when :samesite
59
+ args[:samesite] = keyvalue.downcase
60
+ else
61
+ fail InvalidCookieError, "Unknown cookie parameter '#{key}'"
20
62
  end
21
63
  end
22
64
  end
65
+ args[:version] = 0
66
+ args
23
67
  end
24
68
  end
25
69
  end
26
-
27
- CookieJar::CookieValidation.extend(CoreExtensions::CookieJar::CookieValidation)
@@ -3,7 +3,7 @@ module SalesforceStreamer
3
3
  class Configuration
4
4
  attr_accessor :environment, :logger, :require_path, :config_file,
5
5
  :manage_topics, :exception_adapter, :replay_adapter
6
- attr_reader :middleware
6
+ attr_reader :middleware, :faye_extensions
7
7
 
8
8
  class << self
9
9
  attr_writer :instance
@@ -26,6 +26,7 @@ module SalesforceStreamer
26
26
  @config_file = './config/streamer.yml'
27
27
  @require_path = './config/environment'
28
28
  @middleware = []
29
+ @faye_extensions = [ReplayIdErrorExtension.new]
29
30
  end
30
31
 
31
32
  def manage_topics?
@@ -37,6 +38,11 @@ module SalesforceStreamer
37
38
  @middleware << [klass, args, block]
38
39
  end
39
40
 
41
+ # adds a Faye extension
42
+ def use_faye_extension(extension)
43
+ @faye_extensions << extension
44
+ end
45
+
40
46
  # returns a ready to use chain of middleware
41
47
  def middleware_runner(last_handler)
42
48
  @middleware.reduce(last_handler) do |next_handler, current_handler|
@@ -4,11 +4,11 @@ module SalesforceStreamer
4
4
  extend Dry::Initializer
5
5
 
6
6
  option :name
7
- option :query, proc { |str| str.gsub(/\s+/, ' ') }
8
- option :handler, proc { |str| prepare_handler_proc Object.const_get(str) }
9
- option :replay, proc(&:to_i), default: proc { -1 }
10
- option :api_version, proc(&:to_s), default: proc { '49.0' }
11
- option :notify_for_fields, default: proc { 'Referenced' }
7
+ option :query, ->(v) { v.gsub(/\s+/, ' ') }
8
+ option :handler, ->(v) { prepare_handler_proc(Object.const_get(v)) }
9
+ option :replay, ->(v) { v.to_i }, default: -> { -1 }
10
+ option :api_version, proc(&:to_s), default: -> { '49.0' }
11
+ option :notify_for_fields, default: -> { 'Referenced' }
12
12
  option :id, optional: true
13
13
  option :description, optional: true
14
14
 
@@ -1,15 +1,23 @@
1
1
  module SalesforceStreamer
2
2
  class Server
3
3
  attr_writer :push_topics
4
+ attr_reader :client
4
5
 
5
6
  def initialize(push_topics: [])
6
7
  @push_topics = push_topics
7
8
  end
8
9
 
9
10
  def run
10
- Log.info 'Starting Server'
11
+ Log.info 'Starting server'
11
12
  catch_signals
12
- start_em
13
+ reset_client
14
+ EM.run { subscribe }
15
+ end
16
+
17
+ def restart
18
+ Log.info 'Restarting server'
19
+ reset_client
20
+ EM.next_tick { subscribe }
13
21
  end
14
22
 
15
23
  private
@@ -23,21 +31,21 @@ module SalesforceStreamer
23
31
  end
24
32
  end
25
33
 
26
- def client
27
- return @client if @client
34
+ def reset_client
28
35
  @client = Restforce.new
29
- @client.authenticate!
30
- @client.faye.add_extension ReplayIdErrorExtension.new
31
- @client
36
+ client.authenticate!
37
+ Configuration.instance.faye_extensions.each do |extension|
38
+ Log.debug %(adding Faye extension #{extension})
39
+ extension.server = self if extension.respond_to?(:server=)
40
+ client.faye.add_extension extension
41
+ end
32
42
  end
33
43
 
34
- def start_em
35
- EM.run do
36
- @push_topics.map do |topic|
37
- client.subscribe topic.name, replay: Configuration.instance.replay_adapter do |message|
38
- Log.info "Message #{message.dig('event', 'replayId')} received from topic #{topic.name}"
39
- topic.handle message
40
- end
44
+ def subscribe
45
+ @push_topics.each do |topic|
46
+ client.subscribe topic.name, replay: Configuration.instance.replay_adapter do |message|
47
+ Log.info "Message #{message.dig('event', 'replayId')} received from topic #{topic.name}"
48
+ topic.handle message
41
49
  end
42
50
  end
43
51
  end
@@ -1,3 +1,3 @@
1
1
  module SalesforceStreamer
2
- VERSION = '2.1.0'.freeze
2
+ VERSION = '2.4.0'.freeze
3
3
  end
@@ -25,15 +25,16 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.required_ruby_version = '>= 2.6'
27
27
 
28
+ spec.add_dependency 'cookiejar', '~> 0.3.0'
28
29
  spec.add_dependency 'dry-initializer', '~> 3.0'
29
30
  spec.add_dependency 'faye', '~> 1.4'
30
- spec.add_dependency 'restforce', '>= 4.2', '< 6.0'
31
+ spec.add_dependency 'restforce', '~> 5.0'
31
32
 
32
33
  spec.add_development_dependency 'byebug'
33
34
  spec.add_development_dependency 'codecov'
34
35
  spec.add_development_dependency 'rake'
35
36
  spec.add_development_dependency 'rspec'
36
37
  spec.add_development_dependency 'rubocop'
37
- spec.add_development_dependency 'rubocop-performance'
38
+ spec.add_development_dependency 'rubocop-rake'
38
39
  spec.add_development_dependency 'rubocop-rspec'
39
40
  end
metadata CHANGED
@@ -1,16 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: salesforce_streamer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Serok
8
8
  - RenoFi Engineering Team
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-08-18 00:00:00.000000000 Z
12
+ date: 2021-05-09 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: cookiejar
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.3.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.3.0
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: dry-initializer
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -43,22 +57,16 @@ dependencies:
43
57
  name: restforce
44
58
  requirement: !ruby/object:Gem::Requirement
45
59
  requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '4.2'
49
- - - "<"
60
+ - - "~>"
50
61
  - !ruby/object:Gem::Version
51
- version: '6.0'
62
+ version: '5.0'
52
63
  type: :runtime
53
64
  prerelease: false
54
65
  version_requirements: !ruby/object:Gem::Requirement
55
66
  requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- version: '4.2'
59
- - - "<"
67
+ - - "~>"
60
68
  - !ruby/object:Gem::Version
61
- version: '6.0'
69
+ version: '5.0'
62
70
  - !ruby/object:Gem::Dependency
63
71
  name: byebug
64
72
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +138,7 @@ dependencies:
130
138
  - !ruby/object:Gem::Version
131
139
  version: '0'
132
140
  - !ruby/object:Gem::Dependency
133
- name: rubocop-performance
141
+ name: rubocop-rake
134
142
  requirement: !ruby/object:Gem::Requirement
135
143
  requirements:
136
144
  - - ">="
@@ -157,7 +165,7 @@ dependencies:
157
165
  - - ">="
158
166
  - !ruby/object:Gem::Version
159
167
  version: '0'
160
- description:
168
+ description:
161
169
  email:
162
170
  - scott@renofi.com
163
171
  - engineering@renofi.com
@@ -166,12 +174,14 @@ executables:
166
174
  extensions: []
167
175
  extra_rdoc_files: []
168
176
  files:
177
+ - ".bundler-version"
169
178
  - ".dependabot/config.yml"
170
179
  - ".github/ISSUE_TEMPLATE/bug_report.md"
171
180
  - ".github/ISSUE_TEMPLATE/config.yml"
172
181
  - ".github/ISSUE_TEMPLATE/story.md"
173
182
  - ".github/PULL_REQUEST_TEMPLATE.md"
174
183
  - ".github/workflows/auto-approve.yml"
184
+ - ".github/workflows/auto-merge.yml"
175
185
  - ".gitignore"
176
186
  - ".rspec"
177
187
  - ".travis.yml"
@@ -203,7 +213,7 @@ metadata:
203
213
  homepage_uri: https://github.com/renofi/salesforce_streamer
204
214
  source_code_uri: https://github.com/renofi/salesforce_streamer
205
215
  documentation_uri: https://www.rubydoc.info/gems/salesforce_streamer
206
- post_install_message:
216
+ post_install_message:
207
217
  rdoc_options: []
208
218
  require_paths:
209
219
  - lib
@@ -218,8 +228,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
228
  - !ruby/object:Gem::Version
219
229
  version: '0'
220
230
  requirements: []
221
- rubygems_version: 3.1.2
222
- signing_key:
231
+ rubygems_version: 3.2.16
232
+ signing_key:
223
233
  specification_version: 4
224
234
  summary: A wrapper around the Restforce Streaming API with a built-in PushTopic manager.
225
235
  test_files: []