pecoを使ってissueをコマンドラインから開く方法


開発中にissueを見ようとして、

  • ブラウザを開き
  • issueを検索して
  • でも日本語で検索してもうまく見つからなくてあーーーー。

っていうことありませんか。僕はあります。
issueもコマンドラインで開きたいし、賢く日本語で検索したいですよね。実現しましょう!

ghiとpecoの導入

まず、コマンドラインからissueを作成・閲覧などができる、ghiというruby製のツールをインストールします。

$ brew install ghi

利用するためには、ユーザー認証を行う必要があるので、それも併せて行いましょう。

$ ghi config --auth mamoru0217
Enter mamoru0217's GitHub password (never stored)

peco

もはや説明いらないと思いますが、pecoもインストールしておきましょう。こちらも、homebrewで一発です。

$ brew install peco

pecoの使い方について詳しくはhttp://qiita.com/xtetsuji/items/05f6f4c1b17854cdd75b などが参考になります。

pecoで日本語検索を可能にする

日本語がタイトルに含まれているissueも多いとので、migemogrepでローマ字から日本語のサーチができるようにしておきましょう。

$ brew tap peco/peco
$ brew install migemogrep

その後、~/config/peco以下にconfig.jsonを作成します。

config.json
{
  "CustomFilter": {
    "Migemo": {
      "Cmd": "migemogrep",
      "BufferThreshold": 10000
    }
  }
}

すると、pecoを利用している時に、ctrl + rで選択できるfilterMigemoが追加されて、ローマ字から日本語の文章をサーチすることができるようになります。

とりあえず以下を書けば良い

上記のインストールが全て完了したら、.bashrcなどに、例えば

show_open_issues_on_web() {
  ghi show -w $(ghi list --filter 'all'| peco)
}
alias si=show_open_issues_on_web

と書けば、

というように、コマンドラインからissueのリストを呼び出し、ローマ字で日本語検索した上で、webで閲覧できるようになります。

やっていることはよくあるpecoの使い方ですね。

簡単にghiの説明

ghi listで、カレントディレクトリのレポジトリのすべてのopen issue(pull request含む)のリストを出すことができます。

$ ghi list
# wantedly/wantedly open issues
  18062: 年末年始対応について ↑
  18061: 高速化アイデアのまとめ 10
  18057: 利用できる記号について Question
  ...
  • が付いているものはpull requestです
  • タイトルの横についている数字は、コメントの数です
  • タイトルの横についている文字はlabelです

利用できるオプション

よく使いそうなものを挙げておきます。

オプション名 説明
-s, --state 'open' or 'close' issueのstateを指定(デフォルトはopen)
-L, --label ... ラベルを指定
-u, --[no-]assignee [] がアサインされたもの
--mine(--assigneeと同じ) 自分がアサインされたもの
-U, --mentioned [] メンションされたもの