gitlab-mail_room 0.0.19 → 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.
- checksums.yaml +4 -4
- data/.gitlab/issue_templates/Default.md +9 -0
- data/.gitlab-ci.yml +3 -0
- data/.rubocop_todo.yml +70 -77
- data/README.md +21 -0
- data/lib/mail_room/microsoft_graph/connection.rb +16 -5
- data/lib/mail_room/version.rb +1 -1
- data/spec/lib/delivery/sidekiq_spec.rb +0 -1
- data/spec/lib/microsoft_graph/connection_spec.rb +36 -5
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d67e38380fdc5833ee32a9cacee0894a2f9533b869ada45847156a7d49e0130b
|
|
4
|
+
data.tar.gz: 51c4d4449a80f38d06b99d3fd0f62c9ddf3760f3f55ec7611887ab9e583dc77a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d52fb679aa2b3395e91d4d0f055fc5fb7e709495c5172148a1439d2472ea45a47115824dcf2717aaaa7312679ef48614007ffd4d8d4358e671bb40b037177d72
|
|
7
|
+
data.tar.gz: a4e43c65a7bd5561e2731a0056299f4c2f68c31c4854a91291f3d47874bccbefe9048f4872aef7a82750a3e4afdad4c7ac59e0c79c667bbc1b83006c35f2440a
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Please read me!
|
|
2
|
+
|
|
3
|
+
This repository supports our packaged release of `mail_room` that ships with GitLab. We strive to diverge as little as possible from the canonical upstream at https://www.github.com/tpitale/mail_room. If we do diverge, our patches are sent upstream for review and we carry them here to support the GitLab application.
|
|
4
|
+
|
|
5
|
+
You can raise an issue here if you're having an issue *specifically in the context of a GitLab installation*.
|
|
6
|
+
|
|
7
|
+
Otherwise, please direct any issues upstream to https://www.github.com/tpitale/mail_room.
|
|
8
|
+
|
|
9
|
+
Thank you for contributing!
|
data/.gitlab-ci.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
2
|
# `rubocop --auto-gen-config`
|
|
3
|
-
# on
|
|
3
|
+
# on 2022-03-15 06:29:40 UTC using RuboCop version 1.26.0.
|
|
4
4
|
# The point is for the user to remove these configuration records
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
|
8
8
|
|
|
9
9
|
# Offense count: 5
|
|
10
|
-
#
|
|
10
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
11
11
|
# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
|
|
12
12
|
# Include: **/*.gemspec
|
|
13
13
|
Gemspec/OrderedDependencies:
|
|
@@ -21,15 +21,15 @@ Gemspec/RequiredRubyVersion:
|
|
|
21
21
|
Exclude:
|
|
22
22
|
- 'mail_room.gemspec'
|
|
23
23
|
|
|
24
|
-
# Offense count:
|
|
25
|
-
#
|
|
24
|
+
# Offense count: 5
|
|
25
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
26
26
|
Layout/BlockEndNewline:
|
|
27
27
|
Exclude:
|
|
28
28
|
- 'spec/lib/delivery/postback_spec.rb'
|
|
29
29
|
- 'spec/lib/delivery/que_spec.rb'
|
|
30
30
|
|
|
31
31
|
# Offense count: 5
|
|
32
|
-
#
|
|
32
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
33
33
|
# Configuration parameters: EnforcedStyle, IndentOneStep, IndentationWidth.
|
|
34
34
|
# SupportedStyles: case, end
|
|
35
35
|
Layout/CaseIndentation:
|
|
@@ -37,13 +37,13 @@ Layout/CaseIndentation:
|
|
|
37
37
|
- 'lib/mail_room/mailbox.rb'
|
|
38
38
|
|
|
39
39
|
# Offense count: 1
|
|
40
|
-
#
|
|
40
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
41
41
|
Layout/EmptyLineAfterMagicComment:
|
|
42
42
|
Exclude:
|
|
43
43
|
- 'mail_room.gemspec'
|
|
44
44
|
|
|
45
45
|
# Offense count: 2
|
|
46
|
-
#
|
|
46
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
47
47
|
# Configuration parameters: EnforcedStyle.
|
|
48
48
|
# SupportedStyles: around, only_before
|
|
49
49
|
Layout/EmptyLinesAroundAccessModifier:
|
|
@@ -52,7 +52,7 @@ Layout/EmptyLinesAroundAccessModifier:
|
|
|
52
52
|
- 'lib/mail_room/delivery/que.rb'
|
|
53
53
|
|
|
54
54
|
# Offense count: 4
|
|
55
|
-
#
|
|
55
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
56
56
|
# Configuration parameters: EnforcedStyle.
|
|
57
57
|
# SupportedStyles: empty_lines, no_empty_lines
|
|
58
58
|
Layout/EmptyLinesAroundBlockBody:
|
|
@@ -62,15 +62,15 @@ Layout/EmptyLinesAroundBlockBody:
|
|
|
62
62
|
- 'spec/lib/logger/structured_spec.rb'
|
|
63
63
|
|
|
64
64
|
# Offense count: 1
|
|
65
|
-
#
|
|
65
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
66
66
|
# Configuration parameters: EnforcedStyle.
|
|
67
67
|
# SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines, beginning_only, ending_only
|
|
68
68
|
Layout/EmptyLinesAroundClassBody:
|
|
69
69
|
Exclude:
|
|
70
70
|
- 'lib/mail_room/logger/structured.rb'
|
|
71
71
|
|
|
72
|
-
# Offense count:
|
|
73
|
-
#
|
|
72
|
+
# Offense count: 15
|
|
73
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
74
74
|
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
|
75
75
|
# SupportedStyles: special_inside_parentheses, consistent, align_braces
|
|
76
76
|
Layout/FirstHashElementIndentation:
|
|
@@ -80,7 +80,7 @@ Layout/FirstHashElementIndentation:
|
|
|
80
80
|
- 'spec/lib/logger/structured_spec.rb'
|
|
81
81
|
|
|
82
82
|
# Offense count: 5
|
|
83
|
-
#
|
|
83
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
84
84
|
# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
|
|
85
85
|
# SupportedHashRocketStyles: key, separator, table
|
|
86
86
|
# SupportedColonStyles: key, separator, table
|
|
@@ -90,22 +90,22 @@ Layout/HashAlignment:
|
|
|
90
90
|
- 'lib/mail_room/delivery/sidekiq.rb'
|
|
91
91
|
|
|
92
92
|
# Offense count: 2
|
|
93
|
-
#
|
|
93
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
94
94
|
# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment.
|
|
95
95
|
Layout/LeadingCommentSpace:
|
|
96
96
|
Exclude:
|
|
97
97
|
- 'lib/mail_room/mailbox.rb'
|
|
98
98
|
- 'spec/lib/arbitration/redis_spec.rb'
|
|
99
99
|
|
|
100
|
-
# Offense count:
|
|
101
|
-
#
|
|
100
|
+
# Offense count: 5
|
|
101
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
102
102
|
Layout/MultilineBlockLayout:
|
|
103
103
|
Exclude:
|
|
104
104
|
- 'spec/lib/delivery/postback_spec.rb'
|
|
105
105
|
- 'spec/lib/delivery/que_spec.rb'
|
|
106
106
|
|
|
107
107
|
# Offense count: 3
|
|
108
|
-
#
|
|
108
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
109
109
|
# Configuration parameters: EnforcedStyle.
|
|
110
110
|
# SupportedStyles: space, no_space
|
|
111
111
|
Layout/SpaceAroundEqualsInParameterDefault:
|
|
@@ -115,14 +115,14 @@ Layout/SpaceAroundEqualsInParameterDefault:
|
|
|
115
115
|
- 'lib/mail_room/mailbox.rb'
|
|
116
116
|
|
|
117
117
|
# Offense count: 2
|
|
118
|
-
#
|
|
118
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
119
119
|
Layout/SpaceAroundKeyword:
|
|
120
120
|
Exclude:
|
|
121
121
|
- 'lib/mail_room/coordinator.rb'
|
|
122
122
|
- 'lib/mail_room/mailbox_watcher.rb'
|
|
123
123
|
|
|
124
124
|
# Offense count: 2
|
|
125
|
-
#
|
|
125
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
126
126
|
# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
|
|
127
127
|
# SupportedStylesForExponentOperator: space, no_space
|
|
128
128
|
Layout/SpaceAroundOperators:
|
|
@@ -131,7 +131,7 @@ Layout/SpaceAroundOperators:
|
|
|
131
131
|
- 'spec/lib/arbitration/redis_spec.rb'
|
|
132
132
|
|
|
133
133
|
# Offense count: 7
|
|
134
|
-
#
|
|
134
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
135
135
|
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
|
|
136
136
|
# SupportedStyles: space, no_space
|
|
137
137
|
# SupportedStylesForEmptyBraces: space, no_space
|
|
@@ -141,8 +141,8 @@ Layout/SpaceBeforeBlockBraces:
|
|
|
141
141
|
- 'spec/lib/crash_handler_spec.rb'
|
|
142
142
|
- 'spec/lib/mailbox_spec.rb'
|
|
143
143
|
|
|
144
|
-
# Offense count:
|
|
145
|
-
#
|
|
144
|
+
# Offense count: 51
|
|
145
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
146
146
|
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
|
|
147
147
|
# SupportedStyles: space, no_space
|
|
148
148
|
# SupportedStylesForEmptyBraces: space, no_space
|
|
@@ -158,43 +158,41 @@ Layout/SpaceInsideBlockBraces:
|
|
|
158
158
|
- 'spec/lib/imap/connection_spec.rb'
|
|
159
159
|
- 'spec/lib/mailbox_watcher_spec.rb'
|
|
160
160
|
|
|
161
|
-
# Offense count:
|
|
162
|
-
#
|
|
161
|
+
# Offense count: 32
|
|
162
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
163
163
|
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
|
|
164
164
|
# SupportedStyles: space, no_space, compact
|
|
165
165
|
# SupportedStylesForEmptyBraces: space, no_space
|
|
166
166
|
Layout/SpaceInsideHashLiteralBraces:
|
|
167
167
|
Exclude:
|
|
168
|
-
- 'lib/mail_room/arbitration/redis.rb'
|
|
169
168
|
- 'lib/mail_room/mailbox.rb'
|
|
170
169
|
- 'spec/lib/cli_spec.rb'
|
|
171
170
|
- 'spec/lib/mailbox_spec.rb'
|
|
172
171
|
|
|
173
172
|
# Offense count: 1
|
|
174
|
-
#
|
|
173
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
175
174
|
# Configuration parameters: EnforcedStyle.
|
|
176
|
-
# SupportedStyles: space, no_space
|
|
175
|
+
# SupportedStyles: space, compact, no_space
|
|
177
176
|
Layout/SpaceInsideParens:
|
|
178
177
|
Exclude:
|
|
179
178
|
- 'spec/lib/logger/structured_spec.rb'
|
|
180
179
|
|
|
181
180
|
# Offense count: 1
|
|
182
|
-
#
|
|
181
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
183
182
|
# Configuration parameters: EnforcedStyle.
|
|
184
183
|
# SupportedStyles: final_newline, final_blank_line
|
|
185
184
|
Layout/TrailingEmptyLines:
|
|
186
185
|
Exclude:
|
|
187
186
|
- 'spec/lib/delivery/letter_opener_spec.rb'
|
|
188
187
|
|
|
189
|
-
# Offense count:
|
|
190
|
-
#
|
|
188
|
+
# Offense count: 4
|
|
189
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
191
190
|
# Configuration parameters: AllowInHeredoc.
|
|
192
191
|
Layout/TrailingWhitespace:
|
|
193
192
|
Exclude:
|
|
194
193
|
- 'lib/mail_room/coordinator.rb'
|
|
195
194
|
- 'lib/mail_room/imap.rb'
|
|
196
195
|
- 'spec/lib/coordinator_spec.rb'
|
|
197
|
-
- 'spec/lib/delivery/postback_spec.rb'
|
|
198
196
|
|
|
199
197
|
# Offense count: 5
|
|
200
198
|
# Configuration parameters: AllowedMethods.
|
|
@@ -209,27 +207,27 @@ Lint/RescueException:
|
|
|
209
207
|
- 'lib/mail_room/cli.rb'
|
|
210
208
|
|
|
211
209
|
# Offense count: 1
|
|
212
|
-
#
|
|
210
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
213
211
|
# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
|
|
214
212
|
Lint/UnusedMethodArgument:
|
|
215
213
|
Exclude:
|
|
216
214
|
- 'lib/mail_room/logger/structured.rb'
|
|
217
215
|
|
|
218
|
-
# Offense count:
|
|
216
|
+
# Offense count: 5
|
|
219
217
|
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
|
220
218
|
Metrics/AbcSize:
|
|
221
219
|
Max: 27
|
|
222
220
|
|
|
223
|
-
# Offense count:
|
|
221
|
+
# Offense count: 32
|
|
224
222
|
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
|
225
223
|
# IgnoredMethods: refine
|
|
226
224
|
Metrics/BlockLength:
|
|
227
|
-
Max:
|
|
225
|
+
Max: 198
|
|
228
226
|
|
|
229
227
|
# Offense count: 3
|
|
230
228
|
# Configuration parameters: CountComments, CountAsOne.
|
|
231
229
|
Metrics/ClassLength:
|
|
232
|
-
Max:
|
|
230
|
+
Max: 169
|
|
233
231
|
|
|
234
232
|
# Offense count: 1
|
|
235
233
|
# Configuration parameters: IgnoredMethods.
|
|
@@ -252,29 +250,21 @@ Naming/AccessorMethodName:
|
|
|
252
250
|
- 'lib/mail_room/configuration.rb'
|
|
253
251
|
|
|
254
252
|
# Offense count: 1
|
|
255
|
-
#
|
|
253
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
256
254
|
Security/YAMLLoad:
|
|
257
255
|
Exclude:
|
|
258
256
|
- 'lib/mail_room/configuration.rb'
|
|
259
257
|
|
|
260
|
-
# Offense count: 2
|
|
261
|
-
# Configuration parameters: EnforcedStyle, AllowModifiersOnSymbols.
|
|
262
|
-
# SupportedStyles: inline, group
|
|
263
|
-
Style/AccessModifierDeclarations:
|
|
264
|
-
Exclude:
|
|
265
|
-
- 'lib/mail_room/arbitration.rb'
|
|
266
|
-
- 'lib/mail_room/delivery.rb'
|
|
267
|
-
|
|
268
258
|
# Offense count: 1
|
|
269
|
-
#
|
|
259
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
270
260
|
# Configuration parameters: EnforcedStyle.
|
|
271
261
|
# SupportedStyles: prefer_alias, prefer_alias_method
|
|
272
262
|
Style/Alias:
|
|
273
263
|
Exclude:
|
|
274
264
|
- 'lib/mail_room/coordinator.rb'
|
|
275
265
|
|
|
276
|
-
# Offense count:
|
|
277
|
-
#
|
|
266
|
+
# Offense count: 16
|
|
267
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
278
268
|
# Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, IgnoredMethods, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
|
|
279
269
|
# SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
|
|
280
270
|
# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
|
|
@@ -288,6 +278,7 @@ Style/BlockDelimiters:
|
|
|
288
278
|
- 'spec/lib/delivery/sidekiq_spec.rb'
|
|
289
279
|
|
|
290
280
|
# Offense count: 12
|
|
281
|
+
# Configuration parameters: AllowedConstants.
|
|
291
282
|
Style/Documentation:
|
|
292
283
|
Exclude:
|
|
293
284
|
- 'spec/**/*'
|
|
@@ -306,7 +297,7 @@ Style/Documentation:
|
|
|
306
297
|
- 'lib/mail_room/microsoft_graph/connection.rb'
|
|
307
298
|
|
|
308
299
|
# Offense count: 2
|
|
309
|
-
#
|
|
300
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
310
301
|
# Configuration parameters: EnforcedStyle.
|
|
311
302
|
# SupportedStyles: compact, expanded
|
|
312
303
|
Style/EmptyMethod:
|
|
@@ -315,27 +306,27 @@ Style/EmptyMethod:
|
|
|
315
306
|
- 'lib/mail_room/delivery/noop.rb'
|
|
316
307
|
|
|
317
308
|
# Offense count: 1
|
|
318
|
-
#
|
|
309
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
319
310
|
Style/Encoding:
|
|
320
311
|
Exclude:
|
|
321
312
|
- 'mail_room.gemspec'
|
|
322
313
|
|
|
323
314
|
# Offense count: 2
|
|
324
|
-
#
|
|
315
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
325
316
|
Style/ExpandPathArguments:
|
|
326
317
|
Exclude:
|
|
327
318
|
- 'mail_room.gemspec'
|
|
328
319
|
- 'spec/spec_helper.rb'
|
|
329
320
|
|
|
330
|
-
# Offense count:
|
|
331
|
-
#
|
|
321
|
+
# Offense count: 39
|
|
322
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
332
323
|
# Configuration parameters: EnforcedStyle.
|
|
333
324
|
# SupportedStyles: always, always_true, never
|
|
334
325
|
Style/FrozenStringLiteralComment:
|
|
335
326
|
Enabled: false
|
|
336
327
|
|
|
337
328
|
# Offense count: 5
|
|
338
|
-
#
|
|
329
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
339
330
|
Style/GlobalStdStream:
|
|
340
331
|
Exclude:
|
|
341
332
|
- 'lib/mail_room/crash_handler.rb'
|
|
@@ -352,21 +343,22 @@ Style/GuardClause:
|
|
|
352
343
|
- 'lib/mail_room/mailbox_watcher.rb'
|
|
353
344
|
|
|
354
345
|
# Offense count: 1
|
|
355
|
-
#
|
|
356
|
-
# Configuration parameters: EnforcedStyle, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
|
|
346
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
347
|
+
# Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
|
|
357
348
|
# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
|
|
349
|
+
# SupportedShorthandSyntax: always, never, either
|
|
358
350
|
Style/HashSyntax:
|
|
359
351
|
Exclude:
|
|
360
352
|
- 'spec/lib/microsoft_graph/connection_spec.rb'
|
|
361
353
|
|
|
362
354
|
# Offense count: 1
|
|
363
|
-
#
|
|
355
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
364
356
|
Style/IfUnlessModifier:
|
|
365
357
|
Exclude:
|
|
366
358
|
- 'lib/mail_room/mailbox_watcher.rb'
|
|
367
359
|
|
|
368
360
|
# Offense count: 5
|
|
369
|
-
#
|
|
361
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
370
362
|
# Configuration parameters: EnforcedStyle.
|
|
371
363
|
# SupportedStyles: literals, strict
|
|
372
364
|
Style/MutableConstant:
|
|
@@ -377,7 +369,7 @@ Style/MutableConstant:
|
|
|
377
369
|
- 'spec/spec_helper.rb'
|
|
378
370
|
|
|
379
371
|
# Offense count: 1
|
|
380
|
-
#
|
|
372
|
+
# This cop supports unsafe auto-correction (--auto-correct-all).
|
|
381
373
|
# Configuration parameters: EnforcedStyle, IgnoredMethods.
|
|
382
374
|
# SupportedStyles: predicate, comparison
|
|
383
375
|
Style/NumericPredicate:
|
|
@@ -386,7 +378,7 @@ Style/NumericPredicate:
|
|
|
386
378
|
- 'lib/mail_room/imap/connection.rb'
|
|
387
379
|
|
|
388
380
|
# Offense count: 2
|
|
389
|
-
#
|
|
381
|
+
# This cop supports unsafe auto-correction (--auto-correct-all).
|
|
390
382
|
# Configuration parameters: EnforcedStyle.
|
|
391
383
|
# SupportedStyles: short, verbose
|
|
392
384
|
Style/PreferredHashMethods:
|
|
@@ -395,7 +387,7 @@ Style/PreferredHashMethods:
|
|
|
395
387
|
- 'lib/mail_room/mailbox.rb'
|
|
396
388
|
|
|
397
389
|
# Offense count: 1
|
|
398
|
-
#
|
|
390
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
399
391
|
# Configuration parameters: EnforcedStyle, AllowedCompactTypes.
|
|
400
392
|
# SupportedStyles: compact, exploded
|
|
401
393
|
Style/RaiseArgs:
|
|
@@ -403,13 +395,13 @@ Style/RaiseArgs:
|
|
|
403
395
|
- 'lib/mail_room/logger/structured.rb'
|
|
404
396
|
|
|
405
397
|
# Offense count: 2
|
|
406
|
-
#
|
|
398
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
407
399
|
Style/RedundantPercentQ:
|
|
408
400
|
Exclude:
|
|
409
401
|
- 'mail_room.gemspec'
|
|
410
402
|
|
|
411
403
|
# Offense count: 7
|
|
412
|
-
#
|
|
404
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
413
405
|
Style/RedundantSelf:
|
|
414
406
|
Exclude:
|
|
415
407
|
- 'lib/mail_room/configuration.rb'
|
|
@@ -418,7 +410,7 @@ Style/RedundantSelf:
|
|
|
418
410
|
- 'lib/mail_room/mailbox_watcher.rb'
|
|
419
411
|
|
|
420
412
|
# Offense count: 1
|
|
421
|
-
#
|
|
413
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
422
414
|
# Configuration parameters: EnforcedStyle.
|
|
423
415
|
# SupportedStyles: implicit, explicit
|
|
424
416
|
Style/RescueStandardError:
|
|
@@ -426,7 +418,7 @@ Style/RescueStandardError:
|
|
|
426
418
|
- 'lib/mail_room/configuration.rb'
|
|
427
419
|
|
|
428
420
|
# Offense count: 1
|
|
429
|
-
#
|
|
421
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
430
422
|
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
|
|
431
423
|
# AllowedMethods: present?, blank?, presence, try, try!
|
|
432
424
|
Style/SafeNavigation:
|
|
@@ -434,28 +426,29 @@ Style/SafeNavigation:
|
|
|
434
426
|
- 'lib/mail_room/mailbox_watcher.rb'
|
|
435
427
|
|
|
436
428
|
# Offense count: 1
|
|
437
|
-
#
|
|
438
|
-
# Configuration parameters: EnforcedStyle.
|
|
429
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
430
|
+
# Configuration parameters: RequireEnglish, EnforcedStyle.
|
|
439
431
|
# SupportedStyles: use_perl_names, use_english_names
|
|
440
432
|
Style/SpecialGlobalVars:
|
|
441
433
|
Exclude:
|
|
442
434
|
- 'mail_room.gemspec'
|
|
443
435
|
|
|
444
436
|
# Offense count: 1
|
|
445
|
-
#
|
|
437
|
+
# This cop supports unsafe auto-correction (--auto-correct-all).
|
|
438
|
+
# Configuration parameters: Mode.
|
|
446
439
|
Style/StringConcatenation:
|
|
447
440
|
Exclude:
|
|
448
441
|
- 'lib/mail_room/logger/structured.rb'
|
|
449
442
|
|
|
450
|
-
# Offense count:
|
|
451
|
-
#
|
|
443
|
+
# Offense count: 140
|
|
444
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
452
445
|
# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
|
|
453
446
|
# SupportedStyles: single_quotes, double_quotes
|
|
454
447
|
Style/StringLiterals:
|
|
455
448
|
Enabled: false
|
|
456
449
|
|
|
457
450
|
# Offense count: 4
|
|
458
|
-
#
|
|
451
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
459
452
|
# Configuration parameters: EnforcedStyle, MinSize.
|
|
460
453
|
# SupportedStyles: percent, brackets
|
|
461
454
|
Style/SymbolArray:
|
|
@@ -464,7 +457,7 @@ Style/SymbolArray:
|
|
|
464
457
|
- 'spec/lib/logger/structured_spec.rb'
|
|
465
458
|
|
|
466
459
|
# Offense count: 2
|
|
467
|
-
#
|
|
460
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
468
461
|
# Configuration parameters: EnforcedStyleForMultiline.
|
|
469
462
|
# SupportedStylesForMultiline: comma, consistent_comma, no_comma
|
|
470
463
|
Style/TrailingCommaInHashLiteral:
|
|
@@ -473,29 +466,29 @@ Style/TrailingCommaInHashLiteral:
|
|
|
473
466
|
- 'spec/spec_helper.rb'
|
|
474
467
|
|
|
475
468
|
# Offense count: 1
|
|
476
|
-
#
|
|
469
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
477
470
|
Style/WhileUntilDo:
|
|
478
471
|
Exclude:
|
|
479
472
|
- 'lib/mail_room/mailbox_watcher.rb'
|
|
480
473
|
|
|
481
474
|
# Offense count: 2
|
|
482
|
-
#
|
|
475
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
483
476
|
Style/WhileUntilModifier:
|
|
484
477
|
Exclude:
|
|
485
478
|
- 'lib/mail_room/coordinator.rb'
|
|
486
479
|
- 'lib/mail_room/mailbox_watcher.rb'
|
|
487
480
|
|
|
488
481
|
# Offense count: 3
|
|
489
|
-
#
|
|
482
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
490
483
|
# Configuration parameters: WordRegex.
|
|
491
484
|
# SupportedStyles: percent, brackets
|
|
492
485
|
Style/WordArray:
|
|
493
486
|
EnforcedStyle: percent
|
|
494
487
|
MinSize: 3
|
|
495
488
|
|
|
496
|
-
# Offense count:
|
|
497
|
-
#
|
|
498
|
-
# Configuration parameters:
|
|
489
|
+
# Offense count: 7
|
|
490
|
+
# This cop supports safe auto-correction (--auto-correct).
|
|
491
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
|
499
492
|
# URISchemes: http, https
|
|
500
493
|
Layout/LineLength:
|
|
501
494
|
Max: 177
|
data/README.md
CHANGED
|
@@ -134,6 +134,8 @@ You will also need to install `faraday` or `letter_opener` if you use the `postb
|
|
|
134
134
|
:client_id: ABCDE
|
|
135
135
|
:client_secret: YOUR-SECRET-HERE
|
|
136
136
|
:poll_interval: 60
|
|
137
|
+
:azure_ad_endpoint: https://login.microsoftonline.com
|
|
138
|
+
:graph_endpoint: https://graph.microsoft.com
|
|
137
139
|
:delivery_method: sidekiq
|
|
138
140
|
:delivery_options:
|
|
139
141
|
:redis_url: redis://localhost:6379
|
|
@@ -232,6 +234,25 @@ Fill in `inbox_options` with these values:
|
|
|
232
234
|
By default, MailRoom will poll for new messages every 60 seconds. `poll_interval` configures the number of
|
|
233
235
|
seconds to poll. Setting the value to 0 or under will default to 60 seconds.
|
|
234
236
|
|
|
237
|
+
### Alternative Azure cloud deployments
|
|
238
|
+
|
|
239
|
+
MailRoom will default to using the standard Azure HTTPS endpoints. To
|
|
240
|
+
configure MailRoom with Microsoft Cloud for US Government or other
|
|
241
|
+
[national cloud deployments](https://docs.microsoft.com/en-us/graph/deployments), set
|
|
242
|
+
the `azure_ad_endpoint` and `graph_endpoint` accordingly. For example,
|
|
243
|
+
for Microsoft Cloud for US Government:
|
|
244
|
+
|
|
245
|
+
```yaml
|
|
246
|
+
:inbox_method: microsoft_graph
|
|
247
|
+
:inbox_options:
|
|
248
|
+
:tenant_id: 12345
|
|
249
|
+
:client_id: ABCDE
|
|
250
|
+
:client_secret: YOUR-SECRET-HERE
|
|
251
|
+
:poll_interval: 60
|
|
252
|
+
:azure_ad_endpoint: https://login.microsoftonline.us
|
|
253
|
+
:graph_endpoint: https://graph.microsoft.us
|
|
254
|
+
```
|
|
255
|
+
|
|
235
256
|
## delivery_method ##
|
|
236
257
|
|
|
237
258
|
### postback ###
|
|
@@ -6,7 +6,6 @@ require 'oauth2'
|
|
|
6
6
|
module MailRoom
|
|
7
7
|
module MicrosoftGraph
|
|
8
8
|
class Connection < MailRoom::Connection
|
|
9
|
-
SCOPE = 'https://graph.microsoft.com/.default'
|
|
10
9
|
NEXT_PAGE_KEY = '@odata.nextLink'
|
|
11
10
|
DEFAULT_POLL_INTERVAL_S = 60
|
|
12
11
|
|
|
@@ -76,12 +75,12 @@ module MailRoom
|
|
|
76
75
|
def setup
|
|
77
76
|
@mailbox.logger.info({ context: @mailbox.context, action: 'Retrieving OAuth2 token...' })
|
|
78
77
|
|
|
79
|
-
@token = client.client_credentials.get_token({ scope:
|
|
78
|
+
@token = client.client_credentials.get_token({ scope: scope })
|
|
80
79
|
end
|
|
81
80
|
|
|
82
81
|
def client
|
|
83
82
|
@client ||= OAuth2::Client.new(client_id, client_secret,
|
|
84
|
-
site:
|
|
83
|
+
site: azure_ad_endpoint,
|
|
85
84
|
authorize_url: "/#{tenant_id}/oauth2/v2.0/authorize",
|
|
86
85
|
token_url: "/#{tenant_id}/oauth2/v2.0/token",
|
|
87
86
|
auth_scheme: :basic_auth)
|
|
@@ -207,7 +206,7 @@ module MailRoom
|
|
|
207
206
|
end
|
|
208
207
|
|
|
209
208
|
def base_url
|
|
210
|
-
"
|
|
209
|
+
"#{graph_endpoint}/v1.0/users/#{mailbox.email}/mailFolders/#{mailbox.name}/messages"
|
|
211
210
|
end
|
|
212
211
|
|
|
213
212
|
def unread_messages_url
|
|
@@ -216,7 +215,7 @@ module MailRoom
|
|
|
216
215
|
|
|
217
216
|
def msg_url(id)
|
|
218
217
|
# Attempting to use the base_url fails with "The OData request is not supported"
|
|
219
|
-
"
|
|
218
|
+
"#{graph_endpoint}/v1.0/users/#{mailbox.email}/messages/#{id}"
|
|
220
219
|
end
|
|
221
220
|
|
|
222
221
|
def rfc822_msg_url(id)
|
|
@@ -227,6 +226,18 @@ module MailRoom
|
|
|
227
226
|
def log_exception(message, exception)
|
|
228
227
|
@mailbox.logger.warn({ context: @mailbox.context, message: message, exception: exception.to_s })
|
|
229
228
|
end
|
|
229
|
+
|
|
230
|
+
def scope
|
|
231
|
+
"#{graph_endpoint}/.default"
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
def graph_endpoint
|
|
235
|
+
inbox_options[:graph_endpoint] || 'https://graph.microsoft.com'
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
def azure_ad_endpoint
|
|
239
|
+
inbox_options[:azure_ad_endpoint] || 'https://login.microsoftonline.com'
|
|
240
|
+
end
|
|
230
241
|
end
|
|
231
242
|
end
|
|
232
243
|
end
|
data/lib/mail_room/version.rb
CHANGED
|
@@ -14,8 +14,10 @@ describe MailRoom::MicrosoftGraph::Connection do
|
|
|
14
14
|
}.merge(REQUIRED_MICROSOFT_GRAPH_DEFAULTS)
|
|
15
15
|
end
|
|
16
16
|
let(:mailbox) { build_mailbox(options) }
|
|
17
|
-
let(:
|
|
18
|
-
let(:
|
|
17
|
+
let(:graph_endpoint) { 'https://graph.microsoft.com' }
|
|
18
|
+
let(:azure_ad_endpoint) { 'https://login.microsoftonline.com' }
|
|
19
|
+
let(:base_url) { "#{graph_endpoint}/v1.0/users/user@example.com/mailFolders/inbox/messages" }
|
|
20
|
+
let(:message_base_url) { "#{graph_endpoint}/v1.0/users/user@example.com/messages" }
|
|
19
21
|
|
|
20
22
|
let(:connection) { described_class.new(mailbox) }
|
|
21
23
|
let(:uid) { 1 }
|
|
@@ -25,7 +27,7 @@ describe MailRoom::MicrosoftGraph::Connection do
|
|
|
25
27
|
let(:unread_messages_body) { '' }
|
|
26
28
|
let(:status) { 200 }
|
|
27
29
|
let!(:stub_token) do
|
|
28
|
-
stub_request(:post, "
|
|
30
|
+
stub_request(:post, "#{azure_ad_endpoint}/#{tenant_id}/oauth2/v2.0/token").to_return(
|
|
29
31
|
body: { 'access_token' => access_token, 'refresh_token' => refresh_token, 'expires_in' => expires_in }.to_json,
|
|
30
32
|
headers: { 'Content-Type' => 'application/json' }
|
|
31
33
|
)
|
|
@@ -102,7 +104,7 @@ describe MailRoom::MicrosoftGraph::Connection do
|
|
|
102
104
|
end
|
|
103
105
|
end
|
|
104
106
|
|
|
105
|
-
|
|
107
|
+
shared_examples 'with a single message' do
|
|
106
108
|
let(:message_id) { SecureRandom.hex }
|
|
107
109
|
let(:unread_messages_body) { { value: ['id' => message_id] } }
|
|
108
110
|
let(:message_url) { "#{message_base_url}/#{message_id}" }
|
|
@@ -134,9 +136,38 @@ describe MailRoom::MicrosoftGraph::Connection do
|
|
|
134
136
|
end
|
|
135
137
|
end
|
|
136
138
|
|
|
139
|
+
context 'with default Azure settings' do
|
|
140
|
+
before do
|
|
141
|
+
puts options
|
|
142
|
+
end
|
|
143
|
+
it_behaves_like 'with a single message'
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# https://docs.microsoft.com/en-us/graph/deployments
|
|
147
|
+
context 'with an alternative Azure deployment' do
|
|
148
|
+
let(:graph_endpoint) { 'https://graph.microsoft.us' }
|
|
149
|
+
let(:azure_ad_endpoint) { 'https://login.microsoftonline.us' }
|
|
150
|
+
let(:options) do
|
|
151
|
+
{
|
|
152
|
+
inbox_method: :microsoft_graph,
|
|
153
|
+
delete_after_delivery: true,
|
|
154
|
+
expunge_deleted: true,
|
|
155
|
+
inbox_options: {
|
|
156
|
+
tenant_id: '98776',
|
|
157
|
+
client_id: '12345',
|
|
158
|
+
client_secret: 'MY-SECRET',
|
|
159
|
+
graph_endpoint: 'https://graph.microsoft.us',
|
|
160
|
+
azure_ad_endpoint: 'https://login.microsoftonline.us'
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
it_behaves_like 'with a single message'
|
|
166
|
+
end
|
|
167
|
+
|
|
137
168
|
context 'with multiple pages of messages' do
|
|
138
169
|
let(:message_ids) { [SecureRandom.hex, SecureRandom.hex] }
|
|
139
|
-
let(:next_page_url) {
|
|
170
|
+
let(:next_page_url) { "#{graph_endpoint}/v1.0/nextPage" }
|
|
140
171
|
let(:unread_messages_body) { { value: ['id' => message_ids.first], '@odata.nextLink' => next_page_url } }
|
|
141
172
|
let(:message_body) { 'hello world' }
|
|
142
173
|
|
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.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: 2022-
|
|
11
|
+
date: 2022-03-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: net-imap
|
|
@@ -272,6 +272,7 @@ extra_rdoc_files: []
|
|
|
272
272
|
files:
|
|
273
273
|
- ".gitignore"
|
|
274
274
|
- ".gitlab-ci.yml"
|
|
275
|
+
- ".gitlab/issue_templates/Default.md"
|
|
275
276
|
- ".gitlab/issue_templates/Release.md"
|
|
276
277
|
- ".rubocop.yml"
|
|
277
278
|
- ".rubocop_todo.yml"
|
|
@@ -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.
|
|
359
|
+
rubygems_version: 3.1.6
|
|
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
|