GitHub DevLog AI GitHub DevLog AIWebhook inbox privado para GitHub
← Integrações GitHub
PHP

Webhook do GitHub com Laravel

Valide o corpo bruto antes de transformar o payload e envie o trabalho pesado para a fila.

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.

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::post('/webhooks/github', function (Request $request) {
    $body = $request->getContent();
    $sent = (string) $request->header('X-Hub-Signature-256');
    $expected = 'sha256='.hash_hmac('sha256', $body, config('services.github.webhook_secret'));
    abort_unless(hash_equals($expected, $sent), 401);

    ProcessGithubWebhook::dispatch(
        $request->header('X-GitHub-Delivery'),
        $request->header('X-GitHub-Event'),
        json_decode($body, true, flags: JSON_THROW_ON_ERROR),
    );
    return response()->noContent();
});
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.