Example usage for org.eclipse.jgit.transport ReceivePack sendAdvertisedRefs

List of usage examples for org.eclipse.jgit.transport ReceivePack sendAdvertisedRefs

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport ReceivePack sendAdvertisedRefs.

Prototype

public void sendAdvertisedRefs(RefAdvertiser adv) throws IOException, ServiceMayNotContinueException 

Source Link

Document

Generate an advertisement of available refs and capabilities.

Usage

From source file:playRepository.RepositoryService.java

License:Apache License

/**
 * @see <a href="https://www.kernel.org/pub/software/scm/git/docs/git-upload-pack.html">git-upload-pack</a>
 * @see <a href="https://www.kernel.org/pub/software/scm/git/docs/git-receive-pack.html">git-receive-pack</a>
 *//* www .j a v  a2s .  co  m*/
public static byte[] gitAdvertise(Project project, String service, Response response) throws IOException {
    response.setContentType("application/x-" + service + "-advertisement");

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    PacketLineOut packetLineOut = new PacketLineOut(byteArrayOutputStream);
    packetLineOut.writeString("# service=" + service + "\n");
    packetLineOut.end();
    PacketLineOutRefAdvertiser packetLineOutRefAdvertiser = new PacketLineOutRefAdvertiser(packetLineOut);

    if (service.equals("git-upload-pack")) {
        Repository repository = GitRepository.buildGitRepository(project);
        UploadPack uploadPack = new UploadPack(repository);
        uploadPack.setBiDirectionalPipe(false);
        uploadPack.sendAdvertisedRefs(packetLineOutRefAdvertiser);
    } else if (service.equals("git-receive-pack")) {
        Repository repository = GitRepository.buildGitRepository(project, false);
        ReceivePack receivePack = new ReceivePack(repository);
        receivePack.sendAdvertisedRefs(packetLineOutRefAdvertiser);
    }

    byteArrayOutputStream.close();

    return byteArrayOutputStream.toByteArray();
}