The hook is called with any commands that are deemed valid after parsing them from the client and applying the standard receive configuration options to them:
receive.denyDenyDeletes
receive.denyNonFastForwards
As the hook is invoked prior to the commands being executed, the hook may choose to block any command by setting its result status with {@link ReceiveCommand#setResult(ReceiveCommand.Result)}.
The hook may also choose to perform the command itself (or merely pretend that it has performed the command), by setting the result status to {@link ReceiveCommand.Result#OK}.
Hooks should run quickly, as they block the caller thread and the client process from completing.
Hooks may send optional messages back to the client via methods on {@link ReceivePack}. Implementors should be aware that not all network transports support this output, so some (or all) messages may simply be discarded. These messages should be advisory only.
|
|
|
|
|
|