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

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Erstellen Sie Karte und Listen in Trello als Reaktion auf Ereignisse von Azure DevOps. Wenn z. B. 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 "Azure DevOps Services für Trello autorisieren", und melden Sie sich mit Ihren Trello-Anmeldeinformationen an.

  3. Erlauben Sie Azure DevOps, Ihr Trello-Konto zu verwenden.

    Zulassen von Azure DevOps Services

  4. Kopieren Sie das Autorisierungstoken.

    Trello-Autorisierungstoken

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

  1. Wechseln Sie zur Seite Service Hooks ihres Projekts:

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

    Projektverwaltungsseite

    Klicken Sie auf Abonnement erstellen.

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

    Dienstseite, Trello ausgewählt

  3. Konfigurieren Sie das auslösende Visual Studio-Ereignis. In diesem Fall wird das Abonnement reagieren, wenn eine Arbeitsaufgabe erstellt wird.

    Triggerkonfigurationsseite

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

    Aktionskonfigurationsseite

    Sie können Platzhalter verwenden, um Inhalte aus dem Ereignis in den Namen und die Beschreibung der von dem Abonnement erstellten Karte s oder Listen einzufügen. Wenn wir beispielsweise die Testbenachrichtigung ausführen, heißt die Karte, die erstellt wird, "Bug #5: Some great new idea!", da die Testarbeitsaufgabe ein Fehler (ID=5) mit dem Titel "Some great new idea!" ist.

  5. Testen Sie das Diensthakenabonnement, und schließen Sie den Assistenten ab.

    Testbenachrichtigung

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

Willkommenstafel mit einem Karte für Bug #5

Platzhalter

Sie können Platzhalter in den Namen einer Liste oder den Namen oder die Beschreibung eines Karte einfügen, die von Ihrem Abonnement erstellt werden sollen. 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 Karte Namen auf dieser Seite verwendet haben, verwendet:

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

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

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

    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. Wenn Sie die ereignistypen, Felder und Ressourcen verstehen möchten, die sie verwenden können, schauen Sie sich die Ereignisreferenz an.

Arbeitsaufgabenfelder

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

    " 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, hätten wir wie in diesem Beispiel unseren Karte Namen erstellt:

    {{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.Azure DevOps Services.Common-Namespace verweisen, als wären sie Felder der Ressource. Aus {{workitem.fields["System.workItemType"]}} wird also {{workitem.workItemType}}.

Platzhalterausdrücke

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

Ausdruckstyp examples
Grundlegende Ausdrücke {{workitem.name}}
Arrayausdrücke {{pullRequest.reviewers.[0].displayName}}
Schnurrabschnitte {{#workitem.assignedTo}} Diese WI ist zugewiesen. {{/workitem.assignedTo}}
Invertierte Abschnitte von Mustache {{^workitem.assignedTo}} Diese WI ist nicht zugewiesen. {{/workitem.assignedTo}}
Handlebars-Blockhilfsprogramme durch
if/else
unless
überprüft
Handlebars-Pfade ...
this
Beispiel: {{../comment/id}} oder {{this/title}}
Vorlagenkommentare {{!-- this is a handlebar comment --}}

Preisberechnung

Azure DevOps berechnet für das Framework keine Kosten für die Integration in externe Dienste. Auf der Website des jeweiligen Diensts finden Sie preise im Zusammenhang mit ihren Diensten.

Fragen und Antworten

F: Kann ich programmgesteuert Abonnements erstellen?

A: Ja, details finden Sie hier.

F: Kann ich weitere Informationen zu Trello erhalten?

A: Ja, trello.com.