From 28dd7bc84f075515e8e496509df8e96b989229be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C5=A0pl=C3=ADchal?= Date: Thu, 26 Sep 2024 14:51:12 +0200 Subject: [PATCH] Fix partial updates of packages --- src/PackageSelection/PackageSelection.php | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/PackageSelection/PackageSelection.php b/src/PackageSelection/PackageSelection.php index 00b85bfa..5e149562 100644 --- a/src/PackageSelection/PackageSelection.php +++ b/src/PackageSelection/PackageSelection.php @@ -916,17 +916,26 @@ private function filterRepositories(array $repositories): array return array_filter( $repositories, function ($repository) { - if (!($repository instanceof ConfigurableRepositoryInterface)) { - return false; - } + if ($repository instanceof ConfigurableRepositoryInterface) { - $config = $repository->getRepoConfig(); + $config = $repository->getRepoConfig(); + if (!isset($config['url'])) { + return false; + } + return in_array($config['url'], $this->repositoriesFilter ?? [], true); + + } else if ($repository instanceof ArrayRepository) { + $packages = $repository->getPackages(); + foreach ($packages as $package) { + if (in_array($package->getSourceUrl(), $this->repositoriesFilter ?? [], true)) { + return true; + } + } - if (!isset($config['url'])) { + return false; + } else { return false; } - - return in_array($config['url'], $this->repositoriesFilter ?? [], true); } ); }