お仕事上、普段からいろんな修正とか改善とかを github の Pull Request ベースで進めてるんですが、プルリクエスト送るのってブラウザからだとめんどくさいですよね。何回もやる作業なのにそもそもブラウザを開いてっていうのが、、

というのもあってだいぶ前からhubコマンドを使ってます。hub pull-request でプルリクエスト送れたり、hub browse で github の各ページを開けたりとすごく便利です。ただ、そのときにちょこちょこコピペしたりしてたのがアレだったので簡単なコマンドを作りました。

# pull_request.rb
# 現在のブランチ名を取得
def branch_name
  `git branch | grep '^\*' | cut -b 3-`.chomp
end

def repos
  'sasata2xx'
end

def commit_message(branch_name)
  branch_name.capitalize.gsub('_', ' ')
end

def pull_request
  "hub pull-request -h #{repos}:#{branch_name} '#{commit_message(branch_name)}'"
end

pull_request_id = `#{pull_request}`.split('/')[-1].chomp
system "hub browse -- pull/#{pull_request_id}"

コミットしてブランチを作ったら、ブランチ名からメッセージを勝手に作り、プルリクエストを送ってくれます。そしてプルリクエストのページをブラウザで開いてくれます。楽チン。

基本的には hub pull-request だけ(引数無し)でもプルリクエスト送ってくれるんですが、コミットを入力する画面が出てきて入力を促されます。が、引数渡せば代わりにそれを使ってくれるのでそうしてます。いちいち入力するのも面倒なのでブランチ名から適当にそれっぽくしてw

あと、-h foo:bar のように引数を指定するとプルリクエスト元を変更することも可能です。

# 引数として -h xxx を付けない場合
自分のリポジトリ:現在のブランチ -> originのリポジトリ:master

# -h foo:bar を付けた場合
foo:bar -> originのリポジトリ:master

必要なのは hub のインストールだけ。Mac だったら homebrew で一発。なるべく自動化して楽をしちゃいましょう〜。

brew install hub
このエントリーをはてなブックマークに追加