class PullRequestSummarizer::Summarizer

Attributes

pull_request_number[R]

Public Class Methods

new(pull_request_number) click to toggle source
# File lib/pull_request_summarizer/summarizer.rb, line 10
def initialize(pull_request_number)
  @pull_request_number = pull_request_number
end

Public Instance Methods

summarize() click to toggle source
# File lib/pull_request_summarizer/summarizer.rb, line 14
def summarize
  pull_request = github.pull_request(everypolitician_data_repo, pull_request_number)
  files = github.pull_request_files(everypolitician_data_repo, pull_request_number)
  popolo_before_after = FindPopoloFiles.from(files).map do |file|
    {
      path:   file[:filename],
      before: open(file[:raw_url].sub(pull_request[:head][:sha], pull_request[:base][:sha])).read,
      after:  open(file[:raw_url]).read,
    }
  end

  begin
    ReviewChanges.new(popolo_before_after).to_html
  rescue Octokit::UnprocessableEntity => e
    raise Error, "Unable to review pull request #{pull_request_number}: #{e.message}"
  end
end

Private Instance Methods

everypolitician_data_repo() click to toggle source
# File lib/pull_request_summarizer/summarizer.rb, line 40
def everypolitician_data_repo
  ENV.fetch('EVERYPOLITICIAN_DATA_REPO', 'everypolitician/everypolitician-data')
end
github() click to toggle source
# File lib/pull_request_summarizer/summarizer.rb, line 34
def github
  @github ||= Octokit::Client.new.tap do |g|
    g.access_token = ENV['GITHUB_ACCESS_TOKEN']
  end
end