lib/reviewlette/github_connection.rb
require 'octokit'
class Reviewlette
class GithubConnection
attr_accessor :client, :repo
def initialize(repo, token)
@client = Octokit::Client.new(access_token: token)
@repo = repo
end
def pull_requests
@client.pull_requests(@repo)
end
def labels(issue)
@client.labels_for_issue(@repo, issue).map(&:name)
end
def add_assignees(number, assignees)
@client.update_issue(@repo, number, assignees: assignees)
end
def comment_reviewers(number, reviewers, trello_card)
assignees = reviewers.map { |r| "@#{r.github_handle}" }.join(' and ')
comment = <<-eos
#{assignees} will review your pull request :dancers: check #{trello_card.url}
#{assignees}: Please review this pull request using our guidelines:
* test for acceptance criteria / functionality
* check if the new code is covered with tests
* check for unintended consequences
* encourage usage of the boyscout rule
* make sure the code is architected in the best way
* check that no unnecessary technical debt got introduced
* make sure that no unnecessary FIXMEs or TODOs got added
eos
@client.add_comment(@repo, number, comment)
end
def repo_exists?
@client.repository?(@repo)
end
end
end