diff --git a/classes/plugin/SafeUpgradeManager.php b/classes/plugin/SafeUpgradeManager.php index b243fcb5..a6123737 100644 --- a/classes/plugin/SafeUpgradeManager.php +++ b/classes/plugin/SafeUpgradeManager.php @@ -378,7 +378,7 @@ class SafeUpgradeManager $remote = $this->upgrader->getRemoteVersion(); $releaseDate = $this->upgrader->getReleaseDate(); $assets = $this->upgrader->getAssets(); - $package = $assets['grav-update'] ?? null; + $package = $this->resolveAsset($assets, 'grav-update'); $payload = [ 'status' => 'ready', @@ -516,7 +516,7 @@ class SafeUpgradeManager } $assets = $this->upgrader->getAssets(); - $package = $assets['grav-update'] ?? null; + $package = $this->resolveAsset($assets, 'grav-update'); if (!$package) { return $this->errorResult('Unable to locate Grav update package information.'); } @@ -966,4 +966,21 @@ class SafeUpgradeManager } } } + + protected function resolveAsset(array $assets, string $prefix): ?array + { + if (isset($assets[$prefix])) { + return $assets[$prefix]; + } + + foreach ($assets as $key => $asset) { + $name = is_array($asset) ? ($asset['name'] ?? '') : ''; + $haystack = $key . ' ' . $name; + if (stripos($haystack, $prefix) === 0 || stripos($haystack, '/' . $prefix) !== false) { + return $asset; + } + } + + return null; + } }