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 carte 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.

Obtenir un jeton d’autorisation Trello

  1. Si vous n’avez pas de compte Trello, inscrivez-vous à Trello.

  2. Accédez à la page Autoriser Azure DevOps Services pour Trello et connectez-vous avec vos informations d’identification Trello.

  3. Autoriser Azure DevOps à utiliser votre compte Trello.

    Autoriser Azure DevOps Services

  4. Copiez le jeton d’autorisation.

    Jeton d’autorisation Trello

Créez un carte ou une liste Trello à partir d’un événement Azure DevOps Services.

  1. Accédez à la page Hooks de service de votre projet :

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

    Page Administration du projet

    Sélectionnez Créer l'abonnement.

  2. Choisissez le service Trello.

    Page de service, Trello sélectionné

  3. Configurez l’événement Visual Studio déclencheur. Dans ce cas, nous allons avoir l’abonnement à répondre lorsqu’un élément de travail est créé.

    Page de configuration du déclencheur

  4. 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 espaces réservés pour insérer du contenu à partir de l’événement dans le nom et la description des carte ou des listes créées par l’abonnement. Par exemple, lorsque nous exécutons la notification de test, la carte 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 idée nouvelle ! ».

  5. Testez l’abonnement de hook de service et terminez l’Assistant.

    Notification de test

Maintenant, il est configuré. Accédez à Trello et voyez les carte s apparaître.

Tableau d’accueil avec un carte pour bug #5

Espaces réservés

Vous pouvez insérer des espaces réservés dans le nom d’une liste ou le nom ou la description d’une carte à créer par votre abonnement. Lorsqu’une liste ou 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 carte dans cette page utilise :

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

Ainsi, lorsqu’un bogue est créé avec l’ID 5 et le titre « Une bonne idée ! », le nom carte est « Bug #5 : Some great new idea ! ».

La forme de base de l’espace réservé est {{resource.field}} l’emplacement où la ressource est le nom de la ressource qui déclenche l’événement (élément de travail, build, et ainsi de suite) et le champ est un champ dans 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ù la build est le nom de la ressource et de l’ID, finishTime est les champs disponibles 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éments de travail

Les champs d’élément de travail apparaissent dans l’événement dans le tableau de champs, comme 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 carte comme dans 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. {{workitem.fields["System.workItemType"]}} devient donc {{workitem.workItemType}}.

Expressions d’espace réservé

Ces espaces réservés utilisent une implémentation de modèles handlebars 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 de moustache {{#workitem.assignedTo}} Ce wi-fi est affecté {{/workitem.assignedTo}}
Sections inversées de Moustache {{^workitem.assignedTo}} Ce wi-fi n’est pas affecté {{/workitem.assignedTo}}
Helpers de blocs handlebars par
if/else
unless
chaque
Chemins de 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 à ses services.

Questions et réponses

Q : Puis-je créer des abonnements par programmation ?

R : Oui, voir les détails ici.

Q : Puis-je obtenir plus d’informations sur Trello ?

R : Oui, trello.com.