Rastreie a atividade do repositório GitHub em tempo real no Slack usando esta API.

A integração do GitHub com o Slack ajudará você a simplificar a comunicação de sua equipe, informando-os sobre os eventos do repositório em tempo real. Essa integração ajuda a colaborar com mais eficiência, discutir alterações no contexto da base de código e resolver rapidamente quaisquer problemas que possam surgir durante o desenvolvimento.

Além disso, a integração do GitHub com o Slack permite que você personalize as notificações de acordo com o fluxo de trabalho exclusivo de sua equipe. Isso minimiza as distrações e foca no que realmente importa. Essa abordagem personalizada de comunicação capacita sua equipe a tomar decisões informadas e ações oportunas, garantindo a mais alta qualidade de saída.

Etapa 1: criar um novo aplicativo Slack

Para prosseguir, você deve estar confortável usando a plataforma Slack. Você também deve estar familiarizado com o GitHub.

A primeira etapa da integração é criar um novo aplicativo Slack. Este aplicativo será responsável por postar mensagens no canal Slack selecionado quando ocorrer um evento de repositório. Para criar um novo aplicativo, navegue até o

Site do Slack e entre na sua conta. Em seguida, crie um novo espaço de trabalho. Você usará este espaço de trabalho para testar seu aplicativo antes de instalá-lo no espaço de trabalho de sua equipe.

Navegue até o Site da API Slack em uma nova guia do navegador.

Clique em Seus aplicativos botão. Na página que aparece, clique no botão Criar novo aplicativo botão.

Escolha a opção de criar o aplicativo do zero. Em seguida, nomeie seu aplicativo e escolha o espaço de trabalho no qual deseja instalá-lo.

Clique no Criar aplicativo botão. Essa ação criará seu novo aplicativo Slack e o redirecionará para o painel.

Etapa 2: configurar um webhook de entrada do Slack

Um webhook de entrada do Slack permite que você envie mensagens de fontes externas para o seu espaço de trabalho do Slack. Para configurar o webhook, escolha o Webhooks recebidos recurso. Certifique-se de ligar o Ativar webhooks de entrada botão.

Role para baixo até o URLs de webhook para seu espaço de trabalho seção. Clique no Adicionar novo webhook ao espaço de trabalho botão.

O Slack solicitará que você escolha o canal em que seu aplicativo postará mensagens. Escolha o canal e clique no botão Permitir botão.

Isso adicionará seu aplicativo ao canal selecionado. Volte para o URLs de webhook para seu espaço de trabalho seção. Copie o gerado URL do webhook. Este é o URL para o qual o GitHub enviará as notificações de eventos do repositório.

Agora você concluiu a configuração do lado do Slack.

Etapa 3: configurar o repositório do GitHub

Navegue até o Site do GitHub e entre na sua conta. Vá para o repositório do qual você deseja receber as notificações de eventos. Você também pode criar um novo repositório. Clique no Ações guia sob o nome do repositório.

Em seguida, clique no configure você mesmo um fluxo de trabalho link. A próxima página exibida exige que você crie um arquivo YAML no diretório de fluxos de trabalho do GitHub. Este arquivo define o fluxo de trabalho do GitHub Actions responsável por enviar notificações ao seu espaço de trabalho Slack.

Você escreverá o código YAML no editor integrado. Esse código integrará o GitHub ao Slack enviando notificações para um canal do Slack quando eventos específicos ocorrerem no repositório.

O código-fonte completo usado neste artigo está disponível em um Repositório GitHub.

Etapa 4: Escreva o código YAML para integrar o GitHub ao Slack

Dê um nome ao seu fluxo de trabalho. Fique a vontade para escolher o nome de sua preferência.

nome:folgaNotificação

Especifique os eventos que acionarão o fluxo de trabalho. É aqui que você escolhe os eventos sobre os quais deseja que sua equipe seja notificada. Adicione ou remova os eventos para atender às suas necessidades.

sobre:
empurrar:
pull_request:
problemas:
tipos:
-aberto
-fechado
-reaberto
-editado
-excluído
-preso
-desafixado
-atribuído
-não atribuído
-rotulado
-sem rótulo
-marco
-demarcado
questão_comentário:
tipos:[criada,editado,excluído]
criar:
excluir:

