Пример #1
0
$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();
    }
}