lita-github-pinger 0.9.6 → 0.9.7
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/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."
|