Configurar Webhooks

Webhooks permitem processamento instantaneo de releases, sem depender do polling do scheduler.

Como Funciona

GitHub Release  ──►  Webhook POST  ──►  GitOps valida  ──►  Processa release
  (publicado)        /webhook/github     HMAC SHA256

O GitHub envia um evento release com payload JSON. O GitOps:

  1. Valida a assinatura HMAC SHA256 (X-Hub-Signature-256)
  2. Verifica se o repositorio esta registrado
  3. Ignora releases draft
  4. Processa se ainda nao foi processado

Criar Webhook

Via API

curl -X POST https://sys.gitops.borlot.com.br/monitor/webhooks/devborlot/meu-repo \
  -H "X-API-Key: SUA_API_KEY"

O GitOps configura automaticamente:

  • URL: endpoint do webhook
  • Secret: da variavel GITHUB_WEBHOOK_SECRET
  • Eventos: apenas release
  • Content type: application/json

Via MCP

> Cria webhook para devborlot/meu-repo

Via Dashboard

Na pagina do repositorio, clique em Criar Webhook.

Listar Webhooks

curl https://sys.gitops.borlot.com.br/monitor/webhooks/devborlot/meu-repo \
  -H "X-API-Key: SUA_API_KEY"

Retorna:

{
  "success": true,
  "repository": "devborlot/meu-repo",
  "total": 1,
  "webhooks": [
    {
      "id": 123456,
      "active": true,
      "events": ["release"],
      "created_at": "2026-01-15T10:00:00Z"
    }
  ]
}

Remover Webhook

curl -X DELETE https://sys.gitops.borlot.com.br/monitor/webhooks/devborlot/meu-repo/123456 \
  -H "X-API-Key: SUA_API_KEY"

Webhook vs Scheduler

Aspecto Webhook Scheduler
Velocidade Instantaneo A cada N minutos
Confiabilidade Depende do GitHub Independente
Configuracao Requer setup por repo Automatico
Duplicatas Verificadas Verificadas

Recomendacao: Use webhook para processamento rapido + scheduler como fallback.

Verificacao de Assinatura

O GitOps valida todas as requisicoes de webhook usando HMAC SHA256:

X-Hub-Signature-256: sha256=abc123...

Se a assinatura nao confere, a requisicao e rejeitada com 401.

Troubleshooting

Webhook nao dispara:

  • Verifique se o release e "published" (nao draft)
  • Confirme que o webhook esta ativo no GitHub (Settings > Webhooks)
  • Veja os "Recent Deliveries" no GitHub para erros

Erro 401 no webhook:

  • O GITHUB_WEBHOOK_SECRET do GitOps deve ser igual ao secret configurado no webhook

Erro 404 no webhook:

  • O repositorio precisa estar registrado no GitOps antes de receber webhooks
By Borlot.com.br on 06/03/2026