class Prpr::Action::Lgtm::Comment
Public Instance Methods
call()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 5 def call if count == 1 add_label label(:one) elsif count >= 2 unless already_labeled?(label(:over_2)) remove_label label(:one) add_label label(:over_2) add_comment end end end
Private Instance Methods
add_comment()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 51 def add_comment github.add_comment(repository, pull_request_number, message) end
add_label(label)
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 59 def add_label(label) return if already_labeled?(label) github.add_labels_to_an_issue(repository, pull_request_number, [label]) end
already_labeled?(label)
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 69 def already_labeled?(label) labels.map(&:name).any? { |name| name == label } end
count()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 19 def count last_state.map(&method(:point)).reduce(:+) end
github()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 93 def github Repository::Github.default end
label(name)
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 77 def label(name) Config::Env.default[:"lgtm_label_#{name}"] || name.to_s end
labels()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 73 def labels github.labels_for_issue(repository, pull_request_number) end
last_state()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 23 def last_state last_state = {} reviews.each do|review| if review[:state] != 'COMMENTED' last_state[review[:user][:login]] = review[:state] end end last_state.values end
message()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 55 def message env.format(:lgtm_body, event.pull_request.assignee) end
name()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 81 def name env[:mention_comment_members] || 'MEMBERS.md' end
point(state)
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 33 def point(state) case state when 'APPROVED' 1 when 'CHANGES_REQUESTED' -1 else 0 end end
pull_request_number()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 89 def pull_request_number event.pull_request.number end
remove_label(label)
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 64 def remove_label(label) return unless already_labeled?(label) github.remove_label(repository, pull_request_number, label) end
repository()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 85 def repository event.repository.full_name end
reviews()
click to toggle source
# File lib/prpr/action/lgtm/comment.rb, line 44 def reviews # FIXME: use offical method @reviews ||= github.get "#{Octokit::Repository.path repository}/pulls/#{pull_request_number}/reviews", accept: 'application/vnd.github.black-cat-preview+json' end