Erstellen eines Diensthakens für Azure DevOps Services und TFS mit Trello

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Erstellen Sie Karten und Listen in Trello als Reaktion auf Ereignisse von Azure DevOps. Beispiel: Wenn Code pusht oder ein Build auftritt.

Abrufen eines Trello-Autorisierungstokens

  1. Wenn Sie kein Trello-Konto haben, melden Sie sich bei Trello an.

  2. Wechseln Sie zur Seite "Autorisieren Azure DevOps Services für Trello", und melden Sie sich mit Ihren Trello-Anmeldeinformationen an.

  3. Zulassen, dass Azure DevOps Ihr Trello-Konto verwenden können.

    Allow Azure DevOps Services

  4. Kopieren Sie das Autorisierungstoken.

    Trello authorization token

Erstellen Sie eine Trello-Karte oder -Liste aus einem Azure DevOps Services Ereignis.

  1. Wechseln Sie zur Seite "Service Hooks":

    https://{orgName}/{project_name}/_settings/serviceHooks

    Project administration page

    Klicken Sie auf Abonnement erstellen.

  2. Wählen Sie den Trello-Dienst aus.

    Service page, Trello selected

  3. Konfigurieren Sie das auslösende Visual Studio Ereignis. In diesem Fall werden wir über die Antwort des Abonnements verfügen, wenn eine Arbeitsaufgabe erstellt wird.

    Trigger configuration page

  4. Richten Sie die Aktion ein, die Trello als Reaktion auf den Trigger durchführt – entweder eine Karte oder eine Liste erstellen.

    Action configuration page

    Sie können Platzhalter verwenden, um Inhalte aus dem Ereignis in den Namen und die Beschreibung der Karten oder Listen einzufügen, die das Abonnement erstellt. Wenn wir z. B. die Testbenachrichtigung ausführen, lautet die karte, die erstellt wird, "Bug #5: Einige großartige neue Idee!", da die Testarbeitsaufgabe ein Fehler (ID=5) mit dem Titel "Einige großartige neue Idee!" ist.

  5. Testen Sie das Dienst-Hook-Abonnement, und beenden Sie den Assistenten.

    Test notification

  1. Wechseln Sie zur Seite "Service Hooks":

    https://dev.azure.com/{orgName}/{project_name}/_apps/hub/ms.vss-servicehooks-web.manageServiceHooks-project

    Project administration page

    Klicken Sie auf Abonnement erstellen.

  2. Wählen Sie den Trello-Dienst aus.

    Service page, Trello selected

  3. Konfigurieren Sie das auslösende Visual Studio Ereignis. In diesem Fall werden wir über die Antwort des Abonnements verfügen, wenn eine Arbeitsaufgabe erstellt wird.

    Trigger configuration page

  4. Richten Sie die Aktion ein, die Trello als Reaktion auf den Trigger durchführt – entweder eine Karte oder eine Liste erstellen.

    Action configuration page

    Sie können Platzhalter verwenden, um Inhalte aus dem Ereignis in den Namen und die Beschreibung der Karten oder Listen einzufügen, die das Abonnement erstellt. Wenn wir z. B. die Testbenachrichtigung ausführen, lautet die karte, die erstellt wird, "Bug #5: Einige großartige neue Idee!", da die Testarbeitsaufgabe ein Fehler (ID=5) mit dem Titel "Einige großartige neue Idee!" ist.

  5. Testen Sie das Dienst-Hook-Abonnement, und beenden Sie den Assistenten.

Test notification

Jetzt ist es eingerichtet. Wechseln Sie zu Trello, und sehen Sie, wie die Karten angezeigt werden.

Welcome board with a card for Bug #5

Platzhalter

Sie können Platzhalter in den Namen einer Liste oder den Namen oder die Beschreibung einer Karte einfügen, die von Ihrem Abonnement erstellt werden soll. Wenn eine Liste oder Karte erstellt wird, werden die Platzhalter durch Werte aus dem ausgelösten Ereignis ersetzt. Das Beispiel, das wir für den Kartennamen auf dieser Seite verwendet haben, verwendet:

    {{workitem.workItemType}} #{{workitem.id}}: {{workitem.title}}

