GitHub DevLog AI GitHub DevLog AIWebhook inbox privado para GitHub
Referência técnica

API e webhooks para integrar GitHub ao DevLog AI.

Esta referência cobre endpoints públicos, headers esperados, validação de assinatura e respostas principais para configurar ou automatizar integrações.

Webhook GitHub por workspace

Receba eventos em um endpoint isolado por workspace.

POST /webhooks/github/{workspaceUuid}
Content-Type: application/json
X-GitHub-Event: push
X-GitHub-Delivery: 8189e9a8-43cc-11f1-8719-a9d9d4b439df
X-Hub-Signature-256: sha256=...

workspaceUuid

Identificador público do workspace, exibido no painel do usuário autenticado.

Secret

Configure o Secret do workspace no GitHub para gerar a assinatura HMAC SHA-256.

Payload

O corpo JSON é armazenado de forma sanitizada e aparece no histórico privado do workspace.

Validação de assinatura

Uma assinatura inválida deve falhar antes de salvar o evento.

expected = "sha256=" + HMAC_SHA256(rawBody, workspaceSecret)
valid = hash_equals(expected, X-Hub-Signature-256)

Se a assinatura estiver ausente ou não corresponder, o endpoint retorna 401 e o payload não entra no workspace.

Respostas comuns

200 OK

{"ok": true, "id": 123}

Evento aceito, validado e salvo.

401 Unauthorized

{"error": "Assinatura GitHub invalida."}

Secret incorreto ou assinatura ausente.

429 Too Many Requests

{"error": "Limite mensal de eventos atingido."}

O workspace atingiu o limite do plano.

GitHub App

O caminho de produção usa GitHub App.

POST /webhooks/github-app
X-GitHub-Event: push
X-Hub-Signature-256: sha256=...

O endpoint do GitHub App valida o Secret global do app, encontra a instalação por installation.id e salva o evento no workspace vinculado.

Mercado Pago

Billing recebe notificações assinadas do provedor.

POST /webhooks/mercado-pago
x-signature: ...
x-request-id: ...

Esse endpoint processa pagamentos, assinaturas e faturas de uso quando o Secret do webhook está configurado.

Boas práticas

Use HTTPS

Webhooks de produção devem apontar para o domínio oficial com TLS ativo.

Rotacione Secrets

Se houver suspeita de exposição, gere um novo Secret no painel e atualize o GitHub.

Evite dados desnecessários

Revise eventos e repositórios para não enviar payloads além do necessário.

Exemplos de código, nomes de cabeçalhos, nomes de eventos e assinaturas permanecem literais nos dois idiomas.