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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 92305dd07fbde3e525e8a2656a31675f00d295357c211284d5d3b64858ae97c5
4
- data.tar.gz: c9232a9916124e91af36e56cc02c7ab26f3613bb0ba4eb4705430e250b71186e
3
+ metadata.gz: 0e8a5af986fff787ca0cd1ba45293f44a2f5130ddc8f1a2e762258d397d3eb7d
4
+ data.tar.gz: 6056b4c396bb63fd769ddd26c0860f65095045f84c334e7531f40b465c7f2326
5
5
  SHA512:
6
- metadata.gz: 0d9b23088fa1ec3fef11e128d9af5e198f59f5361cf6516c0d2112c571eb5e515c2dde66a1305158f9db4b5f0a5e5756beab10d9dadaaeb13d70a53f13453869
7
- data.tar.gz: 9e13d1174c016aecc8dd8af1c5f75755a8c45d9e11be1bb00bdf14eb53cbffb386c167bc4dd1fb063fb3057bcfbd0a01dfe5766602af3584513ad393a558745d
6
+ metadata.gz: c100b13d4179d816a39c308c36f0bb47e4c43bba80d549ef0a7f37cc70fb73d03dc3ecd554a50b4f350beb527bcff7cbeee999d737dcb7527d872d1606e204aa
7
+ data.tar.gz: d483eb80b21ee39e54b3a08ca18c3dad015027684dbb2d87b2b2d8b0c71a6bd72931932408034a6014b013ee653698703d9571a07385a162cfee0054fcd1fe8b
@@ -26,10 +26,11 @@ jobs:
26
26
  matrix:
27
27
  ruby-version:
28
28
  - head
29
+ - '4.0'
30
+ - '3.4'
31
+ - '3.3'
29
32
  - '3.2'
30
33
  - '3.1'
31
- - '3.0'
32
- - '2.7'
33
34
  steps:
34
35
  - uses: actions/checkout@v4
35
36
  - name: Set up Ruby ${{ matrix.ruby-version }}
data/.gitlab-ci.yml CHANGED
@@ -22,7 +22,7 @@ services:
22
22
  rspec:
23
23
  parallel:
24
24
  matrix:
25
- - RUBY_VERSION: [ "3.0", "3.1", "3.2", "3.3", "3.4" ]
25
+ - RUBY_VERSION: [ "3.1", "3.2", "3.3", "3.4", "4.0" ]
26
26
  <<: *test
27
27
 
28
28
  include:
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
@@ -1,4 +1,4 @@
1
1
  module MailRoom
2
2
  # Current version of gitlab-mail_room gem
3
- VERSION = "0.1.0"
3
+ VERSION = "1.1.0"
4
4
  end
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.add_dependency "net-imap", ">= 0.2.1"
21
- gem.add_dependency "oauth2", [">= 1.4.4", "< 3"]
22
- gem.add_dependency "jwt", ">= 2.0"
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", '>= 1.8.2'
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
- file.write("test secret")
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: 0.1.0
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-01-16 00:00:00.000000000 Z
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.2.1
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.2.1
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: 1.4.4
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: 1.4.4
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: '0'
368
+ version: '3.1'
351
369
  required_rubygems_version: !ruby/object:Gem::Requirement
352
370
  requirements:
353
371
  - - ">="