Skip to content

Commit 1c9a48b

Browse files
authored
Merge pull request #34 from florasaramago/messages-readability
Make Github messages more readable
2 parents 5096677 + 9a3716e commit 1c9a48b

File tree

2 files changed

+68
-37
lines changed

2 files changed

+68
-37
lines changed

src/event-actions/all.coffee

Lines changed: 64 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -22,65 +22,79 @@ extractMentionsFromBody = (body) ->
2222
else
2323
""
2424

25+
formatUrl = (adapter, url, text) ->
26+
switch adapter
27+
when "mattermost" || "slack"
28+
"<#{url}|#{text}>"
29+
else
30+
url
31+
2532
module.exports =
26-
commit_comment: (data, callback) ->
33+
commit_comment: (adapter, data, callback) ->
2734
comment = data.comment
2835
repo = data.repository
36+
repo_link = formatUrl adapter, repo.html_url, repo.name
37+
commit_link = formatUrl adapter, comment.html_url, comment.commit_id
2938

30-
callback "New comment by #{comment.user.login}
31-
on Commit #{comment.commit_id}: #{comment.body} - #{comment.html_url}"
39+
callback "[#{repo_link}] New comment by #{comment.user.login} on commit #{commit_link}: \n\"#{comment.body}\""
3240

33-
create: (data, callback) ->
41+
create: (adapter, data, callback) ->
3442
repo = data.repository
43+
repo_link = formatUrl adapter, repo.html_url, repo.name
3544
ref_type = data.ref_type
3645
ref = data.ref
3746

38-
callback "New #{ref_type} #{ref} created on #{repo.full_name}"
47+
callback "[#{repo_link}] New #{ref_type} #{ref} created"
3948

40-
delete: (data, callback) ->
49+
delete: (adapter, data, callback) ->
4150
repo = data.repository
51+
repo_link = formatUrl adapter, repo.html_url, repo.name
4252
ref_type = data.ref_type
4353

4454
ref = data.ref.split('refs/heads/').join('')
4555

46-
callback "#{ref_type} #{ref} deleted on #{repo.full_name}"
56+
callback "[#{repo_link}] #{ref_type} #{ref} deleted"
4757

48-
deployment: (data, callback) ->
58+
deployment: (adapter, data, callback) ->
4959
deploy = data.deployment
5060
repo = data.repository
5161

5262
callback "New deployment #{deploy.id} from: #{repo.full_name} to: #{deploy.environment} started by: #{deploy.creator.login}"
5363

54-
deployment_status: (data, callback) ->
64+
deployment_status: (adapter, data, callback) ->
5565
deploy = data.deployment
5666
deploy_status = data.deployment_status
5767
repo = data.repository
5868

5969
callback "Deployment #{deploy.id} from: #{repo.full_name} to: #{deploy.environment} - #{deploy_status.state} by #{deploy.status.creator.login}"
6070

61-
fork: (data, callback) ->
71+
fork: (adapter, data, callback) ->
6272
forkee = data.forkee
6373
repo = data.repository
74+
repo_link = formatUrl adapter, repo.html_url, repo.name
6475

65-
callback "#{repo.full_name} forked by #{forkee.owner.login}"
76+
callback "#{repo_link} forked by #{forkee.owner.login}"
6677

6778
# Needs to handle more then just one page
68-
gollum: (data, callback) ->
79+
gollum: (adapter, data, callback) ->
6980
pages = data.pages
7081
repo = data.repository
82+
repo_link = formatUrl adapter, repo.html_url, repo.name
7183
sender = data.sender
7284

7385
page = pages[0]
7486

75-
callback "Wiki page: #{page.page_name} #{page.action} on #{repo.full_name} by #{sender.login}"
87+
callback "[#{repo_link}] Wiki page: #{page.page_name} #{page.action} by #{sender.login}"
7688

77-
issues: (data, callback) ->
89+
issues: (adapter, data, callback) ->
7890
issue = data.issue
7991
repo = data.repository
92+
repo_link = formatUrl adapter, repo.html_url, repo.name
93+
issue_link = formatUrl adapter, issue.html_url, "##{issue.number} \"#{issue.title}\""
8094
action = data.action
8195
sender = data.sender
8296

83-
msg = "Issue \##{issue.number} \"#{issue.title}\""
97+
msg = "[#{repo_link}] Issue #{issue_link}"
8498

8599
switch action
86100
when "assigned"
@@ -98,36 +112,38 @@ module.exports =
98112
when "unlabeled"
99113
msg += " #{sender.login} removed label: \"#{data.label.name}\" "
100114

101-
callback msg + "- #{issue.html_url}"
115+
callback msg
102116

103-
issue_comment: (data, callback) ->
117+
issue_comment: (adapter, data, callback) ->
104118
issue = data.issue
105119
comment = data.comment
106120
repo = data.repository
121+
repo_link = formatUrl adapter, repo.html_url, repo.name
122+
comment_link = formatUrl adapter, comment.html_url, "#{issue_pull} ##{issue.number}"
107123

108124
issue_pull = "Issue"
109125

110126
if comment.html_url.indexOf("/pull/") > -1
111127
issue_pull = "Pull Request"
112128

113-
callback "New Comment on #{issue_pull} \##{issue.number} by #{comment.user.login}: \"#{comment.body}\" - #{comment.html_url}"
129+
callback "[#{repo_link}] New comment on #{comment_link} by #{comment.user.login}: \n\"#{comment.body}\""
114130

115-
member: (data, callback) ->
131+
member: (adapter, data, callback) ->
116132
member = data.member
117133
repo = data.repository
118134

119135
callback "Member #{member.login} #{data.action} from #{repo.full_name}"
120136

