class Pully::Pully
Public Class Methods
new(user:, pass:, repo:, owner:)
click to toggle source
# File lib/pully.rb, line 13 def initialize(user:, pass:, repo:, owner:) @user = user @pass = pass @repo = repo @owner = owner @repo_selector = @owner ? "#{@owner}/#{@repo}" : "#{@user}/#{@repo}" @gh_client = Octokit::Client.new(:login => @user, :password => @pass) begin @gh_client.user #throw exception if auth is bad rescue Octokit::Unauthorized raise Error::BadLogin end raise Error::NonExistantRepository unless @gh_client.repository?(@repo_selector) end
Public Instance Methods
comments_for_pull_request(pull_number)
click to toggle source
# File lib/pully.rb, line 34 def comments_for_pull_request pull_number @gh_client.issue_comments(@repo_selector, pull_number) end
create_pull_request(from:, to:, subject:, message:)
click to toggle source
# File lib/pully.rb, line 30 def create_pull_request(from:, to:, subject:, message:) @gh_client.create_pull_request(@repo_selector, to, from, subject, message)["number"] end
merge_pull_request(pull_number, message='Merged Pull Request')
click to toggle source
# File lib/pully.rb, line 66 def merge_pull_request(pull_number, message='Merged Pull Request') @gh_client.merge_pull_request(@repo_selector, pull_number, message) end
open_or_pending_pull_requests()
click to toggle source
# File lib/pully.rb, line 55 def open_or_pending_pull_requests requests = @gh_client.pull_requests(@repo_selector, :state => 'open').map{|e| e["number"]} requests.select!{|e| ["open", "pending"].include? pull_request_status(e) } requests end
pull_request_branches(pull_number)
click to toggle source
# File lib/pully.rb, line 70 def pull_request_branches(pull_number) from_name = @gh_client.pull_request(@repo_selector, pull_number).head.ref to_name = @gh_client.pull_request(@repo_selector, pull_number).base.ref return {:from => from_name, :to => to_name} end
pull_request_is_open?(pull_number)
click to toggle source
# File lib/pully.rb, line 77 def pull_request_is_open?(pull_number) @gh_client.pull_request(@repo_selector, pull_number)["state"] == 'open' end
pull_request_status(pull_number)
click to toggle source
# File lib/pully.rb, line 46 def pull_request_status(pull_number) sha = sha_for_pull_request pull_number @gh_client.combined_status(@repo_selector, sha)["state"] end
pull_requests()
click to toggle source
# File lib/pully.rb, line 51 def pull_requests return @gh_client.pull_requests(@repo_selector, :state => 'open').map{|e| e["number"]} end
set_pull_request_status(pull_number, status)
click to toggle source
# File lib/pully.rb, line 61 def set_pull_request_status(pull_number, status) sha = sha_for_pull_request pull_number @gh_client.create_status(@repo_selector, sha, status) end
sha_for_pull_request(pull_number)
click to toggle source
# File lib/pully.rb, line 42 def sha_for_pull_request pull_number @gh_client.pull_request(@repo_selector, pull_number).head.sha end
write_comment_to_pull_request(pull_number, comment)
click to toggle source
# File lib/pully.rb, line 38 def write_comment_to_pull_request pull_number, comment @gh_client.add_comment(@repo_selector, pull_number, comment) end