Skip to content

renanfferreira/mattermost-gitlab-webhook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Webhook - MRs Gitlab x Mattermost

Este projeto tem interesse em servir como webhook utilizado para enviar mensagens a canais mattermost, quando um merge request Gitlab for aberto.

image

Como utilizar?

Vamos utilizar como exemplo, um projeto onde temos 2 repositórios backend e 2 repositórios frontend, e desejamos receber mensagens de MRs abertos nesses repositórios de forma separada, em canais diferentes.

Hospedagem

Precisaremos ter uma url disponível para o gitlab realizar requisições ao nosso webhook, portanto, é necessário hospedar o projeto em um servidor node. Utilizaremos o Heroku neste exemplo.

Mattermost

No mattermost, é necessário criar webhooks de entrada nos canais que deseja receber mensagens de merge requests abertos. Para tal, vá no menu Integrações.

Em seguida, Webhooks Entrada

image

Clique no botão Adicionar Webhooks Entrada

image

Preencha os dados do formulário e clique em Salvar

image

Guarde a URL gerada

Repita o mesmo processo para o canal de MRs frontend

Gitlab

No gitlab, abra o repositório do qual que deseja receber mensagens, vá no menu Settings, em seguida, Webhooks.

image

Adicione a URL de onde hospedou o projeto, gere um Secret Token (uma string qualquer) e guarde-o, pois utilizaremos como variável de ambiente, e marque somente a trigger Merge request events. Em seguida, clique no botão Add webhook.

image

Repita o processo para os outros projetos.

Configuração da hospedagem

Agora precisamos adicionar algumas variáveis de ambiente no servidor onde foi realizado o deploy do nosso webhook.

GITLAB_SECRET_TOKEN

Secret token que foi utilizado na hora de adicionar os webhooks no Gitlab. Neste exemplo, utilizamos 84316468-5999-421f-acae-a468e5e23a67

PROJECT_BACKEND_MM_WEBHOOKS

Webhook que criamos no mattermost para o backend. Pode ser mais de um, separados por , caso desejável. Neste exemplo, utilizamos https://chat.example.com.br/hooks/u9n8njxeup8d7mdybn5tbjbs8a

PROJECT_BACKEND_URLS

Urls dos projetos backend, separados por ,. Pode ser utilizado parte da url. Neste exemplo, utilizamos project-backend,project-database

PROJECT_FRONTEND_MM_WEBHOOKS

Webhook que criamos no mattermost para o frontend. Pode ser mais de um, separados por , caso desejável. Neste exemplo, utilizamos https://chat.example.com.br/hooks/e51m8g9t9jbt8x6pwmnyyk6a7c

PROJECT_FRONTEND_MM_WEBHOOKS

Urls dos projetos frontend, separados por ,. Pode ser utilizado parte da url. Neste exemplo, utilizamos project-front


É possível enviar mensagens de MRs abertos de outras equipes (DevOps por exemplo) criando mais variáveis de ambiente. Basta seguir o padrão PROJECT_<NOME_DA_EQUIPE>_MM_WEBHOOKS para os webhooks do mattermost, e PROJECT_<NOME_DA_EQUIPE>_URLS para urls dos projetos gitlab.

Releases

No releases published

Packages

 
 
 

Contributors