121137
# Org level event
122-
membership: (data, callback) ->
138+
membership: (adapter, data, callback) ->
123139
scope = data.scope
124140
member = data.member
125141
team = data.team
126142
org = data.organization
127143

128144
callback "#{org.login} #{data.action} #{member.login} to #{scope} #{team.name}"
129145

130-
page_build: (data, callback) ->
146+
page_build: (adapter, data, callback) ->
131147
build = data.build
132148
repo = data.repository
133149
if build?
@@ -136,24 +152,28 @@ module.exports =
136152
if build.error.message?
137153
callback "Page build for #{data.repository.full_name} errored: #{build.error.message}."
138154

139-
pull_request_review_comment: (data, callback) ->
155+
pull_request_review_comment: (adapter, data, callback) ->
140156
comment = data.comment
141157
pull_req = data.pull_request
142158
base = data.base
143159
repo = data.repository
160+
repo_link = formatUrl adapter, repo.html_url, repo.name
161+
comment_link = formatUrl adapter, comment.html_url, pull_req.title
144162

145-
callback "New Comment on Pull Request \"#{comment.body}\" by #{comment.user.login}: #{comment.html_url}"
163+
callback "[#{repo_link}] New comment on Pull Request #{comment_link} by #{comment.user.login}: \n\"#{comment.body}\""
146164

147-
pull_request: (data, callback) ->
165+
pull_request: (adapter, data, callback) ->
148166
pull_num = data.number
149167
pull_req = data.pull_request
150168
base = data.base
151169
repo = data.repository
170+
repo_link = formatUrl adapter, repo.html_url, repo.name
171+
pull_request_link = formatUrl adapter, pull_req.html_url, "##{data.number} \"#{pull_req.title}\""
152172
sender = data.sender
153173

154174
action = data.action
155175

156-
msg = "Pull Request \##{data.number} \"#{pull_req.title}\" "
176+
msg = "[#{repo_link}] Pull Request #{pull_request_link}"
157177

158178
switch action
159179
when "assigned"
@@ -176,44 +196,54 @@ module.exports =
176196
when "synchronize"
177197
msg +=" synchronized by #{sender.login} "
178198

179-
callback msg + "- #{pull_req.html_url}"
199+
callback msg
180200

181-
push: (data, callback) ->
201+
push: (adapter, data, callback) ->
182202
commit = data.after
183203
commits = data.commits
184204
head_commit = data.head_commit
185205
repo = data.repository
206+
repo_link = formatUrl adapter, repo.html_url, repo.name
186207
pusher = data.pusher
187208

188209
if !data.deleted
189-
callback "New Commit \"#{head_commit.message}\" to #{repo.full_name} by #{pusher.name}: #{head_commit.url}"
210+
if commits.length == 1
211+
commit_link = formatUrl adapter, head_commit.url, "\"#{head_commit.message}\""
212+
callback "[#{repo_link}] New commit #{commit_link} by #{pusher.name}"
213+
else if commits.length > 1
214+
message = "[#{repo_link}] #{pusher.name} pushed #{commits.length} commits:"
215+
for commit in commits
216+
commit_link = formatUrl adapter, commit.url, "\"#{commit.message}\""
217+
message += "\n#{commit_link}"
218+
callback message
190219

191220
# Org level event
192-
repository: (data, callback) ->
221+
repository: (adapter, data, callback) ->
193222
repo = data.repository
194223
org = data.organization
195224
action = data.action
196225

197226
callback "#{repo.full_name} #{action}"
198227

199-
release: (data, callback) ->
228+
release: (adapter, data, callback) ->
200229
release = data.release
201230
repo = data.repository
231+
repo_link = formatUrl adapter, repo.html_url, repo.name
202232
action = data.action
203233

204-
callback "Release #{release.tag_name} #{action} on #{repo.full_name}"
234+
callback "[#{repo_link}] Release #{release.tag_name} #{action}"
205235

206236
# No clue what to do with this one.
207-
status: (data, callback) ->
237+
status: (adapter, data, callback) ->
208238
commit = data.commit
209239
state = data.state
210240
branches = data.branches
211241
repo = data.repository
212242

213243
callback ""
214244

215-
watch: (data, callback) ->
245+
watch: (adapter, data, callback) ->
216246
repo = data.repository
217247
sender = data.sender
218248

219-
callback "#{repo.full_name} is now being watched by #{sender.login}"
249+
callback "#{repo.full_name} is now being watched by #{sender.login}"

src/github-repo-event-notifier.coffee

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ module.exports = (robot) ->
6767
room = query.room || process.env["HUBOT_GITHUB_EVENT_NOTIFIER_ROOM"]
6868
eventType = req.headers["x-github-event"]
6969
robot.logger.debug "github-repo-event-notifier: Processing event type: \"#{eventType}\"..."
70+
adapter = robot.adapterName
7071

7172
try
7273

@@ -92,7 +93,7 @@ module.exports = (robot) ->
9293
return false # no match, fail
9394

9495
if filter_parts.length > 0
95-
announceRepoEvent data, eventType, (what) ->
96+
announceRepoEvent adapter, data, eventType, (what) ->
9697
robot.messageRoom room, what
9798
else
9899
console.log "Ignoring #{eventType}:#{data.action} as it's not allowed."
@@ -102,8 +103,8 @@ module.exports = (robot) ->
102103

103104
res.end ""
104105

105-
announceRepoEvent = (data, eventType, cb) ->
106+
announceRepoEvent = (adapter, data, eventType, cb) ->
106107
if eventActions[eventType]?
107-
eventActions[eventType](data, cb)
108+
eventActions[eventType](adapter, data, cb)
108109
else
109110
cb("Received a new #{eventType} event, just so you know.")

0 commit comments

Comments
 (0)