Class: Tokite::HookEvent::PullRequest
- Inherits:
-
BaseEvent
- Object
- BaseEvent
- Tokite::HookEvent::PullRequest
show all
- Defined in:
- app/models/tokite/hook_event/pull_request.rb
Instance Attribute Summary
Attributes inherited from BaseEvent
#hook_params
Instance Method Summary
collapse
Methods inherited from BaseEvent
#initialize, #slack_payload
Instance Method Details
#fields ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
|
# File 'app/models/tokite/hook_event/pull_request.rb', line 4
def fields
{
event: "pull_request",
repo: hook_params[:repository][:full_name],
title: hook_params[:pull_request][:title],
body: hook_params[:pull_request][:body],
user: hook_params[:pull_request][:user][:login],
label: hook_params[:pull_request][:labels].map { |label| label[:name] },
requested_reviewer: hook_params[:requested_reviewer]&.[](:login) || hook_params[:pull_request][:requested_reviewers].map { |reviewer| reviewer[:login] },
requested_team: hook_params[:pull_request][:requested_teams].map { |team| parse_team_name(team) },
}
end
|
#notify? ⇒ Boolean
26
27
28
|
# File 'app/models/tokite/hook_event/pull_request.rb', line 26
def notify?
%w(opened review_requested).include?(hook_params[:action])
end
|
#parse_team_name(team) ⇒ Object
17
18
19
20
21
22
23
24
|
# File 'app/models/tokite/hook_event/pull_request.rb', line 17
def parse_team_name(team)
html_url = team[:html_url]
if /\/orgs\/(?<org_name>[^\s\/]+)\/teams\/(?<team_name>[^\s\/]+)\z/ =~ html_url
org_name + "/" + team_name
else
team[:slug] || team[:name]
end
end
|
#slack_attachment ⇒ Object
39
40
41
42
43
44
45
46
47
|
# File 'app/models/tokite/hook_event/pull_request.rb', line 39
def slack_attachment
{
title: "##{hook_params[:pull_request][:number]} #{hook_params[:pull_request][:title]}",
title_link: hook_params[:pull_request][:html_url],
fallback: "#{hook_params[:pull_request][:title]}\n#{hook_params[:pull_request][:body]}",
text: hook_params[:pull_request][:body] || "No description provided.",
color: "good",
}
end
|
#slack_text ⇒ Object
30
31
32
33
34
35
36
37
|
# File 'app/models/tokite/hook_event/pull_request.rb', line 30
def slack_text
case hook_params[:action]
when 'opened'
"[#{hook_params[:repository][:full_name]}] Pull request submitted by <#{hook_params[:pull_request][:user][:html_url]}|#{hook_params[:pull_request][:user][:login]}>"
when 'review_requested'
"[#{hook_params[:repository][:full_name]}] Pull request review requested by <#{hook_params[:pull_request][:user][:html_url]}|#{hook_params[:pull_request][:user][:login]}>"
end
end
|