cli/cli をシェルでちょっといい感じにする
はじめに
GitHub製のCLIツールである GitHub - cli/cli: GitHub’s official command line tool の小ネタです。
ちなみに cli はhttps://github.com/github/hub というツールの後継に当たります。
zsh と peco でシュッっとブラウザに飛ぶをやってみる
チーム開発でよくしたくなるのは、手元でissueやPRの一覧を確認して、シュッっとブラウザに飛ぶことではないでしょうか。
ghコマンドで実際にissueとPRをブラウザで開くコマンドは以下のような形式を取ります。 ですが、issueやPRの番号とかいちいち覚えてないと思います。
gh issue view <number> --web gh pr view <number> --web
なので、
gh issue list gh pr list
などの一覧を取得するコマンドから番号だけ抜き取るようにします。
❯ gh pr list Showing 4 of 4 pull requests in kayac/ddl-maker #23 Support for FULL TEXT index shmokmt:full-text-index #22 add LF to EOF shogo82148:add-lf-to-eof #21 Add new nullable types shogo82148:add-new-nullable-types #20 add go.mod shogo82148:add-go-mod
空白で列を分割できそうなので、awk
で分割してあげます。
gh issue list | peco | awk -F" " '{print $1}' | read num; gh issue view $num --web gh pr list | peco | awk -F" " '{print $1}' | read num; gh pr view $num --web
毎回これらのコマンドを実行するのは面倒なので、function
として ~/.zshrc
にでも登録してあげると良いと思います。
function issue() { line=$(gh issue list | peco) num=$(echo "${line}" | awk -F" " '{print $1}') gh issue view "${num}" --web } function pr() { line=$(gh pr list | peco) num=$(echo "${line}" | awk -F" " '{print $1}') gh pr view "${num}" --web }
これでコマンドを実行するカレントディレクトリがGitHubリポジトリ配下だった場合に対象のページをシュッっと開くことができます。