0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ghq + peco で GitHub リポジトリを選択しつつ、curl + jq で GitHub API を実行する

Last updated at Posted at 2018-10-12

以前書いた記事で、curl + jq を使い、Github API で Pull Requestに関する base / head branch を取得できることを試しました。

Github の Pull Request に紐づく base / head branch を curl と jq で取得する

今回は、リポジトリの選択をより簡単にできるよう、ghq + peco でのリポジトリ選択を組み合わせてみることを試しました。

前提環境

※ ghq, peco, jq はいずれも HomeBrew でインストールできます。

準備方針

下記方針で準備していきます。

  • ghq でローカルに GitHub リポジトリの一覧を作成
  • peco で GitHub リポジトリの一覧をインクリメンタルサーチ可能に
  • curl で GitHub API を実行
  • jq でレスポンスを加工

事前準備

GitHub リポジトリのリストを作る

ghq で、Pull Request を確認したいリポジトリをローカルにクローンしておきます。

$ ghq get <repo URL>

ワンライナーを準備

下記ワンライナーをシェルの設定に追記します。
僕の場合は zsh を使っているので、.zshrc にエイリアス登録し、source ~/.zshrc などでロードしておきます。

alias pb='curl -sH "Authorization: token ${GITHUB_API_TOKEN}" "https://api.github.com/repos/$(ghq list | sed s#github.com\/##g | peco)/pulls" | jq ".[] | { number: .number, title: .title, base: .base.ref, head: .head.ref }"'

curl, jq の部分は、以前の記事 を踏襲しています。
追加した部分は、$(ghq list | sed s#github.com\/##g | peco) の部分で、:owner/:repo の部分を抽出してインクリメンタルサーチで選択できるようにしました。

GITHUB_API_TOKEN は、.zshrc にべた書きしたくなかったので、別ファイルgithub_credentialsに切り出し、ロードする形にしました。
※.github_credentials の中身を直接 Git 管理しないよう、.gitignore に指定しておくなど、注意してください!

~/.github_credentials
export GITHUB_API_TOKEN=xxx
.zshrc
GITHUB_CREDENTIAL_FILE=~/.github_credentials
if [ -e $GITHUB_CREDENTIAL_FILE ]; then
  source $GITHUB_CREDENTIAL_FILE
fi

利用方法

alias に登録しておいた pb を実行すると、

ghq でクローンしてきたリポジトリのリストをインクリメンタルサーチできるようになります。

image.png

そしてリポジトリを選択すると、リポジトリの Pull Request と source/head branches を確認できるようになります。

今回は facebook/react の Pull Request 一覧を表示してみました。

image.png

終わりに

peco + ghq の組み合わせで、 GitHub APi の実行がより便利になりました。
今回は Pull Request に関する API の実行を試しましたが、 Issues など、他の API でも応用できるなと思いました。

参考URL

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?