webhook_secret; $payload = file_get_contents('php://input'); $signatureHeader = $_SERVER['HTTP_X_GITEA_SIGNATURE'] ?? ''; $expectedSignature = hash_hmac('sha256', $payload, $secret); if (!$signatureHeader || !hash_equals($expectedSignature, $signatureHeader)) { http_response_code(403); file_put_contents(__DIR__ . '/webhook-web.log', date('Y-m-d H:i:s') . " - Tentative refusée (signature invalide)\n", FILE_APPEND); exit('Forbidden'); } $webSiteDir = '/home/admin2root/watchgether-web/site'; $output = shell_exec("cd {$webSiteDir} && git fetch origin && git reset --hard origin/main 2>&1"); file_put_contents(__DIR__ . '/webhook-web.log', date('Y-m-d H:i:s') . "\n" . $output . "\n---\n", FILE_APPEND); echo "Web sync done.";