GitHub DevLog AI GitHub DevLog AIWebhook inbox privado para GitHub
← Integrações GitHub
YAML + Python

Webhook do GitHub com GitHub Actions

Dispare um evento sintético assinado para validar endpoint e secret sem expor credenciais nos logs.

Exemplo de código

Endpoint de webhook

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

name: Webhook smoke test
on: workflow_dispatch
jobs:
  send:
    runs-on: ubuntu-latest
    steps:
      - name: Send signed test delivery
        env:
          WEBHOOK_URL: ${{ secrets.DEVLOG_WEBHOOK_URL }}
          WEBHOOK_SECRET: ${{ secrets.DEVLOG_WEBHOOK_SECRET }}
        shell: python
        run: |
          import hashlib, hmac, json, os, urllib.request, uuid
          body = json.dumps({'zen': 'DevLog smoke test'}, separators=(',', ':')).encode()
          signature = 'sha256=' + hmac.new(os.environ['WEBHOOK_SECRET'].encode(), body, hashlib.sha256).hexdigest()
          request = urllib.request.Request(os.environ['WEBHOOK_URL'], data=body, method='POST', headers={
              'Content-Type': 'application/json', 'X-GitHub-Event': 'ping',
              'X-GitHub-Delivery': str(uuid.uuid4()), 'X-Hub-Signature-256': signature})
          with urllib.request.urlopen(request) as response:
              print('Webhook accepted:', response.status)
Passos de configuração

Valide a primeira delivery

Passos de configuração 1

Crie um workspace no DevLog e copie o endpoint e o Secret.

Passos de configuração 2

Configure o mesmo Secret no GitHub e na variável segura da aplicação.

Passos de configuração 3

Envie um ping e confirme assinatura, Delivery ID e payload no inbox.