
たまにGitHub Actionsの様子がおかしいな〜と思ってGitHub Statusを見に行くとトラブルが発生していたりする。こういう情報にすぐ気付きたいな〜と思ったので、Tmuxのステータスバーに勝手にGitHubのステータスが表示されるようなプラグインを書いてみた。
しくみ
curlでGitHubのStatus APIを叩き、その結果をjqでフィルタして表示している。なので最低でもこれら2つのコマンドが必要になっている。
Tmuxプラグインを書くために、tmux-batteryという既存のプラグインを参考にした。
Tmuxのステータスラインでinterpolateを行う方法はこれを真似したもので、bashを使って素朴に特定の文字列をコマンド呼び出しに置換している。
do_interpolation() {
local all_interpolated="$1"
for ((i=0; i<${#gh_commands[@]}; i++)); do
all_interpolated=${all_interpolated//${gh_interpolation[$i]}/${gh_commands[$i]}}
done
echo "$all_interpolated"
}
やっていることは非常に素朴なので、詳細はソースコードを見てほしい。
プラグイン化
なんとTmuxにはtpmというプラグインマネージャが有志の手によって作成されており、これに則ると1行書くだけでプラグインの導入が完了する。
tpmを導入済みなら、set -g @plugin 'windymelt/tmux-github'という行を追加して、Prefix + Iを押下してTmuxをリフレッシュするだけでこのプラグインが動くようになる。
今後
今のところSeverityなどの表示はやっていないので、それを出したり、色を付けるといった便利な表示を行えるようにするかもしれない。今のところはdescriptionを流すだけで十分。Pull-Request are welcome.
参考
プラグインの作成方法は以下を参考にした。