gitlab-mail_room 0.0.24 → 0.0.25
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 +4 -4
- data/.github/workflows/ci.yml +2 -2
- data/.gitlab-ci.yml +3 -4
- data/.ruby-version +1 -1
- data/.tool-versions +1 -0
- data/CHANGELOG.md +8 -0
- data/README.md +0 -10
- data/lib/mail_room/arbitration/redis.rb +6 -2
- data/lib/mail_room/delivery/postback.rb +13 -1
- data/lib/mail_room/delivery/sidekiq.rb +6 -2
- data/lib/mail_room/version.rb +1 -1
- data/mail_room.gemspec +3 -3
- data/spec/lib/arbitration/redis_spec.rb +31 -20
- data/spec/lib/delivery/sidekiq_spec.rb +36 -26
- data/spec/lib/health_check_spec.rb +3 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b38092bd49b7554fc1f14f45b250737db77a58ce851e78ac9c3eb89c17424881
|
4
|
+
data.tar.gz: 04a4a167905034fcab7ee3c095991103b2bb5f92ff414c0cb6ca360017ae6f3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d09917cbc928d36ea820d06957ad9bc3d47726017abdb307dc734e2b6ef4203dc95866e0821821b461bc86384c7670ad187b3cae0d31e2294501a762d4a9ea9
|
7
|
+
data.tar.gz: acea6980fe10c44333325ffd57cd78007302abf5d58e8a11c12e70a0b0aaf61bcea627b14b31bc24dcfe68f938d50a15ba91e60130aeeafbe7fb079b38dddfad
|
data/.github/workflows/ci.yml
CHANGED
@@ -31,7 +31,7 @@ jobs:
|
|
31
31
|
- '3.0'
|
32
32
|
- '2.7'
|
33
33
|
steps:
|
34
|
-
- uses: actions/checkout@
|
34
|
+
- uses: actions/checkout@v4
|
35
35
|
- name: Set up Ruby ${{ matrix.ruby-version }}
|
36
36
|
uses: ruby/setup-ruby@v1
|
37
37
|
with:
|
@@ -43,7 +43,7 @@ jobs:
|
|
43
43
|
rubocop:
|
44
44
|
runs-on: ubuntu-latest
|
45
45
|
steps:
|
46
|
-
- uses: actions/checkout@
|
46
|
+
- uses: actions/checkout@v4
|
47
47
|
- name: Set up Ruby ${{ matrix.ruby-version }}
|
48
48
|
uses: ruby/setup-ruby@v1
|
49
49
|
with:
|
data/.gitlab-ci.yml
CHANGED
@@ -10,11 +10,10 @@ services:
|
|
10
10
|
paths:
|
11
11
|
- vendor/ruby
|
12
12
|
variables:
|
13
|
-
REDIS_URL: redis://redis:6379
|
13
|
+
REDIS_URL: redis://redis:6379
|
14
14
|
before_script:
|
15
15
|
- apt update && apt install -y libicu-dev
|
16
16
|
- ruby -v # Print out ruby version for debugging
|
17
|
-
- gem install bundler --no-document # Bundler is not installed with the image
|
18
17
|
- bundle config set --local path 'vendor'
|
19
18
|
- bundle install -j $(nproc)
|
20
19
|
script:
|
@@ -23,8 +22,8 @@ services:
|
|
23
22
|
rspec:
|
24
23
|
parallel:
|
25
24
|
matrix:
|
26
|
-
- RUBY_VERSION: [ "
|
25
|
+
- RUBY_VERSION: [ "3.0", "3.1", "3.2" ]
|
27
26
|
<<: *test
|
28
27
|
|
29
28
|
include:
|
30
|
-
- template: Security/Dependency-Scanning.gitlab-ci.yml
|
29
|
+
- template: Security/Dependency-Scanning.gitlab-ci.yml
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2
|
1
|
+
3.2
|
data/.tool-versions
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby 3.2.2
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## mail_room 0.11.1 ##
|
2
|
+
|
3
|
+
https://github.com/tpitale/mail_room/compare/v0.11.0...v0.11.1
|
4
|
+
|
5
|
+
## mail_room 0.11.0 ##
|
6
|
+
|
7
|
+
https://github.com/tpitale/mail_room/compare/v0.10.1...v0.11.0
|
8
|
+
|
1
9
|
## mail_room 0.10.1 ##
|
2
10
|
|
3
11
|
* Fix db attribute on redis URL PR#130 - @jarkaK
|
data/README.md
CHANGED
@@ -489,13 +489,3 @@ respectively and MailRoom will log there.
|
|
489
489
|
4. Push to the branch (`git push origin my-new-feature`)
|
490
490
|
5. Create new Pull Request
|
491
491
|
6. If accepted, ask for commit rights
|
492
|
-
|
493
|
-
## TODO ##
|
494
|
-
|
495
|
-
1. specs, this is just a (working) proof of concept √
|
496
|
-
2. finish code for POSTing to callback with auth √
|
497
|
-
3. accept mailbox configuration for one account directly on the commandline; or ask for it
|
498
|
-
4. add example rails endpoint, with auth examples
|
499
|
-
5. add example configs for upstart/init.d √
|
500
|
-
6. log to stdout √
|
501
|
-
7. add a development mode that opens in letter_opener by ryanb √
|
@@ -3,11 +3,13 @@ require "redis"
|
|
3
3
|
module MailRoom
|
4
4
|
module Arbitration
|
5
5
|
class Redis
|
6
|
-
Options = Struct.new(:redis_url, :namespace, :sentinels) do
|
6
|
+
Options = Struct.new(:redis_url, :namespace, :sentinels, :sentinel_username, :sentinel_password) do
|
7
7
|
def initialize(mailbox)
|
8
8
|
redis_url = mailbox.arbitration_options[:redis_url] || "redis://localhost:6379"
|
9
9
|
namespace = mailbox.arbitration_options[:namespace]
|
10
10
|
sentinels = mailbox.arbitration_options[:sentinels]
|
11
|
+
sentinel_username = mailbox.arbitration_options[:sentinel_username]
|
12
|
+
sentinel_password = mailbox.arbitration_options[:sentinel_password]
|
11
13
|
|
12
14
|
if namespace
|
13
15
|
warn <<~MSG
|
@@ -16,7 +18,7 @@ module MailRoom
|
|
16
18
|
MSG
|
17
19
|
end
|
18
20
|
|
19
|
-
super(redis_url, namespace, sentinels)
|
21
|
+
super(redis_url, namespace, sentinels, sentinel_username, sentinel_password)
|
20
22
|
end
|
21
23
|
end
|
22
24
|
|
@@ -48,6 +50,8 @@ module MailRoom
|
|
48
50
|
sentinels = options.sentinels
|
49
51
|
redis_options = { url: options.redis_url }
|
50
52
|
redis_options[:sentinels] = sentinels if sentinels
|
53
|
+
redis_options[:sentinel_username] = options.sentinel_username if options.sentinel_username
|
54
|
+
redis_options[:sentinel_password] = options.sentinel_password if options.sentinel_password
|
51
55
|
|
52
56
|
redis = ::Redis.new(redis_options)
|
53
57
|
|
@@ -71,7 +71,7 @@ module MailRoom
|
|
71
71
|
connection = Faraday.new
|
72
72
|
|
73
73
|
if @delivery_options.token_auth?
|
74
|
-
connection
|
74
|
+
config_token_auth(connection)
|
75
75
|
elsif @delivery_options.basic_auth?
|
76
76
|
config_basic_auth(connection)
|
77
77
|
end
|
@@ -101,6 +101,18 @@ module MailRoom
|
|
101
101
|
request.headers[@delivery_options.jwt.header] = @delivery_options.jwt.token
|
102
102
|
end
|
103
103
|
|
104
|
+
def config_token_auth(connection)
|
105
|
+
# connection.token_auth was removed in Faraday v2 in favor of connection.request(:authorization, 'Token', token)
|
106
|
+
if defined?(connection.token_auth)
|
107
|
+
connection.token_auth @delivery_options.token
|
108
|
+
else
|
109
|
+
connection.request(
|
110
|
+
:authorization, 'Token',
|
111
|
+
@delivery_options.token
|
112
|
+
)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
104
116
|
def config_basic_auth(connection)
|
105
117
|
if defined?(connection.basic_auth)
|
106
118
|
connection.basic_auth(
|
@@ -8,12 +8,14 @@ module MailRoom
|
|
8
8
|
# Sidekiq Delivery method
|
9
9
|
# @author Douwe Maan
|
10
10
|
class Sidekiq
|
11
|
-
Options = Struct.new(:redis_url, :namespace, :sentinels, :queue, :worker, :logger, :redis_db) do
|
11
|
+
Options = Struct.new(:redis_url, :namespace, :sentinels, :queue, :worker, :logger, :redis_db, :sentinel_username, :sentinel_password) do
|
12
12
|
def initialize(mailbox)
|
13
13
|
redis_url = mailbox.delivery_options[:redis_url] || "redis://localhost:6379"
|
14
14
|
redis_db = mailbox.delivery_options[:redis_db] || 0
|
15
15
|
namespace = mailbox.delivery_options[:namespace]
|
16
16
|
sentinels = mailbox.delivery_options[:sentinels]
|
17
|
+
sentinel_username = mailbox.delivery_options[:sentinel_username]
|
18
|
+
sentinel_password = mailbox.delivery_options[:sentinel_password]
|
17
19
|
queue = mailbox.delivery_options[:queue] || "default"
|
18
20
|
worker = mailbox.delivery_options[:worker]
|
19
21
|
logger = mailbox.logger
|
@@ -25,7 +27,7 @@ module MailRoom
|
|
25
27
|
MSG
|
26
28
|
end
|
27
29
|
|
28
|
-
super(redis_url, namespace, sentinels, queue, worker, logger, redis_db)
|
30
|
+
super(redis_url, namespace, sentinels, queue, worker, logger, redis_db, sentinel_username, sentinel_password)
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
@@ -55,6 +57,8 @@ module MailRoom
|
|
55
57
|
sentinels = options.sentinels
|
56
58
|
redis_options = { url: options.redis_url, db: options.redis_db }
|
57
59
|
redis_options[:sentinels] = sentinels if sentinels
|
60
|
+
redis_options[:sentinel_username] = options.sentinel_username if options.sentinel_username
|
61
|
+
redis_options[:sentinel_password] = options.sentinel_password if options.sentinel_password
|
58
62
|
|
59
63
|
redis = ::Redis.new(redis_options)
|
60
64
|
|
data/lib/mail_room/version.rb
CHANGED
data/mail_room.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ["tpitale@gmail.com"]
|
11
11
|
gem.description = %q{mail_room will proxy email (gmail) from IMAP to a delivery method}
|
12
12
|
gem.summary = %q{mail_room will proxy email (gmail) from IMAP to a callback URL, logger, or letter_opener}
|
13
|
-
gem.homepage = "
|
13
|
+
gem.homepage = "https://gitlab.com/gitlab-org/ruby/gems/gitlab-mail_room"
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
@@ -20,13 +20,13 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.add_dependency "net-imap", ">= 0.2.1"
|
21
21
|
gem.add_dependency "oauth2", [">= 1.4.4", "< 3"]
|
22
22
|
gem.add_dependency "jwt", ">= 2.0"
|
23
|
-
gem.add_dependency "redis", [">=
|
23
|
+
gem.add_dependency "redis", [">= 5", "< 6"]
|
24
24
|
gem.add_dependency "redis-namespace", '>= 1.8.2'
|
25
25
|
|
26
26
|
gem.add_development_dependency "rake"
|
27
27
|
gem.add_development_dependency "rspec", "~> 3.9"
|
28
28
|
gem.add_development_dependency "rubocop", "~> 1.11"
|
29
|
-
gem.add_development_dependency "mocha", "~>
|
29
|
+
gem.add_development_dependency "mocha", "~> 2.0"
|
30
30
|
gem.add_development_dependency "simplecov"
|
31
31
|
gem.add_development_dependency "webrick", "~> 1.6"
|
32
32
|
|
@@ -11,21 +11,12 @@ describe MailRoom::Arbitration::Redis do
|
|
11
11
|
)
|
12
12
|
}
|
13
13
|
let(:options) { described_class::Options.new(mailbox) }
|
14
|
-
let(:redis5) { Gem::Version.new(Redis::VERSION) >= Gem::Version.new('5.0') }
|
15
14
|
subject { described_class.new(options) }
|
16
15
|
|
17
16
|
# Private, but we don't care.
|
18
17
|
let(:redis) { subject.send(:client) }
|
19
18
|
let(:raw_client) { redis._client }
|
20
19
|
|
21
|
-
let(:server_url) do
|
22
|
-
if redis5
|
23
|
-
raw_client.config.server_url
|
24
|
-
else
|
25
|
-
raw_client.options[:url]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
20
|
describe '#deliver?' do
|
30
21
|
context "when called the first time" do
|
31
22
|
after do
|
@@ -89,7 +80,7 @@ describe MailRoom::Arbitration::Redis do
|
|
89
80
|
|
90
81
|
context 'redis client connection params' do
|
91
82
|
context 'when only url is present' do
|
92
|
-
let(:redis_url) { ENV.fetch('REDIS_URL', 'redis://localhost:6379
|
83
|
+
let(:redis_url) { ENV.fetch('REDIS_URL', 'redis://localhost:6379') }
|
93
84
|
let(:mailbox) {
|
94
85
|
build_mailbox(
|
95
86
|
arbitration_options: {
|
@@ -105,7 +96,7 @@ describe MailRoom::Arbitration::Redis do
|
|
105
96
|
it 'client has same specified url' do
|
106
97
|
subject.deliver?(123)
|
107
98
|
|
108
|
-
expect(server_url).to eq redis_url
|
99
|
+
expect(raw_client.config.server_url).to eq redis_url
|
109
100
|
end
|
110
101
|
|
111
102
|
it 'client is a instance of Redis class' do
|
@@ -144,17 +135,37 @@ describe MailRoom::Arbitration::Redis do
|
|
144
135
|
)
|
145
136
|
}
|
146
137
|
|
138
|
+
before { ::RedisClient::SentinelConfig.any_instance.stubs(:resolve_master).returns(RedisClient::Config.new(**sentinels.first)) }
|
139
|
+
|
147
140
|
it 'client has same specified sentinel params' do
|
148
|
-
|
141
|
+
expect(raw_client.config).to be_a RedisClient::SentinelConfig
|
142
|
+
expect(raw_client.config.name).to eq('sentinel-master')
|
143
|
+
expect(raw_client.config.host).to eq('10.0.0.1')
|
144
|
+
expect(raw_client.config.password).to eq('mypassword')
|
145
|
+
expect(raw_client.config.sentinels.map(&:server_url)).to eq(["redis://10.0.0.1:26379"])
|
146
|
+
end
|
147
|
+
|
148
|
+
context 'with separate Sentinel username and password' do
|
149
|
+
let(:sentinel_username) { 'my-sentinel-user' }
|
150
|
+
let(:sentinel_password) { 'my-sentinel-pass' }
|
151
|
+
let(:mailbox) {
|
152
|
+
build_mailbox(
|
153
|
+
arbitration_options: {
|
154
|
+
redis_url: redis_url,
|
155
|
+
sentinels: sentinels,
|
156
|
+
sentinel_username: sentinel_username,
|
157
|
+
sentinel_password: sentinel_password
|
158
|
+
}
|
159
|
+
)
|
160
|
+
}
|
161
|
+
|
162
|
+
it 'client uses Sentinel username and password' do
|
163
|
+
expect(raw_client.config).to be_a RedisClient::SentinelConfig
|
149
164
|
expect(raw_client.config.password).to eq('mypassword')
|
150
|
-
|
151
|
-
|
152
|
-
expect(
|
153
|
-
expect(
|
154
|
-
else
|
155
|
-
expect(raw_client.options[:host]).to eq('sentinel-master')
|
156
|
-
expect(raw_client.options[:password]).to eq('mypassword')
|
157
|
-
expect(raw_client.options[:sentinels]).to eq(sentinels)
|
165
|
+
|
166
|
+
sentinels = raw_client.config.sentinels
|
167
|
+
expect(sentinels.map(&:username).uniq).to eq([sentinel_username])
|
168
|
+
expect(sentinels.map(&:password).uniq).to eq([sentinel_password])
|
158
169
|
end
|
159
170
|
end
|
160
171
|
end
|
@@ -6,17 +6,9 @@ describe MailRoom::Delivery::Sidekiq do
|
|
6
6
|
let(:redis) { subject.send(:client) }
|
7
7
|
let(:raw_client) { redis._client }
|
8
8
|
let(:options) { MailRoom::Delivery::Sidekiq::Options.new(mailbox) }
|
9
|
-
let(:redis5) { Gem::Version.new(Redis::VERSION) >= Gem::Version.new('5.0') }
|
10
|
-
let(:server_url) do
|
11
|
-
if redis5
|
12
|
-
raw_client.config.server_url
|
13
|
-
else
|
14
|
-
raw_client.options[:url]
|
15
|
-
end
|
16
|
-
end
|
17
9
|
|
18
10
|
describe '#options' do
|
19
|
-
let(:redis_url) { 'redis://localhost' }
|
11
|
+
let(:redis_url) { 'redis://localhost:6379' }
|
20
12
|
let(:redis_options) { { redis_url: redis_url } }
|
21
13
|
|
22
14
|
context 'when only redis_url is specified' do
|
@@ -28,10 +20,8 @@ describe MailRoom::Delivery::Sidekiq do
|
|
28
20
|
}
|
29
21
|
|
30
22
|
context 'with simple redis url' do
|
31
|
-
let(:expected_url) { redis5 ? "#{redis_url}:6379/0" : redis_url }
|
32
|
-
|
33
23
|
it 'client has same specified redis_url' do
|
34
|
-
expect(raw_client.server_url).to eq(
|
24
|
+
expect(raw_client.config.server_url).to eq(redis_url)
|
35
25
|
end
|
36
26
|
|
37
27
|
it 'client is a instance of RedisNamespace class' do
|
@@ -45,19 +35,17 @@ describe MailRoom::Delivery::Sidekiq do
|
|
45
35
|
end
|
46
36
|
|
47
37
|
context 'with redis_db specified in options' do
|
48
|
-
let(:expected_url) { redis5 ? "#{redis_url}:6379/4" : redis_url }
|
49
|
-
|
50
38
|
before do
|
51
39
|
redis_options[:redis_db] = 4
|
52
40
|
end
|
53
41
|
|
54
42
|
it 'client has correct redis_url' do
|
55
|
-
expect(raw_client.server_url).to eq(
|
43
|
+
expect(raw_client.config.server_url).to eq("#{redis_url}/4")
|
56
44
|
end
|
57
45
|
|
58
46
|
it 'connection has correct values' do
|
59
|
-
expect(
|
60
|
-
expect(
|
47
|
+
expect(raw_client.config.host).to eq('localhost')
|
48
|
+
expect(raw_client.config.db).to eq(4)
|
61
49
|
end
|
62
50
|
end
|
63
51
|
end
|
@@ -96,17 +84,39 @@ describe MailRoom::Delivery::Sidekiq do
|
|
96
84
|
)
|
97
85
|
}
|
98
86
|
|
87
|
+
before { ::RedisClient::SentinelConfig.any_instance.stubs(:resolve_master).returns(RedisClient::Config.new(**sentinels.first)) }
|
88
|
+
|
99
89
|
it 'client has same specified sentinel params' do
|
100
|
-
|
90
|
+
expect(raw_client.config).to be_a RedisClient::SentinelConfig
|
91
|
+
expect(raw_client.config.host).to eq('10.0.0.1')
|
92
|
+
expect(raw_client.config.name).to eq('sentinel-master')
|
93
|
+
expect(raw_client.config.password).to eq('mypassword')
|
94
|
+
expect(raw_client.config.sentinels.map(&:server_url)).to eq(["redis://10.0.0.1:26379"])
|
95
|
+
end
|
96
|
+
|
97
|
+
context 'with separate Sentinel username and password' do
|
98
|
+
let(:sentinel_username) { 'my-sentinel-user' }
|
99
|
+
let(:sentinel_password) { 'my-sentinel-pass' }
|
100
|
+
let(:mailbox) {
|
101
|
+
build_mailbox(
|
102
|
+
delivery_method: :sidekiq,
|
103
|
+
delivery_options: {
|
104
|
+
redis_url: redis_url,
|
105
|
+
sentinels: sentinels,
|
106
|
+
sentinel_username: sentinel_username,
|
107
|
+
sentinel_password: sentinel_password
|
108
|
+
}
|
109
|
+
)
|
110
|
+
}
|
111
|
+
|
112
|
+
it 'client uses Sentinel username and password' do
|
113
|
+
expect(raw_client.config).to be_a RedisClient::SentinelConfig
|
101
114
|
expect(raw_client.config.password).to eq('mypassword')
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
expect(
|
106
|
-
|
107
|
-
expect(raw_client.options[:host]).to eq('sentinel-master')
|
108
|
-
expect(raw_client.options[:password]).to eq('mypassword')
|
109
|
-
expect(raw_client.options[:sentinels]).to eq(sentinels)
|
115
|
+
|
116
|
+
sentinels = raw_client.config.sentinels
|
117
|
+
|
118
|
+
expect(sentinels.map(&:username).uniq).to eq([sentinel_username])
|
119
|
+
expect(sentinels.map(&:password).uniq).to eq([sentinel_password])
|
110
120
|
end
|
111
121
|
end
|
112
122
|
end
|
@@ -34,12 +34,14 @@ describe MailRoom::HealthCheck do
|
|
34
34
|
|
35
35
|
describe '#run' do
|
36
36
|
it 'sets running to true' do
|
37
|
-
server = stub(start: true)
|
37
|
+
server = stub(start: true, shutdown: true)
|
38
38
|
subject.stubs(:create_server).returns(server)
|
39
39
|
|
40
40
|
subject.run
|
41
41
|
|
42
42
|
expect(subject.running).to be true
|
43
|
+
|
44
|
+
subject.quit
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab-mail_room
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Pitale
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-imap
|
@@ -64,7 +64,7 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '5'
|
68
68
|
- - "<"
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '6'
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: '
|
77
|
+
version: '5'
|
78
78
|
- - "<"
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '6'
|
@@ -140,14 +140,14 @@ dependencies:
|
|
140
140
|
requirements:
|
141
141
|
- - "~>"
|
142
142
|
- !ruby/object:Gem::Version
|
143
|
-
version: '
|
143
|
+
version: '2.0'
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
146
|
version_requirements: !ruby/object:Gem::Requirement
|
147
147
|
requirements:
|
148
148
|
- - "~>"
|
149
149
|
- !ruby/object:Gem::Version
|
150
|
-
version: '
|
150
|
+
version: '2.0'
|
151
151
|
- !ruby/object:Gem::Dependency
|
152
152
|
name: simplecov
|
153
153
|
requirement: !ruby/object:Gem::Requirement
|
@@ -277,6 +277,7 @@ files:
|
|
277
277
|
- ".rubocop.yml"
|
278
278
|
- ".rubocop_todo.yml"
|
279
279
|
- ".ruby-version"
|
280
|
+
- ".tool-versions"
|
280
281
|
- CHANGELOG.md
|
281
282
|
- CODE_OF_CONDUCT.md
|
282
283
|
- CONTRIBUTING.md
|
@@ -337,7 +338,7 @@ files:
|
|
337
338
|
- spec/lib/message_spec.rb
|
338
339
|
- spec/lib/microsoft_graph/connection_spec.rb
|
339
340
|
- spec/spec_helper.rb
|
340
|
-
homepage:
|
341
|
+
homepage: https://gitlab.com/gitlab-org/ruby/gems/gitlab-mail_room
|
341
342
|
licenses: []
|
342
343
|
metadata: {}
|
343
344
|
post_install_message:
|
@@ -355,7 +356,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
355
356
|
- !ruby/object:Gem::Version
|
356
357
|
version: '0'
|
357
358
|
requirements: []
|
358
|
-
rubygems_version: 3.4
|
359
|
+
rubygems_version: 3.5.4
|
359
360
|
signing_key:
|
360
361
|
specification_version: 4
|
361
362
|
summary: mail_room will proxy email (gmail) from IMAP to a callback URL, logger, or
|