Slack Slash Command を外部から叩ける slack-cmd を作った

www.npmjs.com

github.com

 使い方

$ npm install -g slack-cmd
特定チャンネルのトピックを更新する.
$ slack-cmd -w xxx -c topic -t "this channel is for developer" -C xxxxx -T xxxx-xxxxxxxxx-xxxx
GtiHub の更新情報が Slack に流れるようにする.

GitHub | Slack App Directory をインストール/設定したあとで

$ slack-cmd -w xxx -c github -t "subscribe owner/repository" -C xxxxx -T xxxx-xxxxxxxxx-xxxx

 作った背景

ChatOps で使うために作った Slack Slash Command たちを外部(ターミナル, CI のプロセス)からでも実行したかった.

Slack の GitHub App が使いにくくて, プログラムからいい感じに叩けるようにしたかった.

その他/学び

  • 引数をハンドリングするのに commander.js が便利と聞いて使ってみたらとても良かった( npm ツール開発の生産性あがる!

github.com

  • "Content-Type": "multipart/form-data" で複数データを指定するには, ヘッダに boundary={boundary} を定義して --{boundary} でデータの区切りを指定する

  • 2本目の npm ツールということで init から publish までスムーズに進められた.

  • 開発にかかった時間: 約4時間