lita-github-pinger 0.9.6 → 0.9.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lita/handlers/github_pinger.rb +30 -10
- data/lita-github-pinger.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '094839bb6f04f078249882a02919475b3661c4b34811a9cb50e0401384eb3898'
|
4
|
+
data.tar.gz: ba0930b35cf5935f6706e297a657c765a60e79220cff83185fe22002995532e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4c5735aa6fa0f3c89b7b565ac5f12d8f73a0f3a57a25ff8a0b6f2ae62fb2460404ad6cf926922af883c1c067c0ade43f10760fdac6f0ede58977a3f537880e2
|
7
|
+
data.tar.gz: 368d4dba7ad19a30733749b09e2d72796bea574ebce9c761418cb448f36668ea6c3d16a2e113a9261d7297800a16025e5be63121fe40dda013cd4374aa5d4bcd
|
@@ -1,6 +1,9 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
1
3
|
module Lita
|
2
4
|
module Handlers
|
3
5
|
RR_REDIS_KEY = 'lita-github-pinger:roundrobin'.freeze
|
6
|
+
REVIEW_REDIS_KEY = 'lita-github-pinger:reviewrequests'.freeze
|
4
7
|
|
5
8
|
class GithubPinger < Handler
|
6
9
|
|
@@ -165,13 +168,33 @@ module Lita
|
|
165
168
|
def act_on_review_requested(body, response)
|
166
169
|
puts "Detected a review request."
|
167
170
|
|
168
|
-
|
171
|
+
puts "looking at previously notified reviewers for this PR"
|
172
|
+
|
173
|
+
pr = body["pull_request"]
|
174
|
+
|
175
|
+
url = pr["html_url"]
|
176
|
+
|
177
|
+
notified_engineers = redis.get(REVIEW_REDIS_KEY + ":" + url)
|
178
|
+
|
179
|
+
notified_engineers = if notified_engineers
|
180
|
+
JSON.parse(notified_engineers)
|
181
|
+
else
|
182
|
+
[]
|
183
|
+
end
|
184
|
+
|
185
|
+
pr["requested_reviewers"].each do |reviewer|
|
186
|
+
engineer = find_engineer(github: reviewer["login"])
|
169
187
|
|
170
|
-
|
188
|
+
if !engineer
|
189
|
+
puts "Could not find engineer #{reviewer["login"]}"
|
190
|
+
next
|
191
|
+
end
|
171
192
|
|
172
|
-
|
193
|
+
if notified_engineers.include?(reviewer["login"])
|
194
|
+
puts "#{reviewer["login"]} has already been notified to review PR, skipping..."
|
195
|
+
next
|
196
|
+
end
|
173
197
|
|
174
|
-
if engineer
|
175
198
|
puts "#{engineer} determined as a reviewer."
|
176
199
|
|
177
200
|
puts "Looking up preferences..."
|
@@ -180,17 +203,14 @@ module Lita
|
|
180
203
|
if !should_notify
|
181
204
|
puts "will not notify, preference for :github_preferences[:notify_about_review_requests] is not true"
|
182
205
|
else
|
183
|
-
url = body["pull_request"]["html_url"]
|
184
|
-
|
185
206
|
message = "You've been asked to review a pull request:\n#{url}"
|
186
|
-
|
187
|
-
puts "Sending DM to #{engineer}..."
|
188
207
|
send_dm(engineer[:usernames][:slack], message)
|
208
|
+
notified_engineers.push(reviewer["login"])
|
189
209
|
end
|
190
|
-
else
|
191
|
-
puts "Could not find engineer #{reviewer["login"]}"
|
192
210
|
end
|
193
211
|
|
212
|
+
redis.set(REVIEW_REDIS_KEY + ":" + url, notified_engineers.to_json)
|
213
|
+
|
194
214
|
response
|
195
215
|
end
|
196
216
|
|
data/lita-github-pinger.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-github-pinger"
|
3
|
-
spec.version = "0.9.
|
3
|
+
spec.version = "0.9.7"
|
4
4
|
spec.authors = ["Taylor Lapeyre"]
|
5
5
|
spec.email = ["taylorlapeyre@gmail.com"]
|
6
6
|
spec.description = "A Lita handler that detects github comment notifications and regurgitates a ping to the correct slack username."
|