Wenn also ein Fehler mit der ID 5 und dem Titel "Einige großartige neue Idee!" erstellt wird, lautet der Kartenname "Bug #5: Some great new idea!".

Die grundlegende Form des Platzhalters ist {{resource.field}} der Name der Ressource, die das Ereignis auslöst (Arbeitselement, Build usw.) und Feld ist ein Feld innerhalb des Ressourcenabschnitts des Ereignisses, z. B. ID. Wenn das Abonnement also für einen abgeschlossenen Build ist, kann es etwas wie folgt sein:

    Build {{build.id}} completed at {{build.finishTime}}

Wenn build der Name der Ressource und der ID ist, sind finishTime die Felder, die in dieser Ressource verfügbar sind. Informationen zu den ereignistypen, Feldern und Ressourcen, die zur Verwendung zur Verfügung stehen, finden Sie in der Ereignisreferenz.

Arbeitsaufgabenfelder

Arbeitselementfelder werden im Ereignis im Feldarray wie in diesem Beispiel angezeigt:

    " fields": {
                " System.AreaPath": "Fabrikam-Fiber-Git", 
                " System.TeamProject": "Fabrikam-Fiber-Git", 
                " System.IterationPath": "Fabrikam-Fiber-Git", 
                " System.WorkItemType": "Product Backlog Item", 
                " System.State": "New", 
                " System.Reason": "New backlog item", 
                " System.CreatedDate": "2014-11-05T21:11:28.85Z", 
                " System.CreatedBy": "Normal Paulk", 
                " System.ChangedDate": "2014-11-05T21:11:29.23Z", 
                " System.ChangedBy": "Normal Paulk", 
                " System.Title": "Test PBI", 
                " Microsoft.Azure DevOps Services.Common.BacklogPriority": 999999999, 
                " WEF_6CB513B6E70E43499D9FC94E5BBFB784_Kanban.Column": "New"
           },

Direkt aus der Ereignisdefinition arbeiten, würden wir unseren Kartennamen wie in diesem Beispiel erstellt haben:

    {{workitem.fields["System.workItemType"]}} #{{workitem.fields["System.id"]}: {{workitem.fields["System.title"]}}

Als Verknüpfung können Sie auf alle Felder im System oder Microsoft verweisen. Azure DevOps Services. Allgemeine Namespaces als wären sie Felder der Ressource. Aus {{workitem.fields["System.workItemType"]}} wird also {{workitem.workItemType}}.

Platzhalterausdrücke

Diese Platzhalter verwenden eine Handlebars-Vorlagenimplementierung , die weitgehend mit Mustache kompatibel ist. Einige nützliche Ausdrücke umfassen

Ausdruckstyp Beispiele
Grundlegende Ausdrücke {{workitem.name}}
Arrayausdrücke {{pullRequest.reviewers.[0].displayName}}
Mustache-Abschnitte {{#workitem.assignedTo}} Diese WI wird zugewiesen. {{/workitem.assignedTo}}
Invertierte Abschnitte {{^workitem.assignedTo}} Dieser WI ist nicht zugewiesen. {{/workitem.assignedTo}}
Handlebars Blockhilfen durch
wenn/sonst
Es sei denn
Jeder
Handlebars-Pfade ...
this
Beispiel: {{../comment/id}} oder {{this/title}}
Vorlagenkommentare {{!-- this is a handlebar comment --}}

Preise

Azure DevOps berechnet das Framework nicht für die Integration in externe Dienste. Schauen Sie sich die Website des jeweiligen Diensts für preise im Zusammenhang mit ihren Diensten an.

Fragen und Antworten (Q & A)

F: Kann ich Abonnements programmgesteuert erstellen?

A: Ja, details finden Sie hier.

F: Kann ich weitere Informationen zu Trello erhalten?

A: Ja, trello.com.