Class: Tokite::HookEvent::PullRequestReview

Inherits:
BaseEvent
  • Object
show all
Defined in:
app/models/tokite/hook_event/pull_request_review.rb

Instance Attribute Summary

Attributes inherited from BaseEvent

#hook_params

Instance Method Summary collapse

Methods inherited from BaseEvent

#initialize, #slack_payload

Constructor Details

This class inherits a constructor from Tokite::HookEvent::BaseEvent

Instance Method Details

#fieldsObject



4
5
6
7
8
9
10
11
12
# File 'app/models/tokite/hook_event/pull_request_review.rb', line 4

def fields
  {
    event: "pull_request_review",
    repo: hook_params[:repository][:full_name],
    body: hook_params[:review][:body] || "",
    user: hook_params[:review][:user][:login],
    review_state: hook_params[:review][:state],
  }
end

#notify?Boolean

Returns:

  • (Boolean)


14
15
16
17
18
19
20
21
22
# File 'app/models/tokite/hook_event/pull_request_review.rb', line 14

def notify?
  if hook_params[:action] != "submitted"
    false
  elsif hook_params[:review][:state] == "commented"
    hook_params[:review][:body] != nil
  else
    true
  end
end

#slack_attachmentObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/models/tokite/hook_event/pull_request_review.rb', line 38

def slack_attachment
  case hook_params[:review][:state]
    when "commented"
    when "approved"
      color = "good"
    when "changes_requested"
      color = "warning"
  end
  {
    fallback: hook_params[:review][:body] || "",
    text: hook_params[:review][:body] || "",
    color: color,
  }
end

#slack_textObject



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/models/tokite/hook_event/pull_request_review.rb', line 24

def slack_text
  repo = "<#{hook_params[:repository][:html_url]}|[#{hook_params[:repository][:full_name]}]>"
  user = "<#{hook_params[:review][:user][:html_url]}|#{hook_params[:review][:user][:login]}>"
  title = "<#{hook_params[:pull_request][:html_url]}|##{hook_params[:pull_request][:number]} #{hook_params[:pull_request][:title]}>"
  case hook_params[:review][:state]
    when "commented"
      "#{repo} New comment by #{user} on pull request #{title}"
    when "approved"
      "#{repo} #{user} approved #{title}"
    when "changes_requested"
      "#{repo} #{user} requested changes #{title}"
  end
end