2017年4月2日日曜日

ntfy を使ってコマンドの終了を Slack に通知してみる

概要

ビルドなどコマンドの終了が長い場合に終了しているかどうかいちいちコンソールを確認するのは非常に面倒です
そんなときコマンドの終了を Slack に通知することができるツールを見つけたので紹介します

環境

  • Ubuntu 16.04
  • Python 2.7.12
  • pip 9.0.1
  • ntfy 2.4.2

レガシートークンの取得

https://api.slack.com/custom-integrations/legacy-tokens
から取得します

※昔テストトークンと呼ばれていたものです
現在はレガシートークンという名前になり、Slack API Tester の integration に紐付いているようです

xoxp-1234567890 というトークンを生成したとします

ntfy のインストール

  • pip install ntfy
  • pip install ntfy[slack]
  • echo ‘eval “$(ntfy shell-integration)”’ >> ~/.bashrc
  • vim ~/.ntfy.yml
---
backends:
  - slack
slack:
  token: xoxp-1234567890
  recipient: "#general"

shell-integration を .bashrc に記載することで時間のかかるコマンドの場合には自動で通知してくれるようになります

動作確認

普通に送信

  • ntfy send “test”

あるコマンドが終了したら送信

  • sleep 20 && ntfy send “Finished to sleep 20”

実行したコマンドがある一定時間以上だと、そのコマンドと経過時間も通知してくれるようです
一定時間はデフォルトだと 10 秒のようです

By default it will only send notifications for commands lasting longer than 10 seconds and if the terminal is focused

最後の

ntfy という python 製のツールを使ってコマンドの終了を slack に通知する方法を紹介しました
通常のコマンドのあとに追加するだけなので非常に簡単に使えます

ただ、今回の方法だと Slack API Tester の integration に紐づくためアイコンやボット名を変更することができません
これが少し残念な点ですが、個人で確認用に使うのであれば十分かなと思います

もしくはちゃんとアプリを作ってからトークンが取得できればアイコンや名前もカスタマイズできるのかもしれません

参考サイト

0 件のコメント:

コメントを投稿