gitlab-mail_room 0.1.0 → 1.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 +4 -4
- data/.github/workflows/ci.yml +3 -2
- data/.gitlab-ci.yml +1 -1
- data/.rubocop_todo.yml +9 -0
- data/CHANGELOG.md +7 -0
- data/lib/mail_room/version.rb +1 -1
- data/mail_room.gemspec +6 -4
- data/spec/lib/coordinator_spec.rb +1 -1
- data/spec/lib/delivery/postback_spec.rb +5 -1
- data/spec/lib/microsoft_graph/connection_spec.rb +3 -3
- metadata +25 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0e8a5af986fff787ca0cd1ba45293f44a2f5130ddc8f1a2e762258d397d3eb7d
|
|
4
|
+
data.tar.gz: 6056b4c396bb63fd769ddd26c0860f65095045f84c334e7531f40b465c7f2326
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c100b13d4179d816a39c308c36f0bb47e4c43bba80d549ef0a7f37cc70fb73d03dc3ecd554a50b4f350beb527bcff7cbeee999d737dcb7527d872d1606e204aa
|
|
7
|
+
data.tar.gz: d483eb80b21ee39e54b3a08ca18c3dad015027684dbb2d87b2b2d8b0c71a6bd72931932408034a6014b013ee653698703d9571a07385a162cfee0054fcd1fe8b
|
data/.github/workflows/ci.yml
CHANGED
data/.gitlab-ci.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
|
@@ -97,6 +97,14 @@ Layout/MultilineBlockLayout:
|
|
|
97
97
|
Exclude:
|
|
98
98
|
- 'spec/lib/delivery/que_spec.rb'
|
|
99
99
|
|
|
100
|
+
# Offense count: 1
|
|
101
|
+
# This cop supports safe autocorrection (--autocorrect).
|
|
102
|
+
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
|
103
|
+
# SupportedStyles: aligned, indented, indented_relative_to_receiver
|
|
104
|
+
Layout/MultilineMethodCallIndentation:
|
|
105
|
+
Exclude:
|
|
106
|
+
- 'lib/mail_room/imap/connection.rb'
|
|
107
|
+
|
|
100
108
|
# Offense count: 3
|
|
101
109
|
# This cop supports safe autocorrection (--autocorrect).
|
|
102
110
|
# Configuration parameters: EnforcedStyle.
|
|
@@ -281,6 +289,7 @@ Style/Documentation:
|
|
|
281
289
|
- 'lib/mail_room/arbitration/redis.rb'
|
|
282
290
|
- 'lib/mail_room/connection.rb'
|
|
283
291
|
- 'lib/mail_room/crash_handler.rb'
|
|
292
|
+
- 'lib/mail_room/health_check.rb'
|
|
284
293
|
- 'lib/mail_room/delivery.rb'
|
|
285
294
|
- 'lib/mail_room/imap.rb'
|
|
286
295
|
- 'lib/mail_room/imap/connection.rb'
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## Unreleased ##
|
|
2
|
+
|
|
3
|
+
* Bump `net-imap` to `>= 0.5, < 0.7` (allows the 0.6.x line on Ruby 3.2+)
|
|
4
|
+
* Raise minimum Ruby to 3.1 (`required_ruby_version >= 3.1`), required by `net-imap` 0.5+
|
|
5
|
+
* Modernize runtime dependency bounds: `oauth2 >= 2.0.9, < 3`, `jwt >= 2.0, < 4`, `redis-namespace >= 1.8.2, < 2`
|
|
6
|
+
* Drop Ruby 3.0 from the CI matrix (GitLab CI and GitHub Actions now test 3.1–3.4 and 4.0)
|
|
7
|
+
|
|
1
8
|
## mail_room 0.11.1 ##
|
|
2
9
|
|
|
3
10
|
https://github.com/tpitale/mail_room/compare/v0.11.0...v0.11.1
|
data/lib/mail_room/version.rb
CHANGED
data/mail_room.gemspec
CHANGED
|
@@ -17,11 +17,13 @@ Gem::Specification.new do |gem|
|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
|
18
18
|
gem.require_paths = ["lib"]
|
|
19
19
|
|
|
20
|
-
gem.
|
|
21
|
-
|
|
22
|
-
gem.add_dependency "
|
|
20
|
+
gem.required_ruby_version = ">= 3.1"
|
|
21
|
+
|
|
22
|
+
gem.add_dependency "net-imap", [">= 0.5", "< 0.7"]
|
|
23
|
+
gem.add_dependency "oauth2", [">= 2.0.9", "< 3"]
|
|
24
|
+
gem.add_dependency "jwt", [">= 2.0", "< 4"]
|
|
23
25
|
gem.add_dependency "redis", [">= 5", "< 6"]
|
|
24
|
-
gem.add_dependency "redis-namespace",
|
|
26
|
+
gem.add_dependency "redis-namespace", [">= 1.8.2", "< 2"]
|
|
25
27
|
|
|
26
28
|
gem.add_development_dependency "rake"
|
|
27
29
|
gem.add_development_dependency "rspec", "~> 3.9"
|
|
@@ -17,7 +17,7 @@ describe MailRoom::Coordinator do
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
it 'sets the health check' do
|
|
20
|
-
health_check = MailRoom::HealthCheck.new({ address: '127.0.0.1', port: 8080})
|
|
20
|
+
health_check = MailRoom::HealthCheck.new({ address: '127.0.0.1', port: 8080 })
|
|
21
21
|
coordinator = MailRoom::Coordinator.new([], health_check)
|
|
22
22
|
|
|
23
23
|
expect(coordinator.health_check).to eq(health_check)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
require 'mail_room/delivery/postback'
|
|
3
3
|
require 'tempfile'
|
|
4
|
+
require 'base64'
|
|
4
5
|
require 'webmock/rspec'
|
|
5
6
|
|
|
6
7
|
describe MailRoom::Delivery::Postback do
|
|
@@ -94,7 +95,10 @@ describe MailRoom::Delivery::Postback do
|
|
|
94
95
|
|
|
95
96
|
let(:jwt_secret) do
|
|
96
97
|
file = Tempfile.new('secret')
|
|
97
|
-
|
|
98
|
+
# The secret is read back and Base64-decoded by MailRoom::JWT, so it
|
|
99
|
+
# must be valid Base64 and flushed to disk before it is read.
|
|
100
|
+
file.write(Base64.strict_encode64("test secret"))
|
|
101
|
+
file.flush
|
|
98
102
|
file
|
|
99
103
|
end
|
|
100
104
|
|
|
@@ -106,7 +106,7 @@ describe MailRoom::MicrosoftGraph::Connection do
|
|
|
106
106
|
|
|
107
107
|
shared_examples 'with a single message' do
|
|
108
108
|
let(:message_id) { SecureRandom.hex }
|
|
109
|
-
let(:unread_messages_body) { { value: ['id' => message_id] } }
|
|
109
|
+
let(:unread_messages_body) { { value: [{ 'id' => message_id }] } }
|
|
110
110
|
let(:message_url) { "#{message_base_url}/#{message_id}" }
|
|
111
111
|
let(:message_body) { 'hello world' }
|
|
112
112
|
|
|
@@ -168,13 +168,13 @@ describe MailRoom::MicrosoftGraph::Connection do
|
|
|
168
168
|
context 'with multiple pages of messages' do
|
|
169
169
|
let(:message_ids) { [SecureRandom.hex, SecureRandom.hex] }
|
|
170
170
|
let(:next_page_url) { "#{graph_endpoint}/v1.0/nextPage" }
|
|
171
|
-
let(:unread_messages_body) { { value: ['id' => message_ids.first], '@odata.nextLink' => next_page_url } }
|
|
171
|
+
let(:unread_messages_body) { { value: [{ 'id' => message_ids.first }], '@odata.nextLink' => next_page_url } }
|
|
172
172
|
let(:message_body) { 'hello world' }
|
|
173
173
|
|
|
174
174
|
it 'requests message ID' do
|
|
175
175
|
stub_request(:get, next_page_url).to_return(
|
|
176
176
|
status: 200,
|
|
177
|
-
body: { value: ['id' => message_ids[1]] }.to_json
|
|
177
|
+
body: { value: [{ 'id' => message_ids[1] }] }.to_json
|
|
178
178
|
)
|
|
179
179
|
|
|
180
180
|
stubs = []
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gitlab-mail_room
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tony Pitale
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-06-18 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: net-imap
|
|
@@ -15,21 +15,27 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.
|
|
18
|
+
version: '0.5'
|
|
19
|
+
- - "<"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '0.7'
|
|
19
22
|
type: :runtime
|
|
20
23
|
prerelease: false
|
|
21
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
25
|
requirements:
|
|
23
26
|
- - ">="
|
|
24
27
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.
|
|
28
|
+
version: '0.5'
|
|
29
|
+
- - "<"
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '0.7'
|
|
26
32
|
- !ruby/object:Gem::Dependency
|
|
27
33
|
name: oauth2
|
|
28
34
|
requirement: !ruby/object:Gem::Requirement
|
|
29
35
|
requirements:
|
|
30
36
|
- - ">="
|
|
31
37
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
38
|
+
version: 2.0.9
|
|
33
39
|
- - "<"
|
|
34
40
|
- !ruby/object:Gem::Version
|
|
35
41
|
version: '3'
|
|
@@ -39,7 +45,7 @@ dependencies:
|
|
|
39
45
|
requirements:
|
|
40
46
|
- - ">="
|
|
41
47
|
- !ruby/object:Gem::Version
|
|
42
|
-
version:
|
|
48
|
+
version: 2.0.9
|
|
43
49
|
- - "<"
|
|
44
50
|
- !ruby/object:Gem::Version
|
|
45
51
|
version: '3'
|
|
@@ -50,6 +56,9 @@ dependencies:
|
|
|
50
56
|
- - ">="
|
|
51
57
|
- !ruby/object:Gem::Version
|
|
52
58
|
version: '2.0'
|
|
59
|
+
- - "<"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '4'
|
|
53
62
|
type: :runtime
|
|
54
63
|
prerelease: false
|
|
55
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -57,6 +66,9 @@ dependencies:
|
|
|
57
66
|
- - ">="
|
|
58
67
|
- !ruby/object:Gem::Version
|
|
59
68
|
version: '2.0'
|
|
69
|
+
- - "<"
|
|
70
|
+
- !ruby/object:Gem::Version
|
|
71
|
+
version: '4'
|
|
60
72
|
- !ruby/object:Gem::Dependency
|
|
61
73
|
name: redis
|
|
62
74
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -84,6 +96,9 @@ dependencies:
|
|
|
84
96
|
- - ">="
|
|
85
97
|
- !ruby/object:Gem::Version
|
|
86
98
|
version: 1.8.2
|
|
99
|
+
- - "<"
|
|
100
|
+
- !ruby/object:Gem::Version
|
|
101
|
+
version: '2'
|
|
87
102
|
type: :runtime
|
|
88
103
|
prerelease: false
|
|
89
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -91,6 +106,9 @@ dependencies:
|
|
|
91
106
|
- - ">="
|
|
92
107
|
- !ruby/object:Gem::Version
|
|
93
108
|
version: 1.8.2
|
|
109
|
+
- - "<"
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
111
|
+
version: '2'
|
|
94
112
|
- !ruby/object:Gem::Dependency
|
|
95
113
|
name: rake
|
|
96
114
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -347,7 +365,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
347
365
|
requirements:
|
|
348
366
|
- - ">="
|
|
349
367
|
- !ruby/object:Gem::Version
|
|
350
|
-
version: '
|
|
368
|
+
version: '3.1'
|
|
351
369
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
352
370
|
requirements:
|
|
353
371
|
- - ">="
|