Criar um gancho de serviço para os Serviços de DevOps do Azure e o TFS com o Trello
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Crie cartões e listas no Trello em resposta a eventos do Azure DevOps. Por exemplo, quando o código é enviado por push ou ocorre uma compilação.
Obter um token de autorização do Trello
Se você não tem uma conta no Trello, inscreva-se no Trello.
Vá para a página Autorizar Serviços de DevOps do Azure para o Trello e entre com suas credenciais do Trello.
Permita que o Azure DevOps use sua conta do Trello.
Copie o token de autorização.
Crie um cartão ou uma lista do Trello a partir de um evento dos Serviços de DevOps do Azure.
Vá para a página Ganchos de Serviço do projeto:
https://{orgName}/{project_name}/_settings/serviceHooks
Escolha Criar assinatura.
Escolha o serviço Trello.
Configure o evento de disparo do Visual Studio. Nesse caso, teremos a resposta da assinatura quando um item de trabalho for criado.
Configure a ação que o Trello tomará em resposta ao gatilho - crie um cartão ou uma lista.
Você pode usar espaços reservados para inserir conteúdo do evento no nome e na descrição dos cartões ou listas criados pela assinatura. Por exemplo, quando executamos a notificação de teste, o cartão que é criado é chamado de "Bug #5: Some great new idea!" porque o item de trabalho de teste é um bug (ID=5) com o título "Some great new idea!".
Teste a assinatura do gancho de serviço e conclua o assistente.
Agora está configurado. Acesse o Trello e veja os cartões aparecerem.
Espaços reservados
Você pode inserir espaços reservados no nome de uma lista ou no nome ou descrição de um cartão a ser criado por sua assinatura. Quando uma lista ou cartão é criado, os espaços reservados serão substituídos por valores do evento que foi gerado. O exemplo que usamos para o nome do cartão nesta página usa:
{{workitem.workItemType}} #{{workitem.id}}: {{workitem.title}}
Então, quando um bug é criado com o ID 5 e o título "Some great new idea!", o nome do cartão é "Bug #5: Some great new idea!".
A forma básica do espaço reservado é {{resource.field}}
onde resource é o nome do recurso que gera o evento (item de trabalho, compilação e assim por diante) e field é um campo dentro da seção de recursos do evento, como ID.
Então, se a assinatura for para uma compilação concluída, pode ser algo como
Build {{build.id}} completed at {{build.finishTime}}
Onde build é o nome do recurso e ID, finishTime são os campos disponíveis neste recurso. Para entender os tipos de eventos, campos e recursos disponíveis para uso, consulte a referência de eventos.
Campos de item de trabalho
Os campos de item de trabalho aparecem no evento na matriz de campos, como este exemplo:
" 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"
},
Trabalhando diretamente a partir da definição do evento, teríamos criado nosso nome de cartão como este exemplo:
{{workitem.fields["System.workItemType"]}} #{{workitem.fields["System.id"]}: {{workitem.fields["System.title"]}}
Como atalho, você pode fazer referência a quaisquer campos nos namespaces System ou Microsoft.Azure DevOps Services.Common como se fossem campos do recurso.
Portanto, {{workitem.fields["System.workItemType"]}}
torna-se {{workitem.workItemType}}
.
Expressões de espaço reservado
Esses espaços reservados usam uma implementação de modelos de guidão que é amplamente compatível com o Bigode. Algumas expressões úteis incluem
Tipo de expressão | exemplos |
---|---|
expressões básicas | {{workitem.name}} |
expressões de matriz | {{pullRequest.reviewers.[0].displayName}} |
Seções de bigode | {{#workitem.assignedTo}} Este WI é atribuído {{/workitem.assignedTo}} |
Bigode Seções Invertidas | {{^workitem.assignedTo}} Esta WI não está atribuída {{/workitem.assignedTo}} |
Ajudantes de bloco de guidão | por se/mais unless a cada |
Caminhos do guidão | ... this Por exemplo, {{../comment/id}} ou {{this/title}} |
Comentários do modelo | {{!-- this is a handlebar comment --}} |
Preços
O Azure DevOps não cobra pela estrutura de integração com serviços externos. Confira o site do serviço específico para obter preços relacionados aos seus serviços.
Perguntas e Respostas
P: Posso criar assinaturas programaticamente?
R: Sim, veja detalhes aqui.
P: Posso obter mais informações sobre o Trello?
R: Sim, trello.com.