From 5b9f71afe5ed294a4a02ff2acc4083f3b809ee43 Mon Sep 17 00:00:00 2001 From: Khushboo Verma <43381712+vermakhushboo@users.noreply.github.com> Date: Tue, 1 Aug 2023 14:10:16 +0530 Subject: [PATCH] Add try-catch to listRepositories --- app/console | 2 +- app/controllers/api/vcs.php | 49 ++++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/app/console b/app/console index 9256f224d2..1d75b39555 160000 --- a/app/console +++ b/app/console @@ -1 +1 @@ -Subproject commit 9256f224d2252a0108cd354814f47ad90b1cdec9 +Subproject commit 1d75b39555221479ff92d54ecf8b452bfd503f5e diff --git a/app/controllers/api/vcs.php b/app/controllers/api/vcs.php index 3ead305eda..a3b89097e2 100644 --- a/app/controllers/api/vcs.php +++ b/app/controllers/api/vcs.php @@ -15,6 +15,7 @@ use Appwrite\Extend\Exception; use Appwrite\Network\Validator\Host; use Appwrite\Utopia\Database\Validator\Queries\Installations; use Appwrite\Vcs\Comment; +use Utopia\CLI\Console; use Utopia\Config\Config; use Utopia\Database\DateTime; use Utopia\Database\Query; @@ -528,38 +529,42 @@ App::get('/v1/vcs/github/installations/:installationId/providerRepositories') $repos = batch(\array_map(function ($repo) use ($github) { return function () use ($repo, $github) { - $files = $github->listRepositoryContents($repo['organization'], $repo['name'], ''); - $languages = $github->getRepositoryLanguages($repo['organization'], $repo['name']); + try { + $files = $github->listRepositoryContents($repo['organization'], $repo['name'], ''); + $languages = $github->getRepositoryLanguages($repo['organization'], $repo['name']); - $detectorFactory = new Detector($files, $languages); + $detectorFactory = new Detector($files, $languages); - $detectorFactory - ->addDetector(new JavaScript()) - ->addDetector(new PHP()) - ->addDetector(new Python()) - ->addDetector(new Dart()) - ->addDetector(new Swift()) - ->addDetector(new Ruby()) - ->addDetector(new Java()) - ->addDetector(new CPP()) - ->addDetector(new Deno()) - ->addDetector(new Dotnet()); + $detectorFactory + ->addDetector(new JavaScript()) + ->addDetector(new PHP()) + ->addDetector(new Python()) + ->addDetector(new Dart()) + ->addDetector(new Swift()) + ->addDetector(new Ruby()) + ->addDetector(new Java()) + ->addDetector(new CPP()) + ->addDetector(new Deno()) + ->addDetector(new Dotnet()); - $runtime = $detectorFactory->detect(); + $runtime = $detectorFactory->detect(); - $runtimes = Config::getParam('runtimes'); - $runtimeDetail = \array_reverse(\array_filter(\array_keys($runtimes), function ($key) use ($runtime, $runtimes) { - return $runtimes[$key]['key'] === $runtime; - }))[0] ?? ''; - - $repo['runtime'] = $runtimeDetail; + $runtimes = Config::getParam('runtimes'); + $runtimeDetail = \array_reverse(\array_filter(\array_keys($runtimes), function ($key) use ($runtime, $runtimes) { + return $runtimes[$key]['key'] === $runtime; + }))[0] ?? ''; + $repo['runtime'] = $runtimeDetail; + } catch (Throwable $error) { + $repo['runtime'] = ""; + Console::warning("Runtime not detected for " . $repo['organization'] . "/" . $repo['name']); + } return $repo; }; }, $repos)); $response->dynamic(new Document([ - 'repositories' => $repos, + 'providerRepositories' => $repos, 'total' => \count($repos), ]), Response::MODEL_PROVIDER_REPOSITORY_LIST); });