gitlab-mail_room 0.0.4 → 0.0.20

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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab/issue_templates/Default.md +9 -0
  3. data/.gitlab/issue_templates/Release.md +8 -0
  4. data/.gitlab-ci.yml +18 -16
  5. data/.rubocop.yml +5 -0
  6. data/.rubocop_todo.yml +494 -0
  7. data/.ruby-version +1 -1
  8. data/.travis.yml +12 -5
  9. data/CHANGELOG.md +4 -0
  10. data/CONTRIBUTING.md +40 -0
  11. data/README.md +136 -10
  12. data/Rakefile +1 -1
  13. data/lib/mail_room/arbitration/redis.rb +1 -1
  14. data/lib/mail_room/cli.rb +2 -2
  15. data/lib/mail_room/configuration.rb +11 -1
  16. data/lib/mail_room/connection.rb +10 -177
  17. data/lib/mail_room/coordinator.rb +8 -4
  18. data/lib/mail_room/crash_handler.rb +8 -12
  19. data/lib/mail_room/delivery/letter_opener.rb +1 -1
  20. data/lib/mail_room/delivery/postback.rb +36 -4
  21. data/lib/mail_room/delivery/sidekiq.rb +4 -3
  22. data/lib/mail_room/health_check.rb +60 -0
  23. data/lib/mail_room/imap/connection.rb +200 -0
  24. data/lib/mail_room/imap/message.rb +19 -0
  25. data/lib/mail_room/imap.rb +8 -0
  26. data/lib/mail_room/jwt.rb +39 -0
  27. data/lib/mail_room/logger/structured.rb +15 -1
  28. data/lib/mail_room/mailbox.rb +62 -20
  29. data/lib/mail_room/mailbox_watcher.rb +15 -2
  30. data/lib/mail_room/message.rb +16 -0
  31. data/lib/mail_room/microsoft_graph/connection.rb +243 -0
  32. data/lib/mail_room/microsoft_graph.rb +7 -0
  33. data/lib/mail_room/version.rb +2 -2
  34. data/lib/mail_room.rb +2 -0
  35. data/mail_room.gemspec +13 -4
  36. data/spec/fixtures/jwt_secret +1 -0
  37. data/spec/fixtures/test_config.yml +3 -0
  38. data/spec/lib/arbitration/redis_spec.rb +9 -7
  39. data/spec/lib/cli_spec.rb +32 -17
  40. data/spec/lib/configuration_spec.rb +10 -3
  41. data/spec/lib/coordinator_spec.rb +27 -11
  42. data/spec/lib/crash_handler_spec.rb +10 -9
  43. data/spec/lib/delivery/letter_opener_spec.rb +10 -6
  44. data/spec/lib/delivery/logger_spec.rb +8 -10
  45. data/spec/lib/delivery/postback_spec.rb +73 -41
  46. data/spec/lib/delivery/que_spec.rb +5 -8
  47. data/spec/lib/delivery/sidekiq_spec.rb +33 -11
  48. data/spec/lib/health_check_spec.rb +57 -0
  49. data/spec/lib/{connection_spec.rb → imap/connection_spec.rb} +13 -17
  50. data/spec/lib/imap/message_spec.rb +36 -0
  51. data/spec/lib/jwt_spec.rb +80 -0
  52. data/spec/lib/logger/structured_spec.rb +34 -2
  53. data/spec/lib/mailbox_spec.rb +79 -34
  54. data/spec/lib/mailbox_watcher_spec.rb +54 -41
  55. data/spec/lib/message_spec.rb +35 -0
  56. data/spec/lib/microsoft_graph/connection_spec.rb +252 -0
  57. data/spec/spec_helper.rb +14 -4
  58. metadata +130 -21
metadata CHANGED
@@ -1,45 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-mail_room
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Pitale
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-06 00:00:00.000000000 Z
11
+ date: 2022-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: net-imap
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
19
+ version: 0.2.1
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.2.1
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: oauth2
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.4.4
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.4.4
41
+ - !ruby/object:Gem::Dependency
42
+ name: jwt
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
47
+ version: '2.0'
48
+ type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '0'
54
+ version: '2.0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: mocha
56
+ name: io-wait
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.1.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
73
  - - ">="
@@ -53,19 +81,47 @@ dependencies:
53
81
  - !ruby/object:Gem::Version
54
82
  version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
- name: bourne
84
+ name: rspec
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
- - - ">="
87
+ - - "~>"
60
88
  - !ruby/object:Gem::Version
61
- version: '0'
89
+ version: '3.9'
62
90
  type: :development
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
- - - ">="
94
+ - - "~>"
67
95
  - !ruby/object:Gem::Version
68
- version: '0'
96
+ version: '3.9'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.11'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.11'
111
+ - !ruby/object:Gem::Dependency
112
+ name: mocha
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.11'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.11'
69
125
  - !ruby/object:Gem::Dependency
70
126
  name: simplecov
71
127
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +136,20 @@ dependencies:
80
136
  - - ">="
81
137
  - !ruby/object:Gem::Version
82
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: webrick
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.6'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.6'
83
153
  - !ruby/object:Gem::Dependency
84
154
  name: faraday
85
155
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +198,14 @@ dependencies:
128
198
  requirements:
129
199
  - - "~>"
130
200
  - !ruby/object:Gem::Version
131
- version: 3.3.1
201
+ version: '4'
132
202
  type: :development
133
203
  prerelease: false
