Webhook API
POST /webhook
Recebe eventos de Merge Request do GitLab.
Headers
| Header | Obrigatório | Descrição |
|---|---|---|
Content-Type | sim | application/json |
X-Gitlab-Token | sim | Token de validação do webhook |
Request body
Payload do Merge Request Webhook do GitLab.
{
"object_kind": "merge_request",
"project": {
"id": 42
},
"object_attributes": {
"iid": 7,
"action": "open",
"target_branch": "main",
"source_branch": "feature/add-auth",
"title": "feat: add authentication",
"description": "Implement JWT auth",
"diff_refs": {
"base_sha": "abc123",
"start_sha": "def456",
"head_sha": "ghi789"
},
"last_commit": {
"id": "xyz789"
}
}
}
Respostas
202 Accepted
Webhook aceito e processamento iniciado em background.
{"status": "accepted"}
200 OK
Evento ignorado (ação não suportada ou tipo de evento diferente).
{"status": "ignored"}
401 Unauthorized
Token inválido ou ausente.
{"detail": "invalid token"}
400 Bad Request
JSON inválido no body.
{"detail": "invalid json"}
Ações suportadas
| Ação | Comportamento |
|---|---|
open | Full diff via /merge_requests/:id/changes |
update (com oldrev) | Incremental diff via /repository/compare |
update (sem oldrev) | Ignorado |
close, reopen, etc. | Ignorado |
GET /healthz
Health check endpoint.
Resposta
200 OK
{"status": "ok"}