Detect broken packagist.org mirrors and fix them on the fly, refs #9297

main
Jordi Boggiano 4 years ago
parent 8d018176b1
commit 191196de48
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC

@ -866,6 +866,12 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
$this->hasPartialPackages = !empty($data['packages']) && is_array($data['packages']);
}
// Horrible hack to workaround https://github.com/composer/composer/issues/9297 and bad mirrors, should be disabled if possible once they fix things
if (!empty($data['metadata-url']) && !empty($data['list']) && $data['metadata-url'] === '/p/%package%.json' && $data['list'] === 'https://packagist.org/packages/list.json') {
file_put_contents('php://stderr', 'Composer 2 repository support for '.$this->url.' has been disabled due to what seems like a misconfiguration. If this is a packagist.org mirror we recommend removing it as Composer 2 handles network operations much faster and should work fine without.'.PHP_EOL);
unset($data['metadata-url']);
}
// metadata-url indicates V2 repo protocol so it takes over from all the V1 types
// V2 only has lazyProviders and possibly partial packages, but no ability to process anything else,
// V2 also supports async loading

Loading…
Cancel
Save