]> git.agnieray.net Git - galette.git/commitdiff
Catch exception thrown when checking new release; fixes #1797
authorJohan Cwiklinski <johan@x-tnd.be>
Sat, 2 Mar 2024 12:33:18 +0000 (13:33 +0100)
committerJohan Cwiklinski <johan@x-tnd.be>
Sat, 2 Mar 2024 12:33:18 +0000 (13:33 +0100)
galette/lib/Galette/Util/Release.php

index b9363242bc698c52f2b480409deba61c86a1d404..d332edb621d5b9d238361f0640886fc3c0f832c0 100644 (file)
@@ -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;
+        }
     }
 
     /**