Esta versão do GitHub Enterprise foi descontinuada em 2021-06-09. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

Criar webhooks

Aprenda a criar um webhook, escolhendo os eventos que seu webhook irá ouvir em GitHub e como configurar um servidor para receber e gerenciar a carga de webhook.

Agora que entendemos os conceitos básicos de webhooks, vamos analisar o processo de criação da nossa própria integração com o webhook. Neste tutorial, vamos criar um webhook de repositório que será responsável por listar quão popular é o nosso repositório, com base no número de problemas que recebe por dia.

Criar um webhook é um processo de duas etapas. Primeiro, você deverá configurar como deseja que seu webhook se comporte através do GitHub Enterprise Server: quais eventos devem ser ouvidos. Em seguida, você irá configurar seu servidor para receber e gerenciar a carga.

É possível usar o repositório, organização e as APIs REST do webhook do aplicativo para criar, atualizar, excluir e fixar webhooks. Para obter mais informações, consulte:

Expor o host local na internet

Para fins deste tutorial, vamos usar um servidor local para receber mensagens de GitHub. Portanto, em primeiro lugar, temos de expor o nosso ambiente de desenvolvimento local à internet. Nós usaremos ngrok para fazer isso. Ngrok está disponível, gratuitamente, para todos os principais sistemas operacionais. Para obter mais informações, consulte a página de download do ngrok.

Depois de instalar o ngrok, você poderá expor seu host local executando ./ngrok http 4567 na linha de comando. 4567 é o número da porta em que o nosso servidor ouvirá mensagens. Você deve ver uma linha parecida mais ou menos com isso:

$ Forwarding    http://7e9ea9dc.ngrok.io -> 127.0.0.1:4567

Faça uma anotação da URL *.ngrok.io.. Vamos usá-lo para configurar nosso webhook.

Configurar um webhook

É possível instalar webhooks em uma organização ou em um repositório específico.

Para configurar um webhook, vá para a página de configurações do seu repositório ou organização. Nessa página, clique em Webhooks e, em seguida, Adicionar webhook.

Como alternativa, você pode optar por criar e gerenciar um webhook através da API de Webhooks.

Os webhooks exigem algumas opções de configuração antes de você poder usá-los. Iremos analisar cada uma destas configurações abaixo.

URL de carga

A URL doa carga é a URL do servidor que receberá as solicitações de POST do webhook.

Já que estamos estamos fazendo um desenvolvimento local para o nosso tutorial, vamos configurá-lo para a URL *.ngrok.io, seguida de /payload. Por exemplo, http://7e9ea9dc.ngrok.io/payload.

Tipo de conteúdo

Os webhooks podem ser entregues usando diferentes tipos de conteúdo:

  • O tipo de conteúdo de application/json fornecerá a carga do JSON diretamente como o texto da solicitação POST.
  • O tipo de conteúdo application/x-www-form-urlencoded enviará a carga do JSON como um parâmetro de formulário denominado carga.

Escolha o que melhor se adeque às suas necessidades. Para este tutorial, o tipo de conteúdo-padrão para application/json está certo.

Segredo

Definir um segredo de webhook permite que você certifique-se de que as solicitações POST enviadas para a URL da carga são de GitHub Enterprise Server. When you set a secret, you'll receive the X-Hub-Signature header in the webhook POST request. Para obter mais informações sobre como usar um segredo com um cabeçalho de assinatura para proteger as suas cargas do webhook, veja "Proteger seus webhooks."

Verificação SSL

Se sua "URL da carga" for uma site seguro (HTTPS), você terá a opção de definir as configurações de verificação SSL. Se a sua "URL de carga " não for segura (HTTP), o GitHub não exibirá esta opção. Por padrão, o GitHub verifica o certificado SSL do seu site ao entregar as cargas de webhook. A verificação SSL ajuda a garantir que as cargas de hook sejam entregues no seu ponto de extremidade da URL de forma segura. Você tem a opção de desabilitar SSL, mas recomendamos manter a opção Habilitar a verificação de SSL selecionada.

Ativo

Por padrão, as entregas de webhook estão "Ativas". Você pode optar por desativar a entrega das cargas de webhook, desmarcando "Ativo".

Eventos

Os eventos encontram-se no núcleo dos webhooks. Esses webhooks são acionados sempre que uma determinada ação é tomada no repositório, a qual a URL da carga do seu servidor intercepta e e sobre a qual atua.

Uma lista completa de eventos de webhook e quando são executados pode ser encontrada na referência da API de webhooks.

Como nosso webhook está lidando com problemas em um repositório, clicaremos em Deixe-me selecionar eventos individuais e, em seguida, problemas. Certifique-se de selecionar Ativo para receber eventos de problemas para webhooks acionados. Você também pode selecionar todos os eventos usando a opção-padrão.

Ao terminar, clique em Adicionar webhook.

Agora que você criou o webhook, é hora de configurar nosso servidor local para testar o webhook. Vá até Configurar seu servidor para aprender como fazê-lo.

Evento curinga

Para configurar um webhook para todos os eventos, use o caractere curinga (*) para especificar os eventos de webhook. Ao adicionar o evento curinga, substituiremos todos os eventos existentes que você tenha configurado pelo evento curinga e enviaremos todas as cargas para os eventos compatíveis. Você também obterá automaticamente todos os novos eventos que possamos adicionar no futuro.