たまに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.
参考
プラグインの作成方法は以下を参考にした。