Git Hooks
Trunk supports triggering actions on all githooks
Last updated
Trunk supports triggering actions on all githooks
Last updated
Seamlessly bring git-hooks
under version control. git-hooks
can be a major headache for organizations - they require manual installation and are not easily versioned along with the rest of your code.
Take advantage of Trunk's powerful sandboxing and environment management to write and execute hooks using the programming language and runtime of your choice, as opposed to dealing with complicated bash scripts.
Trunk will automatically install and begin managing your githooks
if you have any actions enabled in trunk.yaml
which trigger from git events.
As an example let's examine how we implement the git-lfs
action in the .
The following special variables are made available for template resolution when reacting to a git event:
${hook}
Hook that triggered this action (e.g. pre-commit
, pre-push
)
${1}
,${2}
, ${3}
, etc...
Positional parameters passed by git
to the hook
${@}
All parameters passed to the hook
Setting interactive
to true will allow your githook action to be run from an interactive terminal. This enables you to write more complicated hooks to react to user input.
githook
actionThe following command will simulate a githook event and execute all of the enabled actions for the provided hook in the order you defined them.
Alternatively, once an action is enabled you can call git
and debug with the actual git
provided data. This is sometimes easier since some git parameters point to txt files and fabricating those formats through manual testing can be tricky.
githook
actionYou can observe the actions that are triggered by a git
event by calling:
Which will print out the last 10 executions including timestamps of the specified action \
Remove all actions that are triggered by githooks from trunk.yaml
and run
As documented by , each githook generates a variable number of parameters that can be referenced in the run
entry for the action.