マイクロソフトのオンラインプロジェクト管理&リポジトリサービスである『Visual Studio Online (旧称:Team Foundation Service)』と、Atlassianのチャットサービス『HipChat』を連携させる設定を試してみました。
とても簡単だったので、紹介してみたいと思います。
VS Onlineには Team Roomがある、がしかし…
Visual Studio Online(以下 VS Online)には、開発者同士のコミュニケーションツールとしてTeam Roomというものが存在します。チャット形式で開発者どうしがコミュニケーションをとれるだけでなく、ビルドの終了通知やプルリクエストの通知など、TFSの各種イベントをフックして通知を行う機能があります(Team Roomについての詳細は次のドキュメント『 チーム ルームでの共同作業』などを参照)。
なかなか素敵な機能なのですが、この機能、それ故かVSOの無償エディションやMSDNの下位エディションでは利用できない制限があります*1。『これ以外の機能はBasicの範囲で十分』なユーザーにとって、このためにAdvanceの契約もしくはMSDN上位エディションの契約……というのは、ちょっとハードルが高い……かもしれません(^^;
VS Online は外部サービスと連携可能!
ですが、あきらめるのは少し待ちましょう。 VS Online は 内部のイベントをフックして外部サービスに連携する機能を持っているのです*2。 そして、連携可能なサービスに『HipChat』がありました。HipChatとはAtlassianのサービスで、開発チーム向けのグループチャットなどの機能を備えています。そうです。Team Roomとよく似ている気がしますね! (HipChatについての詳細はこちらなどを参照されるといいのではないでしょうか。)
ということは、これを使えば、Team Roomに近い機能が実現できそうな気がします*3。さっそくやって見ました。
※このService Hooksは2014年9月24日現在、preview提供中の機能です。ご注意ください。
まずはHipChatにルームを作成
まずはHipChatにルームを作成しましょう。アカウントを持っていない方はこちらからサインアップされると良いのではないかと思います。ちなみに、HipChatは無償と有償のプランがありますが、今回紹介する範囲は無償の範囲内で十分利用できるんじゃないかと思います。
必ずしもルームを新規に作成する必要はありませんが、他と混ざってもあれなので新規に作成してみます。HipChatの[Robby]から[Create Room]でルームを作成します。
HipChat の APIの設定
次に、HipChatの API アクセストークンの設定をします。My Account の [Account Setting]-[API access]を表示して…。
[Create token]ボタンをクリックしてトークンを作成しましょう。作成後は、トークンをコピーしておきます。
VS OnlieでService Hooksの設定
あとは、VS Onlie側の設定作業になります。VS Onlieにアクセスし、右上の歯車アイコンから[Administer Account]に入ります。
[Service Hooks]タブにはいって設定を追加します。初めての時は[Create the first subscription for this project]と表示されているかもしれません。
以降はダイアログに従って入力していきます。まずはサービス一覧からHipChatを選択。こうしてみると、色々連携先がありますね。またこの画面では各サービス毎にどんなイベントをどういった方法で通知できるのかが記載されていますので、何ができるのかをここで確認することができます。
フックするイベントや対象のリポジトリ、ブランチを選択します。 このあたりは、対象のリポジトリがGitかTFSVCSかで変わってます。今回はGitを利用したリポジトリで、Codeがプッシュされた時を選んでみました。
HipChatの設定を入力します。[Authorization token]に先ほど設定してコピーしたトークンを貼り付けると[Room]にルームの一覧が出てきますので、メッセージを通知したいルームを選択します。メッセージの色などのオプションを設定すれば完了です。
実行結果はこんな感じ
実際に先ほどのリポジトリにプッシュしてみると、こんな感じでHipChatにメッセージがポストされました。 メッセージ中のリンクをクリックすると、ちゃんと該当のリポジトリやコミットに飛んでくれていい感じです。
まとめ
ということで、VS Online と HipChat をかなり簡単な操作でつなげることができました。 VS Online と HipChat の連携については、下記がオフィシャルなドキュメントとなっています。 HipChat with Visual Studio Online
また途中の画面にあったように、標準で沢山のサービスと連携できますし、仕様に従ったWebサービスを自分で作成して連携することも可能なようです。 このあたりの情報は下記のドキュメントを参照されると良いのではないかと思います。 Subscribe to Visual Studio Online events from another service