git_helper.rb (30 lines of code) (raw):

require "octokit" class GitHelper attr_reader :git_client, :repo_name def initialize(repo_name) print "not " if ENV.fetch("GITHUB_TOKEN", "").empty? puts "using a github token" @git_client = Octokit::Client.new(:access_token => ENV["GITHUB_TOKEN"]) fail("Repo name cannot be null or empty") if repo_name.nil? || repo_name.empty? @repo_name = repo_name end def commit(repo_path, branch_name, commit_msg) puts "Committing changes..." Dir.chdir(repo_path) do |path| `git checkout -b #{branch_name}` `git add .` `git commit -m "#{commit_msg}" -a` `git push origin #{branch_name}` end end def create_pull_request(branch_name, against_branch, title, description, options = {}) puts "Creating a PR..." @git_client.create_pull_request(@repo_name, against_branch, branch_name, title, description, options) end def branch_exists?(branch_name) @git_client.branch(@repo_name, branch_name) true rescue Octokit::NotFound false end end