Visual Studio Online Extensibility – Service Hooks

VSO IntegrateDen vorerst letzten Beitrag der Serie “Visual Studio Online Extensibility” widme ich der Integration von externen Diensten an ein VSO Team Projekt. Der dazu notwendige Baustein nennt sich „Service Hooks“. Service Hooks ermöglichen die Benachrichtigung von externen Diensten bei spezifischen Ereignissen innerhalb eines Projekts. In diesem Beitrag zeige ich Euch, wie Ihr Trello und Slack mit Euren Visual Studio Online Account verbinden könnt.

Service Hooks

Service Hooks bieten die Möglichkeit, dass sich externe Dienste von Visual Studio Online benachrichtigen lassen, wenn ein bestimmtes Ereignis in einem Team Projekt eingetreten ist. Der Hook kann beispielsweise so konfiguriert werden, dass für alle neu angelegten Work Items in einem Team Projekt eine neue Karte in Trello erzeugt wird und zusätzlich eine Nachricht in mein firmeninternes Kommunikationswerkzeug Slack geschrieben wird. Auch kann man sich über Build Zustände oder über Änderungen in der Versionskontrolle informieren lassen.

Bisher gibt es etwas mehr als ein Dutzend Dienste, die sich über Service Hooks integrieren lassen. Unter Ihnen sind Anbieter wie Jenkins, HipChat, Slack, UserVoice, Trello, etc. Eine genauere Liste könnt ihr unter VisualStudio.com einsehen.

Integration von Trello & Slack

Äußerst positiv ist mir aufgefallen, dass die Integration externer Services ziemlich einfach und sich auch sehr ähnlich ist. Sowohl Trello als auch Slack konnte ich in wenigen Minuten in Visual Studio Online integrieren.

Der Ausgangspunkt der Integration ist die Service Hooks Seite im administrativen Bereich eines Team Projekts.

01_Create_ServiceHook

Über den Link Create the first subscription for this project und danach über das Pluszeichen in der Menüleiste, gelangt man zu einem Installationsassistenten, der bei der Anlage des Service Hooks behilflich ist.

Als erstes wählt man aus einer Liste den gewünschten Dienst aus und konfiguriert dann einen sogenannten Trigger. Damit ist gemeint, welcher Event innerhalb eines Team Projekts eine Action auslösen soll. Die für Trello unterstützten VSO Events lassen sich aus der Grafik entnehmen.

02_Trello_ServiceHook

Für meinen Test habe ich das Work item created Event und im nächsten Abschnitt die Aktion Create a card ausgewählt, die in Trello durch dieses Ereignis ausgeführt werden soll.

03.1_Trello_Action_ServiceHooks

Um die Konfiguration zu vervollständigen und um eine sichere Kommunikation mit Trello zu ermöglichen, muss ein „Trello“-Token angegeben werden. Dieser Token wird von Trello bereitgestellt, nachdem die Anwendung für den Zugriff auf einen Visual Studio Online Account berechtigt wurde. (Diese Art der Authentifizierung habe ich in meinem Beitrag zum Thema OAuth 2.0 näher beschrieben.) Außerdem muss noch in den Settings hinterlegt werden, in welchem Board und in welcher Liste eine neue Karte erstellt werden soll und ob diese ggf. ein bestimmtes Label bekommt.

Wenn man die Kommunikationsplattform Slack mit VSO verbinden möchte, macht man dass am Besten in dem man Visual Studio Online als zusätzlichen Dienst zu seinem Slack Account hinzufügt. Dazu loggt man sich in Slack ein und geht in den Bereich Integrations. Dort lässt sich dann Visual Studio Online als Service hinzufügen. Nach der Angabe eines VSO-Accounts und der Verknüpfung des Accounts mit einem Slack Channel, erhält man eine sogenannte Webhook URL, die später im Installationsassistenten von VSO als Empfängeradresse für alle konfigurierten VSO Ereignisse benötigt wird. Der zweite Service Hook in diesem Demo-Projekt soll alle Work Item Änderungen des Team Projekts an Slack übermitteln und im Channel #vsonline veröffentlichen.

04.1_Slack_WebhookUrl_ServiceHooks

Work Item Änderungen

Nach der Integration beider Dienste in das Team Projekt, konnten Änderungen an den bestehenden Work Items vorgenommen werden. Die Änderungen wurden dann unmittelbar in den beiden Plattformen angezeigt.

05_Trello_NewCard_ServiceHooks

 06_Slack_VSOUpdate_ServiceHooks

Fazit

Die Integration von externen Diensten wie Trello oder Slack ist sehr einfach und zügig durchzuführen. Die Ergebnisse werden in den einzelnen Werkzeugen auch unmittelbar nach Auftreten des Ereignisses angezeigt.

Für die Zukunft wünsche Ich mir allerdings, dass die Aktualisierung von Ereignissen bald aus beiden Richtungen möglich ist. Denn die aktuelle Version der Service Hooks unterstützt keine Synchronisation zurück aus einer externen Anwendung zum Team Projekt in Visual Studio Online. Änderung die direkt auf Trello-Kärtchen gemacht werden, bleiben leider nur in Trello und gelangen nicht zum Work Item in VSO. Das dürft für alle Trello-Fans eher suboptimal sein.

Auch die Integration von Slack halte ich für Ausbaufähig, da z.B. die erstellten Nachrichten nicht editierbar sind und nur den Work Item Titel beinhalten. Somit ist man immer gezwungen die Work Item Maske in Visual Studio Online zu öffnen, um Details zu sehen.

Trotz diesen fehlenden Möglichkeiten hat der Dienst großes Potential. Schon alleine deswegen, weil man sowohl eigene Services (Web Hooks), als auch Azure Service Bus oder Azure Storage anbinden kann. Ulli Stirnweiss wird auf ihrem Blog einen Beitrag zum Thema Web Hooks veröffentlichen, in dem sie beschreibt wie sie für unsere TFS-App einen eigenen Service geschrieben und in VSO integriert hat.

Stay tuned.

[1] http://www.visualstudio.com/get-started/integrating-with-service-hooks-vs

[2] www.trello.com

[3] www.slack.com

Ein Gedanke zu “Visual Studio Online Extensibility – Service Hooks

  1. Pingback: Ullibility.net | Eine App für VSO – Teil 4: WorkItems verändern

Die Kommentarfunktion ist geschlossen.