← 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.