pre-push
hook implementation. The pre-push hook runs during
* git push, after the remote refs have been updated but before any objects have
* been transferred.
*
* @since 4.2
*/
public class PrePushHook extends GitHook* This constructor will use the default error stream. *
* * @param repo * The repository * @param outputStream * The output stream the hook must use. {@code null} is allowed, * in which case the hook will use {@code System.out}. */ protected PrePushHook(Repository repo, PrintStream outputStream) { super(repo, outputStream); } /** * Constructor for PrePushHook * * @param repo * The repository * @param outputStream * The output stream the hook must use. {@code null} is allowed, * in which case the hook will use {@code System.out}. * @param errorStream * The error stream the hook must use. {@code null} is allowed, * in which case the hook will use {@code System.err}. * @since 5.6 */ protected PrePushHook(Repository repo, PrintStream outputStream, PrintStream errorStream) { super(repo, outputStream, errorStream); } /** {@inheritDoc} */ @Override protected String getStdinArgs() { return refs; } /** {@inheritDoc} */ @Override public String call() throws IOException, AbortedByHookException { if (canRun()) { doRun(); } return ""; //$NON-NLS-1$ } /** * @return {@code true} */ private boolean canRun() { return true; } /** {@inheritDoc} */ @Override public String getHookName() { return NAME; } /** * {@inheritDoc} *
* This hook receives two parameters, which is the name and the location of
* the remote repository.
*/
@Override
protected String[] getParameters() {
if (remoteName == null) {
remoteName = remoteLocation;
}
return new String[] { remoteName, remoteLocation };
}
/**
* Set remote name
*
* @param name
* remote name
*/
public void setRemoteName(String name) {
remoteName = name;
}
/**
* Get remote name
*
* @return remote name or null
* @since 4.11
*/
protected String getRemoteName() {
return remoteName;
}
/**
* Set remote location
*
* @param location
* a remote location
*/
public void setRemoteLocation(String location) {
remoteLocation = location;
}
/**
* Sets whether the push is a dry run.
*
* @param dryRun
* {@code true} if the push is a dry run, {@code false} otherwise
* @since 6.2
*/
public void setDryRun(boolean dryRun) {
this.dryRun = dryRun;
}
/**
* Tells whether the push is a dry run.
*
* @return {@code true} if the push is a dry run, {@code false} otherwise
* @since 6.2
*/
protected boolean isDryRun() {
return dryRun;
}
/**
* Set Refs
*
* @param toRefs
* a collection of {@code RemoteRefUpdate}s
*/
public void setRefs(Collection