Créer un hook de service pour Azure DevOps Services et TFS avec Trello
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Créez des cartes et des listes dans Trello en réponse aux événements d’Azure DevOps. Par exemple, lorsque le code est envoyé (push) ou qu’une build se produit.
Conditions préalables
Catégorie | Exigences |
---|---|
Permissions | - Membre du groupe Administrateurs de regroupements de projets . Les propriétaires de l’organisation sont automatiquement membres de ce groupe. - Modifier les abonnements et Afficher les abonnements avec les autorisations définies sur Autoriser. Par défaut, seuls les administrateurs de projet disposent de ces autorisations. Pour accorder les autorisations à d’autres utilisateurs, vous pouvez utiliser l’outil en ligne de commande ou l’API REST Security. |
Outils | Trello |
Obtenir un jeton d’autorisation Trello
Si vous n’avez pas de compte Trello, inscrivez-vous à Trello .
Accédez à la page Autoriser Azure DevOps Services pour Trello, puis connectez-vous avec vos informations d’identification Trello.
Autoriser Azure DevOps à utiliser votre compte Trello.
Copiez le jeton d’autorisation.
Créez une carte trello ou une liste à partir d’un événement Azure DevOps Services.
Accédez à la page des webhooks de service de votre projet :
https://{orgName}/{project_name}/_settings/serviceHooks
page d’administration de projet
Sélectionnez Créer un abonnement.
Choisissez le service Trello.
Page de service
Configurez l’événement Visual Studio déclencheur. Dans ce cas, nous allons faire en sorte que l'abonnement réponde lorsqu'un élément de travail est créé.
page de configuration du déclencheur
Configurez l’action que Trello prendra en réponse au déclencheur : créez une carte ou une liste.
page de configuration d’action
Vous pouvez utiliser des marqueurs de position pour insérer du contenu de l'événement dans le nom et la description des cartes ou des listes que l'abonnement crée. Par exemple, lorsque nous exécutons la notification de test, la carte qui est créée est nommée « Bogue #5 : Une nouvelle idée intéressante ! », car l’élément de travail de test est un bogue (ID=5) avec le titre « Une bonne idée ! ».
Testez l'abonnement au service hook et terminez l'assistant.
notification de test
Maintenant, c'est configuré. Accédez à Trello et voyez les cartes s’afficher.
Espaces réservés
Vous pouvez insérer des éléments de substitution dans le nom d'une liste ou dans le nom ou la description d'une carte à créer via votre abonnement. Lorsqu’une liste ou une carte est créée, les espaces réservés sont remplacés par des valeurs de l’événement déclenché. L’exemple que nous avons utilisé pour le nom de la carte dans cette page utilise :
{{workitem.workItemType}} #{{workitem.id}}: {{workitem.title}}
Ainsi, lorsqu'un bug est créé avec l'ID 5 et le titre « Une super nouvelle idée ! », le nom de la carte est « Bug #5 : Une super nouvelle idée ! ».
La forme de base de l'espace réservé est {{resource.field}}
où ressource est le nom de la ressource qui déclenche l'événement (élément de travail, build, etc.) et champ est un champ de la section ressource de l'événement, comme ID.
Par conséquent, si l’abonnement concerne une build terminée, il peut s’agir de quelque chose comme
Build {{build.id}} completed at {{build.finishTime}}
Où "build" est le nom de la ressource et de l'ID, et finishTime est le champ disponible dans cette ressource. Pour comprendre les types d’événements, les champs et les ressources disponibles à utiliser, examinez la référence des événements .
Champs d'élément de travail
Les champs de l'élément de travail apparaissent dans l'événement sous la forme d'un tableau de champ, comme dans cet exemple :
" 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"
},
En travaillant directement à partir de la définition d’événement, nous aurions créé notre nom de carte comme cet exemple :
{{workitem.fields["System.workItemType"]}} #{{workitem.fields["System.id"]}: {{workitem.fields["System.title"]}}
En guise de raccourci, vous pouvez référencer tous les champs dans les espaces de noms System ou Microsoft.Azure DevOps Services.Common comme s’ils étaient des champs de la ressource.
Ainsi, {{workitem.fields["System.workItemType"]}}
devient {{workitem.workItemType}}
.
Expressions de remplacement
Ces espaces réservés utilisent une implémentation de gabarits handlebar qui est largement compatible avec Mustache. Certaines expressions utiles incluent
Type d’expression | Exemples |
---|---|
expressions de base | {{workitem.name}} |
expressions de tableau | {{pullRequest.reviewers.[0].displayName}} |
sections Moustache | {{#workitem.assignedTo}} Ce wi-fi est attribué {{/workitem.assignedTo}} |
sections Moustache inversées | {{^workitem.assignedTo}} Ce WI n'est pas attribué {{/workitem.assignedTo}} |
assistants de bloc Handlebars | par if/else unless chaque |
chemins Handlebars | ... this Par exemple, {{../comment/id}} ou {{this/title}} |
Commentaires de modèle | {{!-- this is a handlebar comment --}} |
Tarification
Azure DevOps ne facture pas l’intégration de l’infrastructure à des services externes. Consultez le site du service spécifique pour connaître les tarifs liés à leurs services.
Questions & réponses
Q : Puis-je créer des abonnements par programmation ?
R : Oui, consultez les détails ici.
Q : Puis-je obtenir plus d’informations sur Trello ?
R : Oui, trello.com.