diff --git a/src/Composer/Factory.php b/src/Composer/Factory.php index b3f868e..fd91826 100644 --- a/src/Composer/Factory.php +++ b/src/Composer/Factory.php @@ -147,6 +147,20 @@ private function loadComposerPackageFile(IOInterface $io, array &$plugged, array unset($packagesConfig['prefer-stable']); } + $allowPlugins = $packagesConfig['config']['allow-plugins'] ?? null; + + if (is_bool($allowPlugins)) { + $localConfig['config']['allow-plugins'] = $allowPlugins; + unset($packagesConfig['config']['allow-plugins']); + } + + if (is_array($allowPlugins)) { + foreach ($allowPlugins as $plugin => $allow) { + $localConfig['config']['allow-plugins'][$plugin] = $allow; + } + unset($packagesConfig['config']['allow-plugins']); + } + $localConfig = array_merge_recursive($localConfig, $packagesConfig); }