Skip to main content

Testar webhooks

Saiba como testar os webhooks e o código que lida com as entregas de webhook.

Sobre como testar os webhooks

Você pode testar a entrega de webhooks. Isso permite que você verifique se o GitHub envia uma entrega de webhook em resposta a um evento que deve acionar uma entrega de webhook.

Você também pode testar o código que lida com as entregas de webhooks usando um computador ou um codespace como servidor local e encaminhando as entregas de webhook para o servidor local. Isso permitirá que você desenvolva e depure o código sem implantá-lo no servidor em produção.

Testando a entrega de webhooks

Você pode disparar um evento de webhook para verificar se o GitHub enviou uma entrega de webhook.

  1. Acione seu webhook. Por exemplo, se for testar um webhook de repositório que está inscrito no evento issues, abra um problema no repositório em que o webhook está configurado.

    Você também pode reenviar uma entrega anterior de webhook. Para obter mais informações, confira "Entregar webhooks novamente".

    Se estiver usando um webhook de organização ou repositório, você também poderá usar a API REST para acionar o evento ping para o seu webhook. Se estiver usando um webhook de repositório e seu webhook estiver inscrito no evento push, você poderá usar a API REST para acionar um evento de teste push para seu webhook. Para obter mais informações, confira "Pontos de extremidade da API REST para webhooks de repositório" e "Pontos de extremidade de API REST para webhooks da organização."

  2. Cheque o GitHub para saber se uma entrega de webhook foi enviada. Para obter informações sobre como fazer isso para cada tipo de webhook, veja "Visualizar entregas do webhook".

Se uma entrega de webhook não foi enviada ou se foi enviada, mas o GitHub indicar que houve uma falha, consulte o guia de solução de problemas para ajudar a diagnosticar o problema. Para obter mais informações, confira "Solução de problemas de webhooks".

Testando o código do webhook localmente

Para testar o código do webhook localmente no computador ou no codespace, você pode usar uma URL de proxy de webhook para encaminhar webhooks do GitHub para o computador ou o codespace. Você pode usar o computador ou o codespace como servidor local para receber esses webhooks encaminhados.

As seções a seguir demonstram como usar o smee.io para fornecer uma URL de proxy de webhook e encaminhar webhooks.

Para obter exemplos específicos de código e das etapas de teste, veja "Lidar com entregas de webhook".

Obter a URL de proxy de webhook

  1. No navegador, navegue até https://smee.io/.
  2. Clique em Iniciar um novo canal.
  3. Copie a URL completa em "URL de Proxy de Webhook". Você usará esse URL nas etapas de configuração a seguir.

Configurar um webhook para usar a URL de proxy do webhook

Configure o webhook para usar a URL de proxy do webhook como descrito acima. Para obter mais informações, confira "Criar webhooks" e "Editando webhooks."

Agora, o GitHub enviará as entregas de webhook para essa URL.

Iniciar um servidor local

No computador ou no codespace, inicie um servidor local. Como fazer isso depende de como o código para receber webhooks é escrito. Para ver exemplos, confira "Lidar com entregas de webhook".

É preciso ter certeza de que o código pode ser executado localmente. Por exemplo, se o código depender de variáveis de ambiente no servidor em produção, verifique se as variáveis de ambiente também estão disponíveis no servidor local.

Também ser útil adicionar instruções de log para você poder verificar se as etapas do código foram executadas como esperado.

Mantenha o servidor local em execução enquanto testa o webhook.

Encaminhar webhooks

  1. Se você ainda não tiver o smee-client instalado, execute o seguinte comando no seu terminal:

    Shell
    npm install --global smee-client
    
  2. Para receber webhooks encaminhados de smee.io, execute o seguinte comando em seu terminal. Substitua WEBHOOK_PROXY_URL pela URL de proxy de webhook anterior. Substitua PATH pelo caminho ou rota que o servidor processará. Substitua PORT pela porta em que o servidor local está escutando.

    Shell
    smee --url WEBHOOK_PROXY_URL --path /PATH --port PORT
    

    A saída deve ser similar a essa, com os espaços reservados WEBHOOK_PROXY_URL, PORT e PATH substituídos pelos valores especificados:

    Shell
    Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:PORT/PATH
    Connected WEBHOOK_PROXY_URL
    

    Agora, quando a URL de proxy de webhook (URL do smee.io) receber uma entrega de webhook do GitHub, o smee encaminhará a entrega de webhook para o servidor local.

  3. Mantenha isso em execução enquanto você testa seu webhook. Quando quiser parar de encaminhar webhooks, use Ctrl+C.

Neste ponto, tanto o servidor local quanto o encaminhamento do smee devem estar em execução.

Disparar uma entrega de webhook

Acione seu webhook. Por exemplo, se for testar um webhook de repositório que está inscrito no evento issues, abra um problema no repositório em que o webhook está configurado.

Você também pode reenviar uma entrega anterior de webhook. Para obter mais informações, confira "Entregar webhooks novamente".

Verificar entrega

Você pode verificar se o GitHub enviou uma entrega de webhook, se o smee recebeu e encaminhou a entrega e se o servidor local processou a entrega.

Verificar se o GitHub enviou uma entrega

Cheque o GitHub para saber se uma entrega de webhook foi enviada. Para obter mais informações, confira "Visualizar entregas do webhook".

Se uma entrega de webhook não foi enviada ou se foi enviada, mas o GitHub indicar que houve uma falha, consulte o guia de solução de problemas para ajudar a diagnosticar o problema. Para obter mais informações, confira "Solução de problemas de webhooks".

Verificar se o smee recebeu a entrega de webhook

Navegue até a URL de proxy de webhook no smee.io. Você deverá ver um evento que corresponde ao evento que acionou ou reenviou. Isso indica que o GitHub enviou com êxito uma entrega de webhook ao URL do conteúdo que você especificou.

Se não encontrar a entrega de webhook no smee.io, verifique se o webhook está usando a URL de proxy do webhook (URL do smee.io).

Verificar se o smee encaminhou a entrega de webhook

Na janela do terminal em que smee --url WEBHOOK_PROXY_URL --path /PATH --port PORT foi executado, você deverá ver algo como POST http://127.0.0.1:3000/webhook - 202. Isso indica que o smee encaminhou com êxito seu webhook ao servidor local.

Se não achar isso, confira se o cliente do smee e o servidor local estão em execução. Esses processos devem estar em execução em duas janelas de terminal separadas.

Cheque também se há erros nas janelas do terminal em que você está executando o cliente do smee e o servidor local. Os erros específicos dependem de como o código para receber webhooks é escrito. Para ver exemplos, confira "Lidar com entregas de webhook".

Verificar se o servidor local processou a entrega de webhook

Neste ponto, você já verificou que GitHub enviou uma entrega de webhook e que o smee encaminhou a entrega para o servidor local. Agora, você deve verificar se o código processou a entrega de webhook como esperado. Como fazer isso depende de como o código para receber webhooks é escrito. Para ver exemplos, confira "Lidar com entregas de webhook".