Add pre-commit hook definition with test #596
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
pre-commit became pretty popular as framework to combine linters / code-formatters via hooks across different languages. It can be enabled as actual git hook or just used by running
pre-commit run -a
. pre-commit does its own dependency management (+cashing) and installs each hook into its own isolated folder.This adds a
.pre-commit-hooks.yaml
(+ doc + test), which allows other projects to run Solhint via pre-commit.Tested it also via my solhint fork with custom test tag, see dbast/sol-press#16
pre-commit installs a hook by cloning the
repo
, checking out the specified gitrev
(=tag, branch, commit hash), parsing the .pre-commit-hooks.yaml and installing the hook (in case of node based hooks: runnpm pack
(produces a tarball +npm install $tarball
). Installed hooks are cached based on the rev for later repeated runs.Had to remove the
prepare
script in package.json as that preventsnpm pack
from working with a plain node install (which is used by pre-commit during isolated hook installations).prepare
is afaik not the right place to runhusky install
.