public function updateVersionsHistory(Bundle $bundle) { // no composer file if (null === ($composerName = $bundle->getComposerName())) { return false; } // query packagist json $packagistArray = $this->github->getHttpClient()->get($composerName, array(), array('url' => 'http://packagist.org/packages/:path.json')); // if json not encoded if (!is_array($packagistArray) || !isset($packagistArray['package'])) { return false; } $versionsHistory = array(); $versionsArray = $packagistArray['package']['versions']; foreach ($versionsArray as $version => $value) { // Skip `dev` packages, add only `dev-master` if (0 === strpos($version, 'dev-') && 'dev-master' != $version) { continue; } foreach (array('symfony/framework-bundle', 'symfony/symfony') as $requirement) { if (isset($value['require'][$requirement])) { $versionsHistory['symfony'][$version] = $value['require'][$requirement]; // array('master' => '>=2.0,<2.2-dev') } } // store all bundle dependencies $versionsHistory['dependencies'][$version] = array('name' => $value['name'], 'extra' => isset($value['extra']) ? $value['require-dev'] : '', 'require' => $value['require'], 'require-dev' => isset($value['require-dev']) ? $value['require-dev'] : '', 'suggest' => isset($value['suggest']) ? $value['suggest'] : ''); } if (!empty($versionsHistory)) { $bundle->setVersionsHistory($versionsHistory); } return true; }