VisualStudioOnline の ServiceHooks で Idobata 連携した

はじめに

Visual Studio Online updates – May 12 によって、ServiceHooks のプレビューが追加された。
そこで Idobata と連携してみた。


ServiceHooks について

連携できるサービスは画像のとおり。
めぼしいところだと Jenkins とWeb界隈で流行っている HipChat あたりか。
他は知らないものばかりけど、海外で流行っているんだろう。

汎用的なサービスを使いたい場合は Web Hooks を使う。

VisualStudioOnline ServiceHooks



ビルド(デプロイ)以外にもタスク追加時や完了時のタイミングもフックできるようになっている。

Web Hooks - Configure the Event



URL や HTTP Header をカスタマイズできるようになっている。

Web Hooks - Configure the action


Idobata 連携

いよいよ本題。


Idobata をそのまま連携するとうまくいかない。
VIsualStudioOnline から送信するリクエストを変更できないので、Idobata のフォーマットとマッチしないのが原因。


そこで、この違いを吸収するコードを書いた。
(注:ビルド時のメッセージにのみ対応)

kheiakiyama/webhook · GitHub


Heroku にデプロイすれば後述のURLを設定して使える。

http://○○.herokuapp.com/vso/idotaba/{idobata の Endpoint の id}


僕がデプロイしたやつは以下。

http://webhookpipe.herokuapp.com/vso/idotaba/{idobata の Endpoint の id}

(5/20 追記)現時点で動作していない模様。。。修正の時間がないため、後で直します。
(5/21 追記)直しました。


テストメッセージは以下のように表示される。

Idobata - VisualStudioOnline より


最後に

VSO からのメッセージにはなぜか Build の詳細を確認する URL が含まれていない。
せっかく IRC でリアルタイムな情報を流せるようになったのに、そこから VSO に遷移できないってのはなんかなあ。。


Heroku 上のサービスは気まぐれに更新したり削除したりするので、それでもいいという人だけご利用ください。
ちょっと使うだけなら無料枠内で済むので、自分でデプロイするのが吉。


開発ツール徹底攻略 (WEB+DB PRESS plus)

開発ツール徹底攻略 (WEB+DB PRESS plus)