@@ -24,9 +24,9 @@ module.exports = (robot) ->
24
24
url = msg .match [1 ]
25
25
slug = code_reviews .matches_to_slug msg .match
26
26
msgRoomName msg, (room_name ) ->
27
- if slug
27
+ if slug and room_name
28
28
cr = new CodeReview msg .message .user , slug, url
29
- # Specific override for human readable cr.user. room
29
+ # Specific override for human readable room name
30
30
cr .user .room = room_name
31
31
found = code_reviews .find_slug_index room_name, slug
32
32
if found is false
@@ -52,7 +52,7 @@ module.exports = (robot) ->
52
52
reviewerMsg = ' '
53
53
msg .send " *#{ slug} * is already in the queue#{ reviewerMsg} "
54
54
else
55
- msg .send " Error adding #{ url} to queue"
55
+ msg .send " Unable to add #{ url} to queue. Please try again. "
56
56
57
57
# Respond to message with matching slug names
58
58
#
@@ -124,8 +124,9 @@ module.exports = (robot) ->
124
124
robot .respond / (?:([-_a-z0-9 ] + ) is )? on it/ i , (msg ) ->
125
125
reviewer = msg .match [1 ] or msg .message .user .name
126
126
msgRoomName msg, (room_name ) ->
127
- cr = code_reviews .claim_first room_name, reviewer
128
- dequeue_code_review cr, reviewer, msg
127
+ if room_name
128
+ cr = code_reviews .claim_first room_name, reviewer
129
+ dequeue_code_review cr, reviewer, msg
129
130
130
131
# Claim first PR in queue wihout directly addressing hubot
131
132
# Note the this is a `hear` listener and previous is a `respond`
@@ -135,8 +136,9 @@ module.exports = (robot) ->
135
136
return
136
137
reviewer = msg .match [1 ] or msg .message .user .name
137
138
msgRoomName msg, (room_name ) ->
138
- cr = code_reviews .claim_first room_name, reviewer
139
- dequeue_code_review cr, reviewer, msg
139
+ if room_name
140
+ cr = code_reviews .claim_first room_name, reviewer
141
+ dequeue_code_review cr, reviewer, msg
140
142
141
143
###
142
144
@command on *
@@ -149,8 +151,9 @@ module.exports = (robot) ->
149
151
msg .emote " :tornado2:"
150
152
reviewer = msg .message .user .name
151
153
msgRoomName msg, (room_name ) ->
152
- until false is cr = code_reviews .claim_first room_name, reviewer
153
- dequeue_code_review cr, reviewer, msg
154
+ if room_name
155
+ until false is cr = code_reviews .claim_first room_name, reviewer
156
+ dequeue_code_review cr, reviewer, msg
154
157
155
158
###
156
159
@command [userName is ]on cool-repo/123
@@ -167,19 +170,20 @@ module.exports = (robot) ->
167
170
return if slug .toLowerCase () is ' it'
168
171
169
172
msgRoomName msg, (room_name ) ->
170
- unclaimed_cr = single_matching_cr (slug, room_name, msg, status = " new" )
171
- if (unclaimed_cr)?
172
- code_reviews .claim_by_slug room_name, unclaimed_cr .slug , reviewer
173
- dequeue_code_review unclaimed_cr, reviewer, msg
173
+ if room_name
174
+ unclaimed_cr = single_matching_cr (slug, room_name, msg, status = " new" )
175
+ if (unclaimed_cr)?
176
+ code_reviews .claim_by_slug room_name, unclaimed_cr .slug , reviewer
177
+ dequeue_code_review unclaimed_cr, reviewer, msg
174
178
175
- # none of the matches have "new" status
176
- else
177
- cr = single_matching_cr (slug, room_name, msg, status = false , no_output = true )
178
- # When someone attempts to claim a PR
179
- # that was already reviewed, merged, or closed outside of the queue
180
- if (cr)?
181
- response = " It looks like *#{ cr .slug } * (@#{ cr .user .name } ) has already been #{ cr .status } "
182
- msg .send response
179
+ # none of the matches have "new" status
180
+ else
181
+ cr = single_matching_cr (slug, room_name, msg, status = false , no_output = true )
182
+ # When someone attempts to claim a PR
183
+ # that was already reviewed, merged, or closed outside of the queue
184
+ if (cr)?
185
+ response = " It looks like *#{ cr .slug } * (@#{ cr .user .name } ) has already been #{ cr .status } "
186
+ msg .send response
183
187
184
188
###
185
189
@command hubot (nm|ignore) cool-repo/123
@@ -192,59 +196,63 @@ module.exports = (robot) ->
192
196
return if slug .toLowerCase () is ' it'
193
197
194
198
msgRoomName msg, (room_name ) ->
195
- found_ignore_cr = single_matching_cr (slug, room_name, msg)
196
- if (found_ignore_cr)?
197
- code_reviews .remove_by_slug room_name, found_ignore_cr .slug
198
- # decrement scores
199
- code_review_karma .decr_score found_ignore_cr .user .name , ' take'
200
- if found_ignore_cr .reviewer
201
- code_review_karma .decr_score found_ignore_cr .reviewer , ' give'
202
- msg .send " Sorry for eavesdropping. I removed *#{ found_ignore_cr .slug } * from the queue."
203
- return
199
+ if room_name
200
+ found_ignore_cr = single_matching_cr (slug, room_name, msg)
201
+ if (found_ignore_cr)?
202
+ code_reviews .remove_by_slug room_name, found_ignore_cr .slug
203
+ # decrement scores
204
+ code_review_karma .decr_score found_ignore_cr .user .name , ' take'
205
+ if found_ignore_cr .reviewer
206
+ code_review_karma .decr_score found_ignore_cr .reviewer , ' give'
207
+ msg .send " Sorry for eavesdropping. I removed *#{ found_ignore_cr .slug } * from the queue."
208
+ return
204
209
205
210
###
206
211
@command hubot: (nm|ignore)
207
212
@desc Delete most recently added PR from the queue regardless of status
208
213
###
209
214
robot .respond / (?:\s * )(?:nm| ignore)(?:\s * )$ / i , (msg ) ->
210
215
msgRoomName msg, (room_name ) ->
211
- cr = code_reviews .remove_last_new room_name
212
- if cr and cr .slug
213
- code_review_karma .decr_score cr .user .name , ' take'
214
- if cr .reviewer
215
- code_review_karma .decr_score cr .reviewer , ' give'
216
- msg .send " Sorry for eavesdropping. I removed *#{ cr .slug } * from the queue."
217
- else
218
- msg .send " There might not be a new PR to remove. Try specifying a slug."
216
+ if room_name
217
+ cr = code_reviews .remove_last_new room_name
218
+ if cr and cr .slug
219
+ code_review_karma .decr_score cr .user .name , ' take'
220
+ if cr .reviewer
221
+ code_review_karma .decr_score cr .reviewer , ' give'
222
+ msg .send " Sorry for eavesdropping. I removed *#{ cr .slug } * from the queue."
223
+ else
224
+ msg .send " There might not be a new PR to remove. Try specifying a slug."
219
225
220
226
###
221
227
@command hubot: redo cool-repo/123
222
228
@desc Allow another review _without_ decrementing previous reviewer's score
223
229
###
224
230
robot .respond / (?:redo)(?: ([-_\/ a-z0-9 ] + | \d + | [-_\/ a-z0-9 ] + \/ \d + ))/ i , (msg ) ->
225
231
msgRoomName msg, (room_name ) ->
226
- found_redo_cr = single_matching_cr (msg .match [1 ], room_name, msg)
227
- if (found_redo_cr)?
228
- index = code_reviews .find_slug_index room_name, found_redo_cr .slug
229
- code_reviews .reset_cr code_reviews .room_queues [room_name][index]
230
- msg .send " You got it, #{ found_redo_cr .slug } is ready for a new review."
232
+ if room_name
233
+ found_redo_cr = single_matching_cr (msg .match [1 ], room_name, msg)
234
+ if (found_redo_cr)?
235
+ index = code_reviews .find_slug_index room_name, found_redo_cr .slug
236
+ code_reviews .reset_cr code_reviews .room_queues [room_name][index]
237
+ msg .send " You got it, #{ found_redo_cr .slug } is ready for a new review."
231
238
232
239
###
233
240
@command hubot: (unclaim|reset) cool-repo/123
234
241
@desc Reset CR status to new/unclaimed _and_ decrement reviewer's score
235
242
###
236
243
robot .respond / (unclaim| reset)(?: ([-_\/ a-z0-9 ] + | \d + | [-_\/ a-z0-9 ] + \/ \d + ))? / i , (msg ) ->
237
244
msgRoomName msg, (room_name ) ->
238
- found_reset_cr = single_matching_cr (msg .match [2 ], room_name, msg)
239
- if (found_reset_cr)?
240
- # decrement reviewers CR score
241
- if found_reset_cr .reviewer
242
- code_review_karma .decr_score found_reset_cr .reviewer , ' give'
243
-
244
- index = code_reviews .find_slug_index room_name, found_reset_cr .slug
245
- code_reviews .reset_cr code_reviews .room_queues [room_name][index]
246
- msg .match [1 ] += ' ed' if msg .match [1 ].toLowerCase () is ' unclaim'
247
- msg .send " You got it, I've #{ msg .match [1 ]} *#{ found_reset_cr .slug } * in the queue."
245
+ if room_name
246
+ found_reset_cr = single_matching_cr (msg .match [2 ], room_name, msg)
247
+ if (found_reset_cr)?
248
+ # decrement reviewers CR score
249
+ if found_reset_cr .reviewer
250
+ code_review_karma .decr_score found_reset_cr .reviewer , ' give'
251
+
252
+ index = code_reviews .find_slug_index room_name, found_reset_cr .slug
253
+ code_reviews .reset_cr code_reviews .room_queues [room_name][index]
254
+ msg .match [1 ] += ' ed' if msg .match [1 ].toLowerCase () is ' unclaim'
255
+ msg .send " You got it, I've #{ msg .match [1 ]} *#{ found_reset_cr .slug } * in the queue."
248
256
249
257
###
250
258
@command hubot: list crs
@@ -255,7 +263,8 @@ module.exports = (robot) ->
255
263
robot .respond / list(?: (all| new| claimed| approved| closed| merged))? CRs/ i , (msg ) ->
256
264
status = msg .match [1 ] || ' new'
257
265
msgRoomName msg, (room_name ) ->
258
- code_reviews .send_list room_name, true , status
266
+ if room_name
267
+ code_reviews .send_list room_name, false , status
259
268
260
269
# Flush all CRs in all rooms
261
270
robot .respond / flush the cr queue, really really/ i , (msg ) ->
0 commit comments