rusty-hook
Git hook utility for Rust codebases that lets you run any script for any git hook.
Functional, but still in Beta!
Installing
We'll add binary releases soon, but for now the best way to install rusty-hook
is to use cargo
:
Initialize
Run the init
command in any git directory to set it up:
This will ensure that all of the client side git hooks are available, and it will create a rusty-hook
configuration file if one does not already exist.
Configure
You define your desired git hook configuration in the rusty-hook
configuration file (a TOML file named .rusty-hook.toml
or rusty-hook.toml
).
Here's an example rusty-hook
configuration that leverages multiple git hooks, including the pre-commit and the pre-push hooks:
[]
= "cargo test"
= "cargo fmt -- --check"
= "echo yay"
[]
= true
Hooks
Under the [hooks]
table, you can add an entry for any and every git hook you want to run by adding a key using the name of the git hook, and then specify the command/script you want to run for that hook. Whenever that git hook is triggered, rusty-hook
will run your specified command!
Logging
Under the [logging]
table, you can control whether to log the output of running your specified hook commands. By default rusty-hook
will log the results of your hook script, but you can disable this behavior by setting the verbose
key to false
:
[]
= false
Alternatives
There's a few other git hook utilities available on crates.io, but none of them quite suited our needs so we made rusty-hook!
Contributions
All contributions are welcome and appreciated! Check out our Contributing Guidelines for more information about opening issues, developing, and more.