class Prpr::Action::MentionReviewers::Mention

Public Instance Methods

call() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 5
def call
  Publisher::Adapter::Base.broadcast message
end

Private Instance Methods

body() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 24
        def body
          <<-END
#{reviewer_mention_name}
#{comment_body}
#{pull_request.html_url}
          END
        end
comment_body() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 32
def comment_body
  comment = env.format(:mention_reviewers_body, pull_request)
  comment.empty? ? "Please review my PR: #{pull_request.title}" : comment
end
config() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 63
def config
  @config ||= Config::Github.new(repository_name)
end
env() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 67
def env
  Config::Env.default
end
from() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 45
def from
  event.sender
end
members() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 53
def members
  @members ||= config.read(name).lines.map { |line|
    if line =~ / \* (\S+):\s*(\S+)/
      [$1, $2]
    end
  }.to_h
rescue
  @members ||= {}
end
message() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 11
def message
  channel = to_dm? ? reviewer_mention_name : room
  Prpr::Publisher::Message.new(body: body, from: from, room: channel)
end
name() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 71
def name
  env[:mention_comment_members] || 'MEMBERS.md'
end
pull_request() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 16
def pull_request
  event.pull_request
end
repository_name() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 75
def repository_name
  event.repository.full_name
end
requested_reviewer() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 20
def requested_reviewer
  event.requested_reviewer
end
reviewer() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 41
def reviewer
  "@#{requested_reviewer.login}"
end
reviewer_mention_name() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 37
def reviewer_mention_name
  members[reviewer] || reviewer
end
room() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 49
def room
  env[:mention_comment_room]
end
to_dm?() click to toggle source
# File lib/prpr/action/mention_reviewers/mention.rb, line 79
def to_dm?
  env[:mention_reviewers_to_dm] == 'true'
end