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

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

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport UploadPack 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>
 *///from ww  w. ja  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();
}