Inscreva-se no número mínimo de eventos
Você só deve se inscrever nos eventos de webhook de que necessita. Isso reduzirá a quantidade de trabalho que seu servidor precisará executar. Para obter mais informações sobre como assinar eventos, consulte "Criar webhooks" e "Editando webhooks".
Usar um segredo de webhook
Warning
Para evitar a exposição acidental de informações confidenciais, não inclua esse tipo de informação na URL de conteúdo. Isso inclui suas chaves de API e outras credenciais de autenticação. Em vez disso, para validar que as entregas de webhook foram enviadas pelo GitHub e não foram adulteradas, use um segredo de webhook. Para obter mais informações, confira "Validação de entregas de webhooks".
O segredo de webhook deve ser uma cadeia de caracteres aleatória de texto com alta entropia. Você deve armazenar com segurança seu segredo de webhook de uma maneira que seu servidor possa acessar.
Usar verificação HTTPS e SSL
Você deve garantir que seu servidor use uma conexão HTTPS. Por padrão, o GitHub verificará certificados SSL ao entregar webhooks. O GitHub recomenda que deixe a verificação de SSL habilitada.
Responder em até 30 segundos
Seu servidor deve dar uma resposta 2XX em até 30 segundos depois de receber uma entrega de webhook. Se o servidor demorar mais do que isso para responder, o GitHub terminará a conexão e considerará que houve falha na entrega.
Para responder em tempo hábil, convém configurar uma fila para processar conteúdo de webhook de forma assíncrona. Seu servidor pode responder ao receber o webhook e, em seguida, processar o conteúdo em segundo plano sem bloquear futuras entregas de webhook. Por exemplo, você pode usar serviços, como Hookdeck, ou bibliotecas, como Resque (Ruby), RQ (Python) ou RabbitMQ (Java).
Verifique o tipo de evento e a ação antes de processar o evento
Há vários tipos de evento de webhook e muitos eventos podem ter vários tipos de ação. O GitHub continua a adicionar novos tipos de evento e novas ações aos tipos de evento existentes. Seu aplicativo deve verificar o tipo de evento e a ação de um conteúdo de webhook antes de processar o conteúdo. Para determinar o tipo de evento, você pode usar o cabeçalho da solicitação X-GitHub-Event
. Para determinar o tipo de ação, você pode usar a chave action
de nível superior no conteúdo do evento.
Fazer nova entrega de entregas ignoradas
Se o servidor ficar inoperante, você deverá fazer uma nova entrega dos webhooks ignorados assim que o servidor retornar. Para obter mais informações, confira "Entregar webhooks novamente".
Use o cabeçalho X-GitHub-Delivery
Em um ataque de reprodução, um agente mal-intencionado intercepta uma entrega de webhook e reenvia a entrega. Para se proteger contra ataques de reprodução, você pode usar o cabeçalho X-GitHub-Delivery
para garantir que cada entrega seja exclusiva por evento.
Note
Se você solicitar uma nova entrega, o cabeçalho X-GitHub-Delivery
será o mesmo da entrega original.