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 Karten und Listen in Trello als Reaktion auf Ereignisse von Azure DevOps. Beispielsweise beim Pushen von Code oder bei einem Build.
Voraussetzungen
Kategorie | Anforderungen |
---|---|
Berechtigungen | - Mitglied der Gruppe Projektsammlungsadministratoren. Organisationsbesitzer sind automatisch Mitglieder dieser Gruppe. - Die Berechtigungen Abonnements bearbeiten und Abonnements anzeigen sind auf Zulassen festgelegt. Standardmäßig verfügen nur Projektadministratoren über diese Berechtigungen. Um anderen Benutzern berechtigungen zu gewähren, können Sie das Befehlszeilentool oder die Security REST-API verwenden. |
Tools | Trello |
Einen Trello-Autorisierungstoken erhalten
Wenn Sie kein Trello-Konto haben, melden Sie sich bei Trelloan.
Wechseln Sie zur Seite , um Azure DevOps Services für Trello zu autorisieren, und melden Sie sich mit Ihren Trello-Anmeldeinformationen an.
Erlauben Sie Azure DevOps, Ihr Trello-Konto zu verwenden.
zulassen
Kopieren Sie das Autorisierungstoken.
Erstellen Sie eine Trello-Karte oder -Liste aus einem Azure DevOps Services-Ereignis.
Wechseln Sie zur Projektseite "Service Hooks":
https://{orgName}/{project_name}/_settings/serviceHooks
Klicken Sie auf Abonnement erstellen.
Wählen Sie den Trello-Dienst aus.
Konfigurieren Sie das auslösende Visual Studio-Ereignis. In diesem Fall soll das Abonnement reagieren, wenn ein Arbeitselement erstellt wird.
Richten Sie die Aktion ein, die Trello als Reaktion auf den Trigger durchführt – entweder eine Karte oder eine Liste erstellen.
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 beispielsweise die Testbenachrichtigung ausführen, heißt die erstellte Karte "Bug #5: Some great new idea!", da die Testarbeitsaufgabe ein Fehler (ID=5) mit dem Titel "Some great new idea!" ist.
Testen Sie das Service Hook-Abonnement, und schließen Sie den Assistenten ab.
Jetzt ist es eingerichtet. Wechseln Sie zu Trello, und sehen Sie, wie die Karten angezeigt werden.
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 „Eine tolle neue Idee!“ erstellt wird, lautet der Kartenname „Fehler Nr. 5: Eine tolle neue Idee!“.
Die grundlegende Form des Platzhalters ist {{resource.field}}
, wobei die Ressource der Name der Ressource ist, die das Ereignis auslöst (Arbeitsaufgabe, Build usw.) und das Feld ein Feld innerhalb des Ressourcenabschnitts des Ereignisses, z. B. ID.
Wenn das Abonnement also für einen abgeschlossenen Build vorgesehen ist, könnte dies wie folgt aussehen:
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 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"
},
Wenn wir direkt von der Ereignisdefinition ausgegangen wären, hätten wir unseren Kartennamen wie in diesem Beispiel erstellt:
{{workitem.fields["System.workItemType"]}} #{{workitem.fields["System.id"]}: {{workitem.fields["System.title"]}}
Als Abkürzung können Sie auf alle Felder im System- oder Microsoft.Azure DevOps Services.Common-Namespace verweisen, als wären sie Felder der Ressource.
{{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:
Ausdruckstyp | Beispiele |
---|---|
Grundlegende Ausdrücke | {{workitem.name}} |
Arrayausdrücke | {{pullRequest.reviewers.[0].displayName}} |
Mustache-Abschnitte | {{#workitem.assignedTo}} Dieses Arbeitselement ist {{/workitem.assignedTo}} zugewiesen. |
Invertierte Mustache-Abschnitte | {{^workitem.assignedTo}} Dieses WI ist nicht {{/workitem.assignedTo}} zugewiesen. |
Handlebars-Blockhilfsfunktionen | durch if/else es sei denn überprüft |
Handlebars-Pfade | ... this Beispiel: {{../comment/id}} oder {{this/title}} |
Vorlagenkommentare | {{!-- this is a handlebar comment --}} |
Preisgestaltung
Azure DevOps berechnet für das Framework keine Kosten für die Integration in externe Dienste. Sehen Sie sich die Website des jeweiligen Diensts an, um preise im Zusammenhang mit ihren Diensten zu finden.
Fragen und Antworten (Q & A)
F: Kann ich Abonnements programmgesteuert erstellen?
A: Ja, Details siehe hier
F: Kann ich weitere Informationen zu Trello erhalten?
A: Ja, auf trello.com