きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

Visual Studio Online と HipChatを連携する

マイクロソフトのオンラインプロジェクト管理&リポジトリサービスである『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]でルームを作成します。 f:id:kiyokura:20140924220553p:plain

 

HipChat の APIの設定

次に、HipChatの API アクセストークンの設定をします。My Account の [Account Setting]-[API access]を表示して…。 f:id:kiyokura:20140924220554p:plain

[Create token]ボタンをクリックしてトークンを作成しましょう。作成後は、トークンをコピーしておきます。 f:id:kiyokura:20140924220555p:plain

 

VS OnlieでService Hooksの設定

あとは、VS Onlie側の設定作業になります。VS Onlieにアクセスし、右上の歯車アイコンから[Administer Account]に入ります。 f:id:kiyokura:20140924220556p:plain

[Service Hooks]タブにはいって設定を追加します。初めての時は[Create the first subscription for this project]と表示されているかもしれません。 f:id:kiyokura:20140924220557p:plain

以降はダイアログに従って入力していきます。まずはサービス一覧からHipChatを選択。こうしてみると、色々連携先がありますね。またこの画面では各サービス毎にどんなイベントをどういった方法で通知できるのかが記載されていますので、何ができるのかをここで確認することができます。 f:id:kiyokura:20140924220558p:plain

フックするイベントや対象のリポジトリ、ブランチを選択します。 このあたりは、対象のリポジトリがGitかTFSVCSかで変わってます。今回はGitを利用したリポジトリで、Codeがプッシュされた時を選んでみました。 f:id:kiyokura:20140924220559p:plain

HipChatの設定を入力します。[Authorization token]に先ほど設定してコピーしたトークンを貼り付けると[Room]にルームの一覧が出てきますので、メッセージを通知したいルームを選択します。メッセージの色などのオプションを設定すれば完了です。 f:id:kiyokura:20140924220600p:plain

 

実行結果はこんな感じ

実際に先ほどのリポジトリにプッシュしてみると、こんな感じでHipChatにメッセージがポストされました。 f:id:kiyokura:20140924220601p:plain メッセージ中のリンクをクリックすると、ちゃんと該当のリポジトリやコミットに飛んでくれていい感じです。

 

まとめ

ということで、VS Online と HipChat をかなり簡単な操作でつなげることができました。 VS Online と HipChat の連携については、下記がオフィシャルなドキュメントとなっています。 HipChat with Visual Studio Online

また途中の画面にあったように、標準で沢山のサービスと連携できますし、仕様に従ったWebサービスを自分で作成して連携することも可能なようです。 このあたりの情報は下記のドキュメントを参照されると良いのではないかと思います。 Subscribe to Visual Studio Online events from another service

*1:現状はVSO Advanced (月額一人当たり60ドル)や、MSDNのPremium以上のエディションが必要

*2:知った風に書いているのですが、詳しく知ったのは今日です()

*3:少なくとも私が欲しい範囲で