Configure seu trabalho e escolha o ambiente virtual em que ele será executado. notify_slack é o nome do trabalho. Você pode alterá-lo ao seu gosto.

empregos:
notify_slack:
corre em:ubuntu-latest

Configure uma etapa que será responsável por enviar uma notificação para o Slack.

passos:
-nome:Enviarfolganotificação

Defina uma variável de ambiente chamada SLACK_WEBHOOK_URL. Ele armazenará o URL do webhook do Slack. Posteriormente, você adicionará a URL aos segredos do repositório do GitHub.

ambiente:
SLACK_WEBHOOK_URL:${{segredos. SLACK_WEBHOOK_URL}}

Configurar o ação frouxa Ação do GitHub. Que é uma ação de terceiros que lida com a lógica subjacente da interação com a API do Slack. Ele permite que você se concentre na configuração das mensagens e eventos que acionam as notificações. Isso torna o processo de envio de notificações para o Slack muito mais fácil.

usa:8398a7/action-slack@v3

Este código usa o 8398a7/action-slack@v3Ação.

Configurar o 8398a7/action-slack@v3 ação com parâmetros personalizados. O status parâmetro define o status da mensagem para personalizado. Isso permitirá que você defina o conteúdo da mensagem do Slack usando uma carga útil personalizada. O Campos O parâmetro lista os campos a serem incluídos na mensagem do Slack.

com:
status:personalizado
Campos:repositório, confirmação, evento, ação, fluxo de trabalho, referência, URL

Criar uma custom_payload que personalizará a aparência da mensagem do Slack de acordo com suas preferências.

custom_payload:|
{
"anexos":[
{
"cor":"${{ status de trabalho }}",
"título":>-
${{github.ator}}${{github.event.pull_request&&github.event.pull_request.merged==verdadeiro&&'mesclado um pull request'||github.event.pull_request&&'abriu um pull request'||github.event_name=='empurrar'&&'empurrou novas mudanças'||github.event_name=='criar'&&'criou um novo branch ou tag'||github.event_name=='excluir'&&'excluiu um branch ou tag'||github.event_name=='problemas'&&github.event.action||'desencadeou um evento'}},
"texto":>-
:tada:Detalhes do evento:

-Repositório:${{github.repository}}
-Filial:${{github.ref}}
-Mensagem:${{github.event_name=='empurrar'&&github.event.head_commit.message||github.event_name=='problemas'&&github.event.issue.title||github.event_name=='pull_request'&&github.event.pull_request.title||''}}
-:globo_com_meridianos:Link:${{github.event.pull_request.html_url||github.event.issue.html_url||github.event.repository.html_url}}
}

]
}

Você pode consultar o 8398a7/action-slack@v3 caso de uso personalizado para encontrar todas as personalizações suportadas. Confirme o arquivo YAML para criar o novo fluxo de trabalho.

A última etapa da integração do GitHub com o Slack é adicionar um novo segredo de repositório. O segredo neste caso é o URL do webhook do Slack você copiou do Slack. Mantenha este URL secreto, pois qualquer pessoa que tenha acesso a ele pode enviar mensagens para seu espaço de trabalho.

Navegue até as configurações do seu repositório. Clique no segredos e variáveis debaixo de segurança recurso. Selecione os Ações opção.

Clique em Novo segredo do repositório. Adicione o nome do segredo como SLACK_WEBHOOK_URL. Em seguida, cole o URL do Slack no campo Segredo. Por fim, clique no botão Adicionar Segredo botão para salvar o novo segredo.

Agora você concluiu a integração do GitHub com o Slack. Sempre que um evento acontecer em seu repositório, uma mensagem será exibida em seu canal. Tentar criando uma nova solicitação pull. Isso acionará um evento push.

A captura de tela abaixo mostra exemplos de mensagens no Slack mostrando eventos que ocorreram em um repositório.

Você pode personalizar a carga útil da mensagem para incluir outros campos que achar necessários.

Melhore sua produtividade com integrações do Slack

O GitHub não é a única integração do Slack que você pode adicionar ao seu espaço de trabalho. Existem inúmeras integrações que você pode usar para melhorar a produtividade de sua equipe e aprimorar sua comunicação. Familiarizar-se com essas integrações ajudará você a simplificar o fluxo de trabalho de sua equipe e manter todos na mesma página.