DevSecOpsARTIGO

Notificação no VSTS ou TFS por e-mail? Não… Notifique pelo Slack! (Integration)

É fato, recebemos muito e-mail no trabalho, além dos pessoais; porém, muitas vezes esse e-mails ou não importam, ou são tantos sobre algo que não é importante que acabamos por ignorá-los. Com notificações do VSTS ou do TFS não seria diferente. Veja como resolver esse problema.

É fato, recebemos muito e-mail no trabalho, além dos pessoais; porém, muitas vezes esse e-mails ou não importam, ou são tantos sobre algo que não é importante que acabamos por ignorá-los.

Com notificações do VSTS ou do TFS não seria diferente. Mesmo assinando somente notificações relevantes, acabamos por mandar o e-mail notificando algum acontecimento para alguma pasta de “Notificações”, arquivando e nem olhando o que aconteceu. O que seria algo interessante e totalmente aderente as práticas de comunicação ou mesmo transparência de agilidade ou cultura DevOps, acaba por se transformar em um transtorno.

Mas se o seu time usa uma ferramenta de colaboração por chat, o Slack, por exemplo, é possível enviar várias notificações adicionando apenas uma extensão.

Integração

Não é necessário instalar uma extensão, pois uma integração é feita através de Services Hooks. A Microsoft já deixou preparado no produto a possibilidade de ser integrado com vários serviços conhecidos, por exemplo, no VSTS:

Além dos serviços conhecidos, é possível criar a própria integração em um endpoint (1) seu, por exemplo.

Já a lista de integrações do TFS é um pouco menor, mesmo na versão 2017:

Tanto no VSTS, quanto no TFS, a janela de configurações acima pode ser acessada pelo menu Settings > Service Hooks, dentro de um Team Project:

Slack

É difícil não saber sobre o Slack: é uma ferramenta de colaboração de times em formato de chat! Ou seja, comunicação em tempo real. Não é um substituto do e-mail, que está sendo mais direcionado para a consolidação de informações, tais como a ata de uma reunião, ou a formalização de uma requisição.

O chat é realmente uma ferramenta mais dinâmica, e se você disponibilizada para uso na empresa, é onde o time de desenvolvimento vai interagir mais.

Criando a integração no Slack

No seu Slack, clique para abrir o menu de opções (1) e em seguida no item “App & Integrations”:

Ao clicar, será aberto um site com configurações, da mesma maneira que o VSTS e o TSF já têm várias integrações, o Slack também entrega várias prontas; procure na caixa de texto (1) por “Visual Studio Team Services”:

Já é apresentado as integrações existentes, clique no botão “Install” (1):

Em seguida, escolha o canal para o qual as notificações serão “postadas” (1), em seguida é só instalar:

O próprio Slack irá fornecer a ajuda para continuar o processo, porém o mais importante desta tela é a informação da URL para a integração. Use “Copy URL” para continuarmos o processo no VSTS.

As customizações existentes são o nome da integração no painel integrações do Slack. Infelizmente, não é possível customizar as informações que serão mostradas na postagem da mensagem no canal.

VSTS ou TFS

Acesse o menu de Settings > Service Hooks, se nenhuma integração tiver sido feita nesta conta, estará visível o botão Create Subscription, se não, procure pelo botão com o sinal ‘+’.

 

Escolha o serviço do VSTS:

 

Em seguida, é preciso escolher o trigger, ou seja, qual a ação que irá gerar uma notificação; neste caso vamos usar o Build Completed (1), e nos filtros, vamos selecionar uma definição de build específica (2), e o status Succeded (3):

Essas configurações são bastante importantes para não cairmos no erro das notificações por e-mail, que é receber demasiadas notificações o que torna cansativo a verificação.

Se pensarmos no conceito de CI e deploy em ambiente de desenvolvimento, talvez o ideal seja receber somente notificações de falha de deploy, nem de build executado com sucesso, pois isso poluiria a timeline do chat!

Seguindo, o último passo irá pedir aquela URL que foi gerada anteriormente, é só colocar no campo Slack Webhook URL:

Clicando no botão Teste, veja o que acontece no canal do time no Slack:

 

Já executando um build, e o status sendo de sucesso:

No meio de um chat, o time pode conferir que um build foi executado, o status é de sucesso, tem o nome, quem solicitou, quanto tempo demorou… Bem informativo.

Na tela de Service Hooks, algumas informações importantes para gerenciamento: o status da integração (1) e a quantidade de execuções nos últimos 14 dias:

 

Talvez você receba um e-mail de alerta de build, mas isso não é da integração com o Slack, e sim uma notificação que você deve desativar no VSTS.

O que mais é possível fazer

Além do build completed, você pode notificar no Slack:

  • Code pushed
  • Pull request created
  • Pull request merge commit created
  • Pull request updated
  • Release abandoned
  • Release created
  • Release deployment approval completed
  • Release deployment approval pending
  • Release deployment completed
  • Release deployment started
  • Team room message posted
  • Work item commented on
  • Work item created
  • Work item deleted
  • Work item restored
  • Work item updated

Ou seja, é muita integração informativa e interessante para deixar cair no esquecimento na sua caixa de e-mail! Em determinados momentos, é interessante ligar algumas, para resolver alguma comunicação no time, em outros momentos, deixar somente as que mostram falhas.

***

Este artigo foi produzido em parceria com a Lambda3. Leia outros conteúdos no blog da empresa: blog.lambda3.com.br

Iniciou em desenvolvimento de software em 2003, com Visual Basic 6 e SQL Server 7.0. Em 2004, já desenvolvia com .Net 1.X. Participou tanto de projetos desktop e web, em VB.Net e C#, usando Domain-Driven Design (DDD) e também SOA, Testes (TDD), também conhece Visual Basic for Applications (VBA para Office / AutoCAD), PowerShell e C. Participa do grupo de arquitetura de software .Net Architects, www.dotnetarchitects.net e da organização do .Net Architects Day, evento anual, mas também de outros eventos, The Developer Conference, DevDay, Meetups. Ultimamente, atuo como consultor em ALM, Application Lifecycle Management, especificamente usando Microsoft Team Foundation Server; e seu objetivo é ajudar times de desenvolvimento de software a serem mais eficientes.

Ver perfil