🫨
CIの結果をもう待ちたくない、通知してくれ!
きっかけ
普段開発のレビュー依頼は基本的にslack経由で行います。
複数のタスクのPRを開発しながら、一方のPRのCIが完了するのに5分以上かかると
他のタスクに集中して忘れてしまうことがあります。
CIが通っていれば良いですが、途中でCIが落ちているとすぐに修正ができず無駄に時間がかかって
しまう。せっかちな自分は「CIが通ったらレビュー依頼しようと」頭の片隅に置きたくないわけです。
早くレビュー依頼したいわけです。
ブラウザ上でCIが回っているとオレンジのIN_PROGRESS状態は分かりますが、
それを気にしながらタスクを進めるのも面倒。
CIが通ったら通知して欲しいと思ったので、Github CLIの拡張機能を作ってみました。
拡張機能でなくてもシェルでいいような気もしますが、使ってみたかったので拡張機能を利用しています。
ざっくりとした仕組み
やっていることは超シンプル
- 引数で受け取った(デフォルトはHEAD)ブランチのCIのステータスを
gh run list
で1分間に1回確認しに行く - completed以外のステータスが0になれば成功
- 成功したら引数で渡した
--message
とPRのURLをechoする
上記の拡張機能をスクリプトでラップしterminal-notifierで通知するexampleも置いています
- 成功した場合はmessage, urlをterminal-notifierで通知
- 失敗した場合はurlを通知し
-open
を設定し通知を押すとそのPRに飛べる
サンプルの例
notify --message "@reviewer :review:"
上記を実行しCIが全て通ると以下のスクリーンショットが画面上に出ます。
右下の表示ボタンを押すと、内部でシェルを実行しておりpbcopyで
画面上に写っているメッセージをコピーします。
環境構築
拡張機能のinstall
gh extension install lll-lll-lll-lll/gh-prciwatch
terminal-notifierのinstall
brew install terminal-notifier
以下のスクリプトをコピーしてお好きなところに保存
パス通す。
最後に
個人的に使っていて地味に便利に感じました
Discussion