mirror of
https://github.com/appwrite/appwrite
synced 2026-05-24 09:28:40 +00:00
Merge pull request #9998 from appwrite/fix-github-check-urls
Fix all vcs urls missing region
This commit is contained in:
commit
119bf71e1a
4 changed files with 25 additions and 19 deletions
|
|
@ -363,6 +363,7 @@ $createGitDeployments = function (GitHub $github, string $providerInstallationId
|
||||||
if (!empty($providerCommitHash) && $resource->getAttribute('providerSilentMode', false) === false) {
|
if (!empty($providerCommitHash) && $resource->getAttribute('providerSilentMode', false) === false) {
|
||||||
$resourceName = $resource->getAttribute('name');
|
$resourceName = $resource->getAttribute('name');
|
||||||
$projectName = $project->getAttribute('name');
|
$projectName = $project->getAttribute('name');
|
||||||
|
$region = $project->getAttribute('region', 'default');
|
||||||
$name = "{$resourceName} ({$projectName})";
|
$name = "{$resourceName} ({$projectName})";
|
||||||
$message = 'Starting...';
|
$message = 'Starting...';
|
||||||
|
|
||||||
|
|
@ -377,7 +378,7 @@ $createGitDeployments = function (GitHub $github, string $providerInstallationId
|
||||||
}
|
}
|
||||||
$owner = $github->getOwnerName($providerInstallationId);
|
$owner = $github->getOwnerName($providerInstallationId);
|
||||||
|
|
||||||
$providerTargetUrl = $request->getProtocol() . '://' . $request->getHostname() . "/console/project-$projectId/$resourceCollection/$resourceType-$resourceId";
|
$providerTargetUrl = $request->getProtocol() . '://' . $request->getHostname() . "/console/project-$region-$projectId/$resourceCollection/$resourceType-$resourceId";
|
||||||
$github->updateCommitStatus($repositoryName, $providerCommitHash, $owner, 'pending', $message, $providerTargetUrl, $name);
|
$github->updateCommitStatus($repositoryName, $providerCommitHash, $owner, 'pending', $message, $providerTargetUrl, $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -476,16 +477,6 @@ App::get('/v1/vcs/github/callback')
|
||||||
$state = \json_decode($state, true);
|
$state = \json_decode($state, true);
|
||||||
$projectId = $state['projectId'] ?? '';
|
$projectId = $state['projectId'] ?? '';
|
||||||
|
|
||||||
$defaultState = [
|
|
||||||
'success' => $request->getProtocol() . '://' . $request->getHostname() . "/console/project-$projectId/settings/git-installations",
|
|
||||||
'failure' => $request->getProtocol() . '://' . $request->getHostname() . "/console/project-$projectId/settings/git-installations",
|
|
||||||
];
|
|
||||||
|
|
||||||
$state = \array_merge($defaultState, $state ?? []);
|
|
||||||
|
|
||||||
$redirectSuccess = $state['success'] ?? '';
|
|
||||||
$redirectFailure = $state['failure'] ?? '';
|
|
||||||
|
|
||||||
$project = $dbForPlatform->getDocument('projects', $projectId);
|
$project = $dbForPlatform->getDocument('projects', $projectId);
|
||||||
|
|
||||||
if ($project->isEmpty()) {
|
if ($project->isEmpty()) {
|
||||||
|
|
@ -502,6 +493,18 @@ App::get('/v1/vcs/github/callback')
|
||||||
throw new Exception(Exception::PROJECT_NOT_FOUND, $error);
|
throw new Exception(Exception::PROJECT_NOT_FOUND, $error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$region = $project->getAttribute('region', 'default');
|
||||||
|
|
||||||
|
$defaultState = [
|
||||||
|
'success' => $request->getProtocol() . '://' . $request->getHostname() . "/console/project-$region-$projectId/settings/git-installations",
|
||||||
|
'failure' => $request->getProtocol() . '://' . $request->getHostname() . "/console/project-$region-$projectId/settings/git-installations",
|
||||||
|
];
|
||||||
|
|
||||||
|
$state = \array_merge($defaultState, $state ?? []);
|
||||||
|
|
||||||
|
$redirectSuccess = $state['success'] ?? '';
|
||||||
|
$redirectFailure = $state['failure'] ?? '';
|
||||||
|
|
||||||
// Create / Update installation
|
// Create / Update installation
|
||||||
if (!empty($providerInstallationId)) {
|
if (!empty($providerInstallationId)) {
|
||||||
$privateKey = System::getEnv('_APP_VCS_GITHUB_PRIVATE_KEY');
|
$privateKey = System::getEnv('_APP_VCS_GITHUB_PRIVATE_KEY');
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
|
||||||
$resourceId = $rule->getAttribute('deploymentResourceId', '');
|
$resourceId = $rule->getAttribute('deploymentResourceId', '');
|
||||||
$type = ($resourceType === 'site') ? 'sites' : 'functions';
|
$type = ($resourceType === 'site') ? 'sites' : 'functions';
|
||||||
$exception = new AppwriteException(AppwriteException::DEPLOYMENT_NOT_FOUND, view: $errorView);
|
$exception = new AppwriteException(AppwriteException::DEPLOYMENT_NOT_FOUND, view: $errorView);
|
||||||
$exception->addCTA('View deployments', $url . '/console/project-' . $projectId . '/' . $type . '/' . $resourceType . '-' . $resourceId);
|
$exception->addCTA('View deployments', $url . '/console/project-' . $project->getAttribute('region', 'default') . '-' . $projectId . '/' . $type . '/' . $resourceType . '-' . $resourceId);
|
||||||
throw $exception;
|
throw $exception;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -319,21 +319,22 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
|
||||||
$allowAnyStatus = !\is_null($apiKey) && $apiKey->isDeploymentStatusIgnored();
|
$allowAnyStatus = !\is_null($apiKey) && $apiKey->isDeploymentStatusIgnored();
|
||||||
if (!$allowAnyStatus && $deployment->getAttribute('status') !== 'ready') {
|
if (!$allowAnyStatus && $deployment->getAttribute('status') !== 'ready') {
|
||||||
$status = $deployment->getAttribute('status');
|
$status = $deployment->getAttribute('status');
|
||||||
|
$region = $project->getAttribute('region', 'default');
|
||||||
|
|
||||||
switch ($status) {
|
switch ($status) {
|
||||||
case 'failed':
|
case 'failed':
|
||||||
$exception = new AppwriteException(AppwriteException::BUILD_FAILED, view: $errorView);
|
$exception = new AppwriteException(AppwriteException::BUILD_FAILED, view: $errorView);
|
||||||
$ctaUrl = '/console/project-' . $project->getId() . '/sites/site-' . $resource->getId() . '/deployments/deployment-' . $deployment->getId();
|
$ctaUrl = '/console/project-' . $region . '-' . $project->getId() . '/sites/site-' . $resource->getId() . '/deployments/deployment-' . $deployment->getId();
|
||||||
$exception->addCTA('View logs', $url . $ctaUrl);
|
$exception->addCTA('View logs', $url . $ctaUrl);
|
||||||
break;
|
break;
|
||||||
case 'canceled':
|
case 'canceled':
|
||||||
$exception = new AppwriteException(AppwriteException::BUILD_CANCELED, view: $errorView);
|
$exception = new AppwriteException(AppwriteException::BUILD_CANCELED, view: $errorView);
|
||||||
$ctaUrl = '/console/project-' . $project->getId() . '/sites/site-' . $resource->getId() . '/deployments';
|
$ctaUrl = '/console/project-' . $region . '-' . $project->getId() . '/sites/site-' . $resource->getId() . '/deployments';
|
||||||
$exception->addCTA('View deployments', $url . $ctaUrl);
|
$exception->addCTA('View deployments', $url . $ctaUrl);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$exception = new AppwriteException(AppwriteException::BUILD_NOT_READY, view: $errorView);
|
$exception = new AppwriteException(AppwriteException::BUILD_NOT_READY, view: $errorView);
|
||||||
$ctaUrl = '/console/project-' . $project->getId() . '/sites/site-' . $resource->getId() . '/deployments/deployment-' . $deployment->getId();
|
$ctaUrl = '/console/project-' . $region . '-' . $project->getId() . '/sites/site-' . $resource->getId() . '/deployments/deployment-' . $deployment->getId();
|
||||||
$exception->addCTA('Reload', '/');
|
$exception->addCTA('Reload', '/');
|
||||||
$exception->addCTA('View logs', $url . $ctaUrl);
|
$exception->addCTA('View logs', $url . $ctaUrl);
|
||||||
break;
|
break;
|
||||||
|
|
@ -345,7 +346,7 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw
|
||||||
$permissions = $resource->getAttribute('execute');
|
$permissions = $resource->getAttribute('execute');
|
||||||
if (!(\in_array('any', $permissions)) && !(\in_array('guests', $permissions))) {
|
if (!(\in_array('any', $permissions)) && !(\in_array('guests', $permissions))) {
|
||||||
$exception = new AppwriteException(AppwriteException::FUNCTION_EXECUTE_PERMISSION_MISSING, view: $errorView);
|
$exception = new AppwriteException(AppwriteException::FUNCTION_EXECUTE_PERMISSION_MISSING, view: $errorView);
|
||||||
$exception->addCTA('View settings', $url . '/console/project-' . $project->getId() . '/functions/function-' . $resource->getId() . '/settings');
|
$exception->addCTA('View settings', $url . '/console/project-' . $project->getAttribute('region', 'default') . '-' . $project->getId() . '/functions/function-' . $resource->getId() . '/settings');
|
||||||
throw $exception;
|
throw $exception;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1444,10 +1444,11 @@ class Builds extends Action
|
||||||
$hostname = System::getEnv('_APP_DOMAIN');
|
$hostname = System::getEnv('_APP_DOMAIN');
|
||||||
|
|
||||||
$projectId = $project->getId();
|
$projectId = $project->getId();
|
||||||
|
$region = $project->getAttribute('region', 'default');
|
||||||
$resourceId = $resource->getId();
|
$resourceId = $resource->getId();
|
||||||
$providerTargetUrl = match ($resource->getCollection()) {
|
$providerTargetUrl = match ($resource->getCollection()) {
|
||||||
'functions' => "{$protocol}://{$hostname}/console/project-{$projectId}/functions/function-{$resourceId}",
|
'functions' => "{$protocol}://{$hostname}/console/project-{$region}-{$projectId}/functions/function-{$resourceId}",
|
||||||
'sites' => "{$protocol}://{$hostname}/console/project-{$projectId}/sites/site-{$resourceId}",
|
'sites' => "{$protocol}://{$hostname}/console/project-{$region}-{$projectId}/sites/site-{$resourceId}",
|
||||||
default => throw new \Exception('Invalid resource type')
|
default => throw new \Exception('Invalid resource type')
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -219,6 +219,7 @@ class Webhooks extends Action
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$projectId = $project->getId();
|
$projectId = $project->getId();
|
||||||
|
$region = $project->getAttribute('region', 'default');
|
||||||
$webhookId = $webhook->getId();
|
$webhookId = $webhook->getId();
|
||||||
|
|
||||||
$template = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-webhook-failed.tpl');
|
$template = Template::fromFile(__DIR__ . '/../../../../app/config/locale/templates/email-webhook-failed.tpl');
|
||||||
|
|
@ -227,7 +228,7 @@ class Webhooks extends Action
|
||||||
$template->setParam('{{project}}', $project->getAttribute('name'));
|
$template->setParam('{{project}}', $project->getAttribute('name'));
|
||||||
$template->setParam('{{url}}', $webhook->getAttribute('url'));
|
$template->setParam('{{url}}', $webhook->getAttribute('url'));
|
||||||
$template->setParam('{{error}}', $curlError ?? 'The server returned ' . $statusCode . ' status code');
|
$template->setParam('{{error}}', $curlError ?? 'The server returned ' . $statusCode . ' status code');
|
||||||
$template->setParam('{{path}}', "/console/project-$projectId/settings/webhooks/$webhookId");
|
$template->setParam('{{path}}', "/console/project-$region-$projectId/settings/webhooks/$webhookId");
|
||||||
$template->setParam('{{attempts}}', $attempts);
|
$template->setParam('{{attempts}}', $attempts);
|
||||||
|
|
||||||
$template->setParam('{{logoUrl}}', $plan['logoUrl'] ?? APP_EMAIL_LOGO_URL);
|
$template->setParam('{{logoUrl}}', $plan['logoUrl'] ?? APP_EMAIL_LOGO_URL);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue