Sha256: 69dea858a235c39852cbb975a051a3e72983a10458c18fa7b7a749be76c8e13e

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

require 'yaml'
require 'octokit'

class GithubConnection

  attr_accessor :client, :repo

  def initialize(repo, token)
    @client  = Octokit::Client.new(access_token: token)
    @repo    = repo
  end

  def list_pulls
    @client.pull_requests(@repo)
  end

  def add_assignee(number, assignee)
    @client.update_issue(@repo, number, assignee: assignee)
  end

  def reviewer_comment(number, assignee, trello_card)
    comment = "@#{assignee} is your reviewer :dancers: check #{trello_card.url} \n" \
              "@#{assignee}: Please review this pull request using our guidelines: \n" \
              "* test for acceptance criteria / functionality \n" \
              "* check if the new code is covered with tests \n" \
              "* check for unintended consequences \n" \
              "* encourage usage of the boyscout rule \n" \
              "* make sure the code is architected in the best way \n" \
              "* check that no unnecessary technical debt got introduced \n" \
              "* make sure that no unnecessary FIXMEs or TODOs got added \n"
    @client.add_comment(@repo, number, comment)
  end

  def unassigned_pull_requests
    list_pulls.select { |issue| !issue[:assignee] }
  end

  def repo_exists?
    @client.repository?(@repo)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reviewlette-0.0.9 lib/reviewlette/github_connection.rb