gitlab-mail_room 0.0.4 → 0.0.20

Sign up to get free protection for your applications and to get access to all the features.
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