Class PrePushHook

  • All Implemented Interfaces:
    java.util.concurrent.Callable<java.lang.String>
    Direct Known Subclasses:
    LfsPrePushHook

    public class PrePushHook
    extends GitHook<java.lang.String>
    The 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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String NAME
      Constant indicating the name of the pre-push hook.
      private java.lang.String refs  
      private java.lang.String remoteLocation  
      private java.lang.String remoteName  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected PrePushHook​(Repository repo, java.io.PrintStream outputStream)
      Constructor for PrePushHook
      protected PrePushHook​(Repository repo, java.io.PrintStream outputStream, java.io.PrintStream errorStream)
      Constructor for PrePushHook
    • Field Detail

      • NAME

        public static final java.lang.String NAME
        Constant indicating the name of the pre-push hook.
        See Also:
        Constant Field Values
      • remoteName

        private java.lang.String remoteName
      • remoteLocation

        private java.lang.String remoteLocation
      • refs

        private java.lang.String refs
    • Constructor Detail

      • PrePushHook

        protected PrePushHook​(Repository repo,
                              java.io.PrintStream outputStream)
        Constructor for PrePushHook

        This constructor will use the default error stream.

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

        protected PrePushHook​(Repository repo,
                              java.io.PrintStream outputStream,
                              java.io.PrintStream errorStream)
        Constructor for PrePushHook
        Parameters:
        repo - The repository
        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.
        Since:
        5.6
    • Method Detail

      • getStdinArgs

        protected java.lang.String getStdinArgs()
        Override to provide relevant arguments via stdin to the underlying hook script. The default implementation returns null.
        Overrides:
        getStdinArgs in class GitHook<java.lang.String>
        Returns:
        The parameters the hook receives.
      • call

        public java.lang.String call()
                              throws java.io.IOException,
                                     AbortedByHookException

        Run the hook.

        Specified by:
        call in interface java.util.concurrent.Callable<java.lang.String>
        Specified by:
        call in class GitHook<java.lang.String>
        Throws:
        java.io.IOException
        AbortedByHookException
      • canRun

        private boolean canRun()
        Returns:
        true
      • getHookName

        public java.lang.String getHookName()
        Get name of the hook
        Specified by:
        getHookName in class GitHook<java.lang.String>
        Returns:
        The name of the hook, which must not be null.
      • getParameters

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

        This hook receives two parameters, which is the name and the location of the remote repository.

        Overrides:
        getParameters in class GitHook<java.lang.String>
        Returns:
        The parameters the hook receives.
      • setRemoteName

        public void setRemoteName​(java.lang.String name)
        Set remote name
        Parameters:
        name - remote name
      • getRemoteName

        protected java.lang.String getRemoteName()
        Get remote name
        Returns:
        remote name or null
        Since:
        4.11
      • setRemoteLocation

        public void setRemoteLocation​(java.lang.String location)
        Set remote location
        Parameters:
        location - a remote location
      • setRefs

        public void setRefs​(java.util.Collection<RemoteRefUpdate> toRefs)
        Set Refs
        Parameters:
        toRefs - a collection of RemoteRefUpdates