From: Johan Cwiklinski Date: Sat, 2 Mar 2024 12:33:18 +0000 (+0100) Subject: Catch exception thrown when checking new release; fixes #1797 X-Git-Url: https://git.agnieray.net/?a=commitdiff_plain;h=75a5738bf3c6b37317be20da01614cc843b923bc;p=galette.git Catch exception thrown when checking new release; fixes #1797 --- diff --git a/galette/lib/Galette/Util/Release.php b/galette/lib/Galette/Util/Release.php index b9363242b..d332edb62 100644 --- a/galette/lib/Galette/Util/Release.php +++ b/galette/lib/Galette/Util/Release.php @@ -21,7 +21,7 @@ namespace Galette\Util; -use Galette\Core\Galette; +use Analog\Analog; use Galette\Features\Cacheable; use GuzzleHttp\Client; @@ -100,30 +100,38 @@ class Release return $this->getLatestRelease(); } - $client = $this->setupClient(); - $response = $client->request('GET', $this->getReleasesURL()); - $contents = $response->getBody()->getContents(); - - $releases = []; - preg_match_all( - '/href="(galette-.[^"]+\.tar\.bz2)"/', - $contents, - $releases - ); - - $latest = null; - foreach ($releases[1] as $release) { - $release = str_replace('galette-', '', $release); - $release = str_replace('.tar.bz2', '', $release); - if ($release === 'dev') { - continue; + try { + $client = $this->setupClient(); + $response = $client->request('GET', $this->getReleasesURL()); + $contents = $response->getBody()->getContents(); + + $releases = []; + preg_match_all( + '/href="(galette-.[^"]+\.tar\.bz2)"/', + $contents, + $releases + ); + + $latest = null; + foreach ($releases[1] as $release) { + $release = str_replace('galette-', '', $release); + $release = str_replace('.tar.bz2', '', $release); + if ($release === 'dev') { + continue; + } + if (version_compare($release, $latest ?? 0, '>')) { + $latest = $release; + } } - if (version_compare($release, $latest ?? 0, '>')) { - $latest = $release; - } - } - return $latest; + return $latest; + } catch (\Throwable $e) { + Analog::log( + 'Error while trying to get latest release: ' . $e->getMessage(), + Analog::ERROR + ); + return null; + } } /**