Creare un hook del servizio per Azure DevOps Services e TFS con Trello

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

Creare schede ed elenchi in Trello in risposta agli eventi di Azure DevOps. Ad esempio, quando viene eseguito il push del codice o si verifica una compilazione.

Ottenere un token di autorizzazione Trello

  1. Se non si ha un account Trello, iscriversi a Trello.

  2. Passare alla pagina Autorizza Azure DevOps Services per Trello e accedere con le credenziali di Trello.

  3. Consentire ad Azure DevOps di usare l'account Trello.

    Consenti Azure DevOps Services

  4. Copiare il token di autorizzazione.

    Token di autorizzazione Trello

Creare una scheda o un elenco trello da un evento di Azure DevOps Services.

  1. Passare alla pagina Service Hooks (Hook del servizio) del progetto:

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

    Pagina amministrazione progetto

    Selezionare Crea sottoscrizione.

  2. Selezionare il servizio Trello.

    Pagina servizio, Trello selezionata

  3. Configurare l'evento di attivazione di Visual Studio. In questo caso, la sottoscrizione risponderà quando viene creato un elemento di lavoro.

    Pagina di configurazione del trigger

  4. Configurare l'azione che Trello eseguirà in risposta al trigger, ovvero creare una scheda o un elenco.

    Pagina di configurazione dell'azione

    È possibile usare i segnaposto per inserire contenuto dall'evento nel nome e nella descrizione delle schede o degli elenchi creati dalla sottoscrizione. Ad esempio, quando si esegue la notifica di test, la scheda creata è denominata "Bug #5: Alcune nuove idee!" perché l'elemento di lavoro del test è un bug (ID=5) con il titolo "Alcune nuove idee!".

  5. Testare la sottoscrizione dell'hook del servizio e completare la procedura guidata.

    Notifica di prova

Ora è configurato. Vai a Trello e vedi le schede visualizzate.

Scheda di benvenuto con una scheda per bug n. 5

Segnaposto

È possibile inserire segnaposto nel nome di un elenco o nel nome o nella descrizione di una carta da creare dalla sottoscrizione. Quando viene creato un elenco o una scheda, i segnaposto verranno sostituiti da valori dell'evento generato. L'esempio usato per il nome della scheda in questa pagina usa:

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

Quindi, quando viene creato un bug con l'ID 5 e il titolo "Alcune nuove idee!", il nome della scheda è "Bug #5: Alcune nuove idee!".

Il formato di base del segnaposto è {{resource.field}} dove la risorsa è il nome della risorsa che genera l'evento (elemento di lavoro, compilazione e così via) e il campo è un campo all'interno della sezione della risorsa dell'evento, ad esempio ID. Quindi, se la sottoscrizione è per una compilazione completata, potrebbe essere simile a

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

Dove build è il nome della risorsa e dell'ID, finishTime sono i campi disponibili in questa risorsa. Per comprendere i tipi di evento, i campi e le risorse disponibili per l'uso, vedere il riferimento agli eventi.

Campi elemento di lavoro

I campi dell'elemento di lavoro vengono visualizzati nell'evento nella matrice di campi, come nell'esempio seguente:

    " 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"
           },

Lavorando direttamente dalla definizione dell'evento, è stato creato il nome della scheda come nell'esempio seguente:

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

Come collegamento, è possibile fare riferimento a qualsiasi campo nello spazio dei nomi System o Microsoft.Azure DevOps Services.Common come se fossero campi della risorsa. Di conseguenza, {{workitem.fields["System.workItemType"]}} diventa {{workitem.workItemType}}.

Espressioni segnaposto

Questi segnaposto usano un'implementazione dei modelli di handlebars ampiamente compatibile con Mustache. Alcune espressioni utili includono

Tipo di espressione esempi
espressioni di base {{workitem.name}}
espressioni di matrice {{pullRequest.reviewers.[0].displayName}}
Sezioni mustache {{#workitem.assignedTo}} Questo wi-wi è assegnato {{/workitem.assignedTo}}
Sezioni invertite mustache {{^workitem.assignedTo}} Questa connessione wi-wi non è assegnata {{/workitem.assignedTo}}
Helper di blocco delle barre dei gestori con
if/else
unless
ogni
Percorsi delle barre di gestione ...
this
Ad esempio, {{../comment/id}} o {{this/title}}
Commenti modello {{!-- this is a handlebar comment --}}

Prezzi

Azure DevOps non addebita alcun costo per il framework per l'integrazione con i servizi esterni. Per informazioni sui prezzi relativi ai servizi, vedere il sito del servizio specifico.

Domande e risposte

D: È possibile creare sottoscrizioni a livello di codice?

R: Sì, vedere i dettagli qui.

D: Posso ottenere altre informazioni su Trello?

R: Sì, trello.com.