class Lita::Reviewme::Github

Attributes

config[R]
pr_id[R]
repo[R]

Public Class Methods

new(config, repo, pr_id) click to toggle source
# File lib/lita-reviewme/github.rb, line 20
def initialize(config, repo, pr_id)
  @config = config
  @repo = repo
  @pr_id = pr_id
end

Public Instance Methods

assign(reviewer) click to toggle source
# File lib/lita-reviewme/github.rb, line 32
def assign(reviewer)
  request_review(reviewer) if github_request_review
  add_comment(reviewer) if github_comment
rescue Octokit::Error
  raise CannotPostComment
end
owner() click to toggle source
# File lib/lita-reviewme/github.rb, line 26
def owner
  pull_request.user.login
rescue Octokit::Error
  raise UnknownOwner
end

Private Instance Methods

add_comment(reviewer) click to toggle source
# File lib/lita-reviewme/github.rb, line 55
def add_comment(reviewer)
  client.add_comment(repo, pr_id, comment(reviewer))
end
client() click to toggle source
# File lib/lita-reviewme/github.rb, line 41
def client
  @client ||= Octokit::Client.new(access_token: github_access_token)
end
comment(reviewer) click to toggle source
# File lib/lita-reviewme/github.rb, line 59
def comment(reviewer)
  if github_comment_template.respond_to?(:call)
    github_comment_template.call(reviewer, pull_request)
  else
    github_comment_template % { reviewer: "@#{reviewer}" }
  end
end
pull_request() click to toggle source
# File lib/lita-reviewme/github.rb, line 45
def pull_request
  @pull_request ||= client.pull_request(repo, pr_id)
end
request_review(reviewer) click to toggle source
# File lib/lita-reviewme/github.rb, line 49
def request_review(reviewer)
  options = { accept: 'application/vnd.github.black-cat-preview' }

  client.request_pull_request_review(repo, pr_id, [reviewer], options)
end