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

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

Introduction

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

Prototype

public void setPreReceiveHook(PreReceiveHook h) 

Source Link

Document

Set the hook which is invoked prior to commands being executed.

Usage

From source file:com.gitblit.GitServlet.java

License:Apache License

@Override
public void init(ServletConfig config) throws ServletException {
    groovyDir = GitBlit.getGroovyScriptsFolder();
    try {//from   www . j  av a2 s.co m
        // set Grape root
        File grapeRoot = new File(GitBlit.getString(Keys.groovy.grapeFolder, "groovy/grape")).getAbsoluteFile();
        grapeRoot.mkdirs();
        System.setProperty("grape.root", grapeRoot.getAbsolutePath());

        gse = new GroovyScriptEngine(groovyDir.getAbsolutePath());
    } catch (IOException e) {
        throw new ServletException("Failed to instantiate Groovy Script Engine!", e);
    }

    // set the Gitblit receive hook
    setReceivePackFactory(new DefaultReceivePackFactory() {
        @Override
        public ReceivePack create(HttpServletRequest req, Repository db)
                throws ServiceNotEnabledException, ServiceNotAuthorizedException {

            // determine repository name from request
            String repositoryName = req.getPathInfo().substring(1);
            repositoryName = GitFilter.getRepositoryName(repositoryName);

            GitblitReceiveHook hook = new GitblitReceiveHook();
            hook.repositoryName = repositoryName;
            hook.gitblitUrl = HttpUtils.getGitblitURL(req);

            ReceivePack rp = super.create(req, db);
            rp.setPreReceiveHook(hook);
            rp.setPostReceiveHook(hook);
            return rp;
        }
    });
    super.init(new GitblitServletConfig(config));
}

From source file:playRepository.RepositoryService.java

License:Apache License

private static void receivePack(final InputStream input, Repository repository, final OutputStream output,
        final PreReceiveHook preReceiveHook, final PostReceiveHook postReceiveHook) {
    final ReceivePack receivePack = new ReceivePack(repository);
    receivePack.setBiDirectionalPipe(false);
    new Thread() {
        @Override// ww  w. j  av  a  2  s  . c o m
        public void run() {
            try {
                receivePack.setPreReceiveHook(preReceiveHook);
                receivePack.setPostReceiveHook(postReceiveHook);
                receivePack.receive(input, output, null);
            } catch (IOException e) {
                Logger.error("receivePack failed", e);
            }

            closeStreams("receivePack", input, output);
        }
    }.start();
}