From de298797938afa1ce1f71a6e333a956f148ac980 Mon Sep 17 00:00:00 2001 From: shimon Date: Fri, 24 Jan 2025 16:22:11 +0200 Subject: [PATCH] payload debug --- app/controllers/api/vcs.php | 53 ++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/app/controllers/api/vcs.php b/app/controllers/api/vcs.php index 826dec176b..8971d4549d 100644 --- a/app/controllers/api/vcs.php +++ b/app/controllers/api/vcs.php @@ -1,5 +1,6 @@ inject('dbForPlatform') ->inject('getProjectDB') ->inject('queueForBuilds') - ->inject('project') ->action( - function (GitHub $github, Request $request, Response $response, Database $dbForPlatform, callable $getProjectDB, Build $queueForBuilds, Document $project) use ($createGitDeployments) { - $payload = $request->getRawPayload(); + function (GitHub $github, Request $request, Response $response, Database $dbForPlatform, callable $getProjectDB, Build $queueForBuilds) use ($createGitDeployments) { - var_dump([ - 'project'=> $project, - $request->getHeaders() - ]); + $payload = $request->getRawPayload(); + $parsedPayload = $github->getEvent($event, $payload); + $providerInstallationId = $parsedPayload["installationId"] ?? ''; + + $repository = Authorization::skip(fn () => $dbForPlatform->findOne('repositories', [ + Query::equal('installationId', [$providerInstallationId]), + ])); + + $projectId = $repository->getAttribute('projectId'); + var_dump($projectId); +// if (empty($projectId)) { +// throw new Exception(Exception::GENERAL_ACCESS_FORBIDDEN, "Project was not found"); +// } +// +// $project = $dbForPlatform->getDocument('projects', $projectId); +// +// if($project->getAttribute('region') !== System::getEnv('_APP_REGION')){ +// $networkDomains = []; +// $tmp = explode(',', System::getEnv('_APP_NETWORK_DOMAINS')); +// foreach ($tmp as $domain) { +// $parts = explode('=', $domain); +// $networkDomains[$parts[0]] = $parts[1]; +// } +// +// $targetUrl = 'https://'.$networkDomains[$project->getAttribute('region')].'/v1/vcs/github/events'; +// $client = new Client(); +// foreach ($request->getHeaders() as $name => $value) { +// $client->addHeader($name, $value); +// } +// +// try { +// $client->fetch( +// url: $targetUrl, +// method: Client::METHOD_POST, +// body: $payload +// ); +// } catch (Throwable $th) { +// throw new Exception(Exception::GENERAL_ACCESS_FORBIDDEN, "Error while redirecting to $targetUrl"); +// } +// } $signatureRemote = $request->getHeader('x-hub-signature-256', ''); $signatureLocal = System::getEnv('_APP_VCS_GITHUB_WEBHOOK_SECRET', ''); @@ -903,7 +939,7 @@ App::post('/v1/vcs/github/events') $event = $request->getHeader('x-github-event', ''); $privateKey = System::getEnv('_APP_VCS_GITHUB_PRIVATE_KEY'); $githubAppId = System::getEnv('_APP_VCS_GITHUB_APP_ID'); - $parsedPayload = $github->getEvent($event, $payload); + if ($event == $github::EVENT_PUSH) { $providerBranchCreated = $parsedPayload["branchCreated"] ?? false; @@ -911,7 +947,6 @@ App::post('/v1/vcs/github/events') $providerBranchUrl = $parsedPayload["branchUrl"] ?? ''; $providerRepositoryId = $parsedPayload["repositoryId"] ?? ''; $providerRepositoryName = $parsedPayload["repositoryName"] ?? ''; - $providerInstallationId = $parsedPayload["installationId"] ?? ''; $providerRepositoryUrl = $parsedPayload["repositoryUrl"] ?? ''; $providerCommitHash = $parsedPayload["commitHash"] ?? ''; $providerRepositoryOwner = $parsedPayload["owner"] ?? '';