public function prepareReleases($repository)
{
$releases = [];
foreach ($repository->getPackages() as $package) {
$version = $package->getVersion();
$require = $this->prepareRequire($package->getRequires());
$release = ['uid' => $this->prepareUid($version), 'name' => $this->getNormalName(), 'version' => $version];
if ($require) {
$release['require'] = $require;
}
if ($package->getDistUrl()) {
$release['dist'] = ['type' => $package->getDistType(), 'url' => $package->getDistUrl(), 'reference' => $package->getDistReference()];
}
if ($package->getSourceUrl()) {
$release['source'] = ['type' => $package->getSourceType(), 'url' => $package->getSourceUrl(), 'reference' => $package->getSourceReference()];
}
if (isset($release['dist']) && $release['dist'] || isset($release['source']) && $release['source']) {
$releases[$version] = $release;
}
}
return $releases;
}