Merge "Add extension point to register JGit PreUploadHooks"

This commit is contained in:
Edwin Kempin
2014-06-30 11:02:50 +00:00
committed by Gerrit Code Review
4 changed files with 26 additions and 1 deletions

View File

@@ -14,6 +14,8 @@
package com.google.gerrit.sshd.commands;
import com.google.common.collect.Lists;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.git.ChangeCache;
import com.google.gerrit.server.git.TagCache;
@@ -23,6 +25,8 @@ import com.google.gerrit.sshd.AbstractGitCommand;
import com.google.inject.Inject;
import com.google.inject.Provider;
import org.eclipse.jgit.transport.PreUploadHook;
import org.eclipse.jgit.transport.PreUploadHookChain;
import org.eclipse.jgit.transport.UploadPack;
import java.io.IOException;
@@ -41,6 +45,9 @@ final class Upload extends AbstractGitCommand {
@Inject
private ChangeCache changeCache;
@Inject
private DynamicSet<PreUploadHook> preUploadHooks;
@Override
protected void runImpl() throws IOException, Failure {
if (!projectControl.canRunUploadPack()) {
@@ -54,6 +61,8 @@ final class Upload extends AbstractGitCommand {
}
up.setPackConfig(config.getPackConfig());
up.setTimeout(config.getTimeout());
up.setPreUploadHook(PreUploadHookChain.newChain(
Lists.newArrayList(preUploadHooks)));
up.upload(in, out, err);
}
}