Class GitHook<T>

  • Type Parameters:
    T - the return type which is expected from call()
    All Implemented Interfaces:
    Callable<T>
    Direct Known Subclasses:
    CommitMsgHook, PostCommitHook, PreCommitHook, PrePushHook

    public abstract class GitHook<T>
    extends Object
    implements Callable<T>
    Git can fire off custom scripts when certain important actions occur. These custom scripts are called "hooks". There are two groups of hooks: client-side (that run on local operations such as committing and merging), and server-side (that run on network operations such as receiving pushed commits). This is the abstract super-class of the different hook implementations in JGit.
    Since:
    5.11
    See Also:
    Git Hooks on the git-scm official site
    • Constructor Detail

      • GitHook

        protected GitHook​(Repository repo,
                          OutputStream outputStream)
        Constructor for GitHook.

        This constructor will use stderr for the error stream.

        Parameters:
        repo - a Repository object.
        outputStream - The output stream the hook must use. null is allowed, in which case the hook will use System.out.
      • GitHook

        protected GitHook​(Repository repo,
                          OutputStream outputStream,
                          OutputStream errorStream)
        Constructor for GitHook
        Parameters:
        repo - a Repository object.
        outputStream - The output stream the hook must use. null is allowed, in which case the hook will use System.out.
        errorStream - The error stream the hook must use. null is allowed, in which case the hook will use System.err.
    • Method Detail

      • getHookName

        public abstract String getHookName()
        Get name of the hook
        Returns:
        The name of the hook, which must not be null.
      • getRepository

        protected Repository getRepository()
        Get the repository
        Returns:
        The repository.
      • getParameters

        protected String[] getParameters()
        Override this method when needed to provide relevant parameters to the underlying hook script. The default implementation returns an empty array.
        Returns:
        The parameters the hook receives.
      • getStdinArgs

        protected String getStdinArgs()
        Override to provide relevant arguments via stdin to the underlying hook script. The default implementation returns null.
        Returns:
        The parameters the hook receives.
      • getOutputStream

        protected OutputStream getOutputStream()
        Get output stream
        Returns:
        The output stream the hook must use. Never null, System.out is returned by default.
      • getErrorStream

        protected OutputStream getErrorStream()
        Get error stream
        Returns:
        The error stream the hook must use. Never null, System.err is returned by default.
      • handleError

        protected void handleError​(String message,
                                   ProcessResult result)
                            throws AbortedByHookException
        Process that the hook exited with an error. This default implementation throws an AbortedByHookException. Hooks which need a different behavior can overwrite this method.
        Parameters:
        message - error message
        result - The process result of the hook
        Throws:
        AbortedByHookException - When the hook should be aborted
        Since:
        5.11
      • isNativeHookPresent

        public boolean isNativeHookPresent()
        Check whether a 'native' (i.e. script) hook is installed in the repository.
        Returns:
        whether a native hook script is installed in the repository.
        Since:
        4.11