Configurar um webhook para um repositório do GitHub
No GitHub, webhooks podem ser definidos para uma organização ou um repositório específico. Um webhook é disparado sempre que um ou mais eventos assinados ocorrem. Por exemplo, o evento Gollum permite que você escute atualizações da wiki, especificamente, a criação e atualizações de uma página da wiki.
Nesta unidade, você aprenderá a configurar um webhook que ouve um evento de alteração do wiki do GitHub da sua empresa.
Configurar um webhook
Configurar um webhook é um processo de duas etapas. Primeiro, especifique no GitHub como deseja que seu webhook se comporte e a quais eventos ele ouvirá. Em segundo lugar, configure sua função no Azure Functions para receber e gerenciar o conteúdo recebido do webhook. No caso do cenário de exemplo acima, estamos configurando um webhook em um repositório específico.
Para configurar o webhook, no portal do GitHub, selecione Configurações na barra de menus superior. A página Configurações é exibida, com o nome do seu repositório. No menu esquerdo, selecione Webhooks e Adicionar webhook. Você também pode criar e gerenciar um webhook por meio da API de WebHooks, que não é abordada neste módulo.
Webhooks exigem algumas opções de configuração antes de você poder usá-los. Abordaremos cada uma dessas configurações a seguir.
URL do conteúdo
A URL do conteúdo é a URL do servidor que receberá as solicitações POST do webhook.
Cada tipo de evento tem um formato de conteúdo específico. Esse conteúdo contém informações sobre o evento que disparou o webhook.
Tipo de conteúdo
Webhooks podem ser entregues usando dois tipos de conteúdo diferentes:
- O tipo de conteúdo aplicativo/json fornece o conteúdo JSON diretamente como o corpo de uma solicitação POST.
- O tipo de conteúdo application/x-www-form-urlencoded envia o conteúdo JSON como um parâmetro de formulário chamado conteúdo.
Observação
A página Adicionar webhook também permite que você especifique como proteger as informações enviadas pelo webhook usando um Segredo. Este tópico é abordado mais adiante neste módulo.
Eventos
Os eventos são o cerne dos webhooks. Os eventos ocorrem sempre que as ações são executadas no repositório. Quando o evento ocorre, o webhook é disparado e chama a URL que você especifica, enviando junto o conteúdo e as informações de evento para a URL. Por exemplo, para responder sempre que um problema é gerado em um repositório, selecione Deixe-me selecionar eventos individuais e, em seguida, marque a caixa de seleção Problemas. Verifique se você marcou a caixa de seleção Ativo para receber eventos de problema para webhooks disparados. Em seguida, selecione Adicionar webhook para ativar o gatilho.
Para escutar as atualizações do wiki para o repositório, marque a caixa de seleção Wiki. Esse evento é o evento do Gollum mencionado anteriormente. Selecione Adicionar webhook para salvar todos os eventos individuais selecionados.
Uma lista completa de eventos do webhook e quando eles podem ser executados pode ser encontrada visitando Eventos de Webhooks do GitHub.
No próximo exercício, orientaremos você pelo processo de configuração de um webhook para um repositório do GitHub.