$metapackage_repository->run('config', ['user.email', '*****@*****.**']); $branches = array_filter($repository->getReferences()->getRemoteBranches(), function (Branch $branch) { if ($branch->isRemote() && preg_match('/^origin\\/8\\./', $branch->getName(), $matches)) { return TRUE; } return FALSE; }); $tags = array_filter($repository->getReferences()->getTags(), function (Tag $tag) { return preg_match('/^8\\.[0-9]+\\.[0-9]+/', $tag->getName()); }); $refs = $tags + $branches; $refs_array = []; foreach ($refs as $ref) { $name = str_replace('origin/', '', $ref->getName()); if ($ref instanceof Branch) { $name .= '-dev'; } $refs_array[$name] = $ref; } $sorted = \Composer\Semver\Semver::sort(array_keys($refs_array)); foreach ($sorted as $version) { /** @var Gitonomy\Git\Reference\Tag|Gitonomy\Git\Reference\Branch $ref */ $ref = $refs_array[$version]; $repository->run('reset', ['--hard', $ref->getCommitHash()]); $path = $repository->getPath() . '/composer.lock'; if (file_exists($path)) { $packageBuilder = PackageBuilder::fromLockfile($path); $dump = new Dumper($ref, $packageBuilder->buildPackage(), $metapackage_repository); $dump->write(); } }