lita-github-pinger 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c02180295dcf0e5bcabbcc58ba346d4ffd352e12
4
- data.tar.gz: f436e69420273ecb918a20e15f16c5a86f0bc6e2
3
+ metadata.gz: 86fdffcf6c595d041202bf131f3131e36c45abc2
4
+ data.tar.gz: 60bf57e40b1c281c48cf5d89e76b4a3eae9456e8
5
5
  SHA512:
6
- metadata.gz: 802a892a377b6e11434990d6735da9c462fdc4c7e04c616a0eb9f5db9e2fae3f7fc440ee9e6e322052de409c5eea17253a7a74506d5fba0c423031498df1f461
7
- data.tar.gz: 7903b0a7d5c748291cb426637febfc76647f652e6be58bb30b4c75fb46b3f1d8ac759b923bad50153d0ef76b93f0cae3b549626ac5e38c09a9b2d517f9121c84
6
+ metadata.gz: 4cddff5c4b5995d2da602c27df3e25617065e39fd10d8ef273fe01862bcf532c63ec7f73a23251b87fdb6f00d733c7e6e3847f74af45589ad6e512fd7f969335
7
+ data.tar.gz: 9b7cc2cf54c7a6508cdaeb16fd88ca8ad3417ea9b8d8163365d023312ad3eb6a3a19bd6c029b55de68b4180a340234d9b1763d713d99cd1a3c8f7f2df8af69fc
@@ -7,36 +7,60 @@ module Lita
7
7
  http.post("/ghping", :ghping)
8
8
 
9
9
  def ghping(request, response)
10
+
11
+ puts "######################################"
12
+ puts "GitHub hook received. Parsing body... "
13
+
10
14
  body = MultiJson.load(request.body)
11
15
 
16
+ print "Done."
17
+ puts "######################################"
18
+
12
19
  if body["comment"]
20
+ puts "Detected a comment. Extracting data... "
21
+
13
22
  thing = body["pull_request"] || body["issue"]
14
23
  pr_url = thing["html_url"]
15
24
  comment = body["comment"]["body"]
16
- commenter = github_to_slack_username(body["comment"]["user"]["login"])
25
+ commenter = body["comment"]["user"]["login"]
26
+ pr_owner = thing["user"]["login"]
27
+
28
+ puts "Found PR #{pr_url}"
29
+ puts "Found commenter #{commenter}"
30
+ puts "Found pr owner #{pr_owner}"
17
31
 
18
32
  usernames_to_ping = []
19
33
  # automatically include the creator of the PR, unless he's
20
34
  # commenting on his own PR
21
- if body["comment"]["user"]["login"] != thing["user"]["login"]
22
- usernames_to_ping << [thing["user"]["login"]]
35
+ if commenter != pr_owner
36
+ puts "Commenter is not the pr owner. Adding to list of usernames to ping."
37
+ usernames_to_ping << pr_owner
23
38
  end
24
39
 
40
+ puts "So far, github usernames to ping: #{usernames_to_ping}"
25
41
 
26
42
  # Is anyone mentioned in this comment?
27
43
  if comment.include?("@")
44
+ puts "Found @mentions in the body of the comment! Extracting usernames... "
45
+
28
46
  # get each @mentioned username in the comment
29
47
  mentions = comment.split("@")[1..-1].map { |snip| snip.split(" ").first }
48
+ print "Done. (Got #{mentions})"
30
49
 
31
50
  # add them to the list of usernames to ping
32
51
  usernames_to_ping = usernames_to_ping.concat(mentions).uniq
33
52
  end
34
53
 
54
+ puts "New list of github usernames to ping: #{usernames_to_ping}."
55
+ puts "Converting github usernames to slack usernames... "
56
+
35
57
  # slackify all of the users
36
58
  usernames_to_ping.map! { |user| github_to_slack_username(user) }
37
59
 
38
- puts "Got a comment on something, sending messages to #{usernames_to_ping}"
39
- usernames_to_ping.each do |user|
60
+ print "Done. (Got #{usernames_to_ping})"
61
+
62
+ puts "Starting pinging process for each engineer..."
63
+ usernames_to_ping.compact.each do |user|
40
64
 
41
65
  pref = find_engineer(slack: user)[:preference]
42
66
  case pref
@@ -53,15 +77,19 @@ module Lita
53
77
  end
54
78
 
55
79
  end
80
+
81
+ puts "GitHub Hook successfully processed."
56
82
  end
57
83
 
58
84
  response
59
85
  end
60
86
 
61
87
  def alert_eng_pr(message)
88
+ puts "Alerting #eng-pr about content #{message[0..5]}... "
62
89
  room = Lita::Room.fuzzy_find("eng-pr")
63
90
  source = Lita::Source.new(room: room)
64
91
  robot.send_message(source, message)
92
+ puts "Done."
65
93
  end
66
94
 
67
95
  def find_engineer(slack: nil, github: nil)
@@ -75,13 +103,16 @@ module Lita
75
103
  end
76
104
 
77
105
  def github_to_slack_username(github_username)
78
- find_engineer(github: github_username)[:slack]
106
+ engineer = find_engineer(github: github_username)
107
+ engineer[:slack] if engineer
79
108
  end
80
109
 
81
110
  def send_dm(username, content)
111
+ puts "Sending DM to #{username} with content #{content[0..5]}... "
82
112
  if user = Lita::User.fuzzy_find(username)
83
113
  source = Lita::Source.new(user: user)
84
114
  robot.send_message(source, content)
115
+ print "Done."
85
116
  else
86
117
  alert_eng_pr("Could not find user with name #{username}, please configure everbot.")
87
118
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-github-pinger"
3
- spec.version = "0.4.3"
3
+ spec.version = "0.4.4"
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.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taylor Lapeyre