134
204
  version_requirements: !ruby/object:Gem::Requirement
135
205
  requirements:
136
206
  - - "~>"
137
207
  - !ruby/object:Gem::Version
138
- version: 3.3.1
208
+ version: '4'
139
209
  - !ruby/object:Gem::Dependency
140
210
  name: redis-namespace
141
211
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +248,20 @@ dependencies:
178
248
  - - ">="
179
249
  - !ruby/object:Gem::Version
180
250
  version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: webmock
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
181
265
  description: mail_room will proxy email (gmail) from IMAP to a delivery method
182
266
  email:
183
267
  - tpitale@gmail.com
@@ -188,10 +272,15 @@ extra_rdoc_files: []
188
272
  files:
189
273
  - ".gitignore"
190
274
  - ".gitlab-ci.yml"
275
+ - ".gitlab/issue_templates/Default.md"
276
+ - ".gitlab/issue_templates/Release.md"
277
+ - ".rubocop.yml"
278
+ - ".rubocop_todo.yml"
191
279
  - ".ruby-version"
192
280
  - ".travis.yml"
193
281
  - CHANGELOG.md
194
282
  - CODE_OF_CONDUCT.md
283
+ - CONTRIBUTING.md
195
284
  - Gemfile
196
285
  - LICENSE.txt
197
286
  - README.md
@@ -213,17 +302,25 @@ files:
213
302
  - lib/mail_room/delivery/postback.rb
214
303
  - lib/mail_room/delivery/que.rb
215
304
  - lib/mail_room/delivery/sidekiq.rb
305
+ - lib/mail_room/health_check.rb
306
+ - lib/mail_room/imap.rb
307
+ - lib/mail_room/imap/connection.rb
308
+ - lib/mail_room/imap/message.rb
309
+ - lib/mail_room/jwt.rb
216
310
  - lib/mail_room/logger/structured.rb
217
311
  - lib/mail_room/mailbox.rb
218
312
  - lib/mail_room/mailbox_watcher.rb
313
+ - lib/mail_room/message.rb
314
+ - lib/mail_room/microsoft_graph.rb
315
+ - lib/mail_room/microsoft_graph/connection.rb
219
316
  - lib/mail_room/version.rb
220
317
  - logfile.log
221
318
  - mail_room.gemspec
319
+ - spec/fixtures/jwt_secret
222
320
  - spec/fixtures/test_config.yml
223
321
  - spec/lib/arbitration/redis_spec.rb
224
322
  - spec/lib/cli_spec.rb
225
323
  - spec/lib/configuration_spec.rb
226
- - spec/lib/connection_spec.rb
227
324
  - spec/lib/coordinator_spec.rb
228
325
  - spec/lib/crash_handler_spec.rb
229
326
  - spec/lib/delivery/letter_opener_spec.rb
@@ -231,9 +328,15 @@ files:
231
328
  - spec/lib/delivery/postback_spec.rb
232
329
  - spec/lib/delivery/que_spec.rb
233
330
  - spec/lib/delivery/sidekiq_spec.rb
331
+ - spec/lib/health_check_spec.rb
332
+ - spec/lib/imap/connection_spec.rb
333
+ - spec/lib/imap/message_spec.rb
334
+ - spec/lib/jwt_spec.rb
234
335
  - spec/lib/logger/structured_spec.rb
235
336
  - spec/lib/mailbox_spec.rb
236
337
  - spec/lib/mailbox_watcher_spec.rb
338
+ - spec/lib/message_spec.rb
339
+ - spec/lib/microsoft_graph/connection_spec.rb
237
340
  - spec/spec_helper.rb
238
341
  homepage: http://github.com/tpitale/mail_room
239
342
  licenses: []
@@ -253,17 +356,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
356
  - !ruby/object:Gem::Version
254
357
  version: '0'
255
358
  requirements: []
256
- rubygems_version: 3.1.2
359
+ rubygems_version: 3.1.6
257
360
  signing_key:
258
361
  specification_version: 4
259
362
  summary: mail_room will proxy email (gmail) from IMAP to a callback URL, logger, or
260
363
  letter_opener
261
364
  test_files:
365
+ - spec/fixtures/jwt_secret
262
366
  - spec/fixtures/test_config.yml
263
367
  - spec/lib/arbitration/redis_spec.rb
264
368
  - spec/lib/cli_spec.rb
265
369
  - spec/lib/configuration_spec.rb
266
- - spec/lib/connection_spec.rb
267
370
  - spec/lib/coordinator_spec.rb
268
371
  - spec/lib/crash_handler_spec.rb
269
372
  - spec/lib/delivery/letter_opener_spec.rb
@@ -271,7 +374,13 @@ test_files:
271
374
  - spec/lib/delivery/postback_spec.rb
272
375
  - spec/lib/delivery/que_spec.rb
273
376
  - spec/lib/delivery/sidekiq_spec.rb
377
+ - spec/lib/health_check_spec.rb
378
+ - spec/lib/imap/connection_spec.rb
379
+ - spec/lib/imap/message_spec.rb
380
+ - spec/lib/jwt_spec.rb
274
381
  - spec/lib/logger/structured_spec.rb
275
382
  - spec/lib/mailbox_spec.rb
276
383
  - spec/lib/mailbox_watcher_spec.rb
384
+ - spec/lib/message_spec.rb
385
+ - spec/lib/microsoft_graph/connection_spec.rb
277
386
  - spec/spec_helper.rb