GitHub CLI v2.0で草を見られるようにした
先日、GitHub公式CLIのghコマンドのメジャーバージョンアップがありました。
このバージョンアップで、ユーザーの定義したサブコマンドをextensionとして追加できるようになりました。
gh extension install owner/gh-my-extensionというコマンドで、gh my-extensionというサブコマンドを追加できます[1]。
gitにも類似の機能[2]がありますね。
こちらを使って、自分もサブコマンドを作成してみたので紹介します。
ターミナルで草を見るgh graph
その名もgh graphです。
ターミナルに草を生やします。
GitHubの緑の表は、国内だと「草」と呼ばれていますが、海外向けにはgrassとかleavesでは通じなそうな感じがしました[3]。
公式では「コントリビューショングラフ」と表記されているようなので、gh graphにしました。
リポジトリはこちら。
つかいかた
ghおよびcurlがインストールされていること、gh auth loginでログインしていることが必要です。
以下でインストール・実行ができます。
❯ gh extension install kawarimidoll/gh-graph
❯ gh graph
解説
実態は以下の単純なシェルスクリプトです[4]。
#!/bin/bash
USER=$(gh api user --jq .login)
if [ $? -ne 0 ]
then
echo "${USER}"
exit 1
fi
curl "https://github-contributions-api.deno.dev/${USER}.term"
gh apiを使ってghにログインしているユーザー名を取り出し、curlで以下のAPIを呼び出しているだけです。
オリジナルではわりと長いURLをcurlする必要がありましたが、こちらではgh graphだけで済むので簡単になりました。
なお、他ユーザーの草を確認したい場合はこれまで通りcurlで呼ぶ必要があります。
オプションを使えるようにするかも→しました
上記APIではschemeやpixelといったオプションを使えます。
今回のextensionでもgh graph --scheme=pinkのように対応したいとは考えています。
ただ、オプションの扱いはシェルスクリプトのままではちょっと難しいと感じているので、いつ実装に至るかはわかりません…。
こういう場合はGo等が使いやすいんですかね。詳しい方いましたらアドバイスを貰えるとありがたいです。
実装しました。
おわりに
ghに追加されたサブコマンド機能の紹介でした。
様々なサブコマンドがgh-extensionというトピックで公開されているので、以下のページを見ると面白いものが見つかるかもしれません。
また、今回は特に、過去に自分が作ったものを後から出てきたツールや技術と組み合わせられる…というのが面白いと思いました。
作品を増やしていけば、さらに組み合わせの可能性が広がりそうです。
ということで、今後も色んなものを作っていきます。
Star⭐おねがいします!
Discussion