Criar um gancho de serviço para o Azure DevOps Services 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 um build.
Pré-requisitos
Categoria | Requisitos |
---|---|
Permissões | - Membro do grupo "Administradores da Coleção de Projetos ". Os proprietários da organização são automaticamente membros desse grupo. Permissões - Editar assinaturas e Exibir assinaturas definidas como Permitir. Por padrão, somente os administradores de projeto têm essas permissões. Para conceder as permissões a outros usuários, você pode usar a linha de comando ou a API REST de Segurança . |
Ferramentas | Trello |
Obter um token de autorização do Trello
Se você não tiver uma conta do Trello, inscreva-se no Trello.
Acesse a página Autorizar o Azure DevOps Services para Trelloe entre com suas credenciais do Trello.
Permitir 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 do Azure DevOps Services.
Vá para a página Service Hooks do projeto:
https://{orgName}/{project_name}/_settings/serviceHooks
Escolha Criar assinatura.
Escolha o serviço trello.
página de serviço
Configure o evento de acionamento do Visual Studio. Nesse caso, vamos fazer com que a assinatura responda 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.
página de configuração da Ação
Você pode usar os espaços reservados para inserir conteúdo do evento no nome e na descrição dos cartões ou listas que a assinatura cria. Por exemplo, quando executamos a notificação de teste, o cartão que é criado é denominado "Bug nº 5: Uma ótima ideia nova!" porque o item de trabalho de teste é um bug (ID=5) com o título "Uma ótima ideia nova!".
Teste a assinatura do gancho de serviço e finalize o assistente.
Agora está configurado. Vá para Trello e veja as cartas aparecerem.
Espaços reservados
Você pode inserir os espaços reservados no nome de uma lista ou no nome ou descrição de um cartão a ser criado pela assinatura. Quando uma lista ou cartão for criado, os espaços reservados serão substituídos por valores do evento que foi gerado. O exemplo usado para o nome do cartão nesta página usa:
{{workitem.workItemType}} #{{workitem.id}}: {{workitem.title}}
Portanto, quando um bug é criado com a ID 5 e o título "Alguma ótima ideia nova!", o nome do cartão é "Bug nº 5: Uma ótima ideia nova!".
A forma básica do espaço reservado é {{resource.field}}
em que o recurso é o nome do recurso que gera o evento (item de trabalho, build, etc.) e o campo é um campo dentro da seção de recursos do evento, como a ID.
Então, se a assinatura for para uma compilação concluída, ela 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 nesse recurso. Para entender os tipos de evento, os campos e os recursos disponíveis para uso, examine a referência de eventos .
Campos de item de trabalho
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 da definição do evento, teríamos criado nosso nome de cartão como mostrado neste exemplo:
{{workitem.fields["System.workItemType"]}} #{{workitem.fields["System.id"]}: {{workitem.fields["System.title"]}}
Como atalho, você pode referenciar todos os campos nos namespaces System ou Microsoft.Azure DevOps Services.Common como se fossem campos do recurso.
Então {{workitem.fields["System.workItemType"]}}
se torna {{workitem.workItemType}}
.
Expressões de espaço reservado
Esses espaços reservados usam a implementação dos modelos de handlebars que é amplamente compatível com Mustache. 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 Mustache | {{#workitem.assignedTo}} Essa WI é atribuída {{/workitem.assignedTo}} |
Seções Mustache invertidas | {{^workitem.assignedTo}} Essa WI não é atribuída {{/workitem.assignedTo}} |
Auxiliares de blocos de handlebars | por if/else a menos que a cada |
Caminhos de handlebars | ... this Por exemplo, {{../comment/id}} ou {{this/title}} |
Comentários do modelo | {{!-- this is a handlebar comment --}} |
Precificação
O Azure DevOps não cobra pela estrutura para integração com serviços externos. Confira o site do serviço específico para obter preços relacionados aos seus serviços.
P & R
P: Posso criar assinaturas programaticamente?
R: Sim, veja os detalhes aqui.
P: Posso obter mais informações sobre Trello?
R: Sim, trello.com.