Sha256: 7c9728f49d356dd2368ef6286a25e7d3a9e87ec3e143028fa631c8a6207e7699
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true require 'rake_factory' require 'octokit' require 'git' module RakeGithub module Tasks module PullRequests class Merge < RakeFactory::Task default_description(RakeFactory::DynamicValue.new do |t| "Merges pull request on the current branch in the #{t.repository} repository" end) parameter :repository, required: true parameter :access_token, required: true parameter :commit_message, default: '' action do |t| current_branch = Git.open(Pathname.new('.')).current_branch github_client = Octokit::Client.new(access_token: access_token) open_prs = github_client.pull_requests(t.repository) current_pr = open_prs .find { |pr| pr[:head][:ref] == current_branch } raise NoPullRequestError.new current_branch if current_pr.nil? github_client.merge_pull_request( t.repository, current_pr[:number], format(t.commit_message % current_pr[:title]) ) end end end end end class NoPullRequestError < StandardError attr_reader :branch_name def initialize(branch_name) @branch_name = branch_name end def message "No pull request associated with branch %s" % branch_name end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rake_github-0.8.0.pre.6 | lib/rake_github/tasks/pull_requests/merge.rb |