CloneWithCommitMsgHook: Use gerrit.installCommitMsgHookCommand Change-Id: Ifeca682030a6f273153afcbd31864db1430471b6
diff --git a/src/main/java/com/googlesource/gerrit/plugins/download/command/CloneWithCommitMsgHook.java b/src/main/java/com/googlesource/gerrit/plugins/download/command/CloneWithCommitMsgHook.java index 16cd7d2..948215b 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/download/command/CloneWithCommitMsgHook.java +++ b/src/main/java/com/googlesource/gerrit/plugins/download/command/CloneWithCommitMsgHook.java
@@ -16,6 +16,7 @@ import com.google.gerrit.extensions.config.DownloadScheme; import com.google.gerrit.server.CurrentUser; +import com.google.gerrit.server.config.GerritServerConfig; import com.google.inject.Inject; import com.google.inject.Provider; @@ -23,16 +24,23 @@ import com.googlesource.gerrit.plugins.download.scheme.HttpScheme; import com.googlesource.gerrit.plugins.download.scheme.SshScheme; +import org.eclipse.jgit.lib.Config; + public class CloneWithCommitMsgHook extends CloneCommand { private static final String HOOK = "hooks/commit-msg"; private static final String TARGET = " `git rev-parse --git-dir`/"; + private final String configCommand; private final SshScheme sshScheme; private final Provider<CurrentUser> userProvider; @Inject - CloneWithCommitMsgHook(SshScheme sshScheme, + CloneWithCommitMsgHook( + @GerritServerConfig Config config, + SshScheme sshScheme, Provider<CurrentUser> userProvider) { + this.configCommand = + config.getString("gerrit", null, "installCommitMsgHookCommand"); this.sshScheme = sshScheme; this.userProvider = userProvider; } @@ -45,6 +53,17 @@ } String projectName = getBaseName(project); + if (configCommand != null) { + return new StringBuilder() + .append(super.getCommand(scheme, project)) + .append(" && (cd ") + .append(projectName) + .append(" && ") + .append(configCommand) + .append(")") + .toString(); + } + if (scheme instanceof SshScheme) { return new StringBuilder() .append(super.getCommand(scheme, project))