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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22a3c55423931d3500825fc7f3e82a427402c4a9402512aa74a84c98ce743554
4
- data.tar.gz: 9f31cd68ecaabd1e1b5a8b41fcfdbc17547d1b169e9890e0e33786162369602a
3
+ metadata.gz: '094839bb6f04f078249882a02919475b3661c4b34811a9cb50e0401384eb3898'
4
+ data.tar.gz: ba0930b35cf5935f6706e297a657c765a60e79220cff83185fe22002995532e4
5
5
  SHA512:
6
- metadata.gz: 8a105fc1e85ba1a43da53af7e1af47313a53a091a8ecff8422af215752d98a6c2d9552ce678c164891a392bea0568354ffd71b5dfef28544e577816f72991063
7
- data.tar.gz: 47636bfc97048f6808c29f9d52016117c848d8235929b191cd0240d7cc93dd4c9c8513da017d758593494414d29271088f4e4e3e9bb50bd1469e2077ae74b1fd
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
- p body["pull_request"]
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
- reviewer = body["pull_request"]["requested_reviewer"]
188
+ if !engineer
189
+ puts "Could not find engineer #{reviewer["login"]}"
190
+ next
191
+ end
171
192
 
172
- engineer = find_engineer(github: reviewer["login"])
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
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-github-pinger"
3
- spec.version = "0.9.6"
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."
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-github-pinger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Lapeyre