Integrando o Azure-DevOps com Rocket Chat

Altamir Junior Dias
CWI Software
Published in
3 min readMay 27, 2019

Quando procuramos por comparações entre o Slack e o Rocket Chat, encontramos que o Slack é o melhor na maioria das comparações onde aparece em primeiro lugar e o Rocket apenas em oitavo.

O Slack tem integrações com Trello, GitHub, Dropbox, Mailchimp e outros tantos, mas a sua versão free tem limitações relacionadas ao número de mensagens armazenadas, já o Rocket não tem limitações mas não tem muitas integrações disponíveis.

E isso significa que não é bom? Acho que não.

Para começar a implementar integrações com o Rocket o usuário precisa ser Integrador, com isso será habilitada opção Integrações na Administração.

Agora basta criar uma Nova integração.

A integração que demonstrarei aqui será para receber dados do Azure-DevOps, então selecionaremos a opção WebHook entrante.

Definindo uma WebHook de Entrada

Para definir uma WebHook de entrada é necessário informar algumas propriedades, como o canal que receberá as mensagens e o usuário que postará a mensagem. Ambos precisam existir antes da criação do WebHook.

Existem outras propriedades além das configuradas acima, mas vamos focar somente naquelas que são obrigatórias. Ativado que indica se o WebHook está ativo e recebendo requisições; Script Ativado que indica que o script (próxima propriedade) será executado; Script é ECMAScript 6 (typescript) que receberá a requisição e processará a mensagem para o Rocket.

Abaixo pode ser visto um script básico que recebe a requisição (request) e devolve para o Rocket uma mensagem.

class Script { 
process_incoming_request({ request }) {
return {
"text": "Example message",
"attachments": [
{
"title": "Rocket.Chat",
"title_link": "https://rocket.chat",
"text": "Rocket.Chat, the best open source chat",
"image_url": "/images/integration-attachment-example.png",
"color": "#764FA5"
}
]
}
}
}

Quando o WebHook é salvo pela primeira vez aparece duas novas propriedades, Webhook URL e Token.

O Webhook URL é o caminho que iremos utilizar para conectar ao nosso Azure DevOps e o Token é a chave para o Azure DevOps se conectar com o Rocket.

Com essas duas informações podemos começar o processo de integração com o Azure DevOps através das configurações em https://<server>.visualstudio.com/<project>/_settings/serviceHook.

Podemos iniciar o processo de criação informando que o Service é do tipo Web Hooks, após isso, é só clicar no Next.

Na definição da Trigger podemos escolher um entre vários eventos que o Azure DevOps tem disponível assim como aplicar filtros, e novamente clicamos no Next.

Agora podemos utilizar o Webhook URL que o Rocket gerou colocando ele na propriedade URL. Pronto! Podemos testar a integração com o botão Test.

Especializando a integração

Após o teste realizado podemos ver quais informações foram enviadas para o o Rocket na sessão request.

Agora com essas informações podemos parametrizar o Webhook do Rocket para manipular a requisição e gerar mensagens personalizadas.

--

--