You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am not sure lefthook or even git hooks are the right tools but I have the following problem:
I have a set of private generic hooks (think commitlint, spell check, etc.) which I would like to run on every git repo and:
I want to avoid manually configuring a configuration file in every repo.
I want to keep those hooks private.
I want to use them in repos where hooks are not "officially" used or other hooks are used (manual ones, using other frameworks like pre-commit.com).
Note: One issue here is that I cannot use a lefthook-local.yaml without a leftook.yaml present which is a problem in some repos.
Value
It allows to automate part of my workflow and ensures I don't forget to run some checks.
Behavior and configuration changes
This might be related to #29 (symlinks won't work in my case). But a couple options are:
Lefthook should run with just a lefthook-local.yaml without a lefthook.yaml being present.
This would allow running lefthook privately without a shared config (kind of how git hooks originally work)
To build on top of the proposal abvve, Lefthook could read a configuration file located in the GIT_DIR (default: .git). This would allow syncing a base configuration to all repos with git init and a git template.
This configuration file should not take precedence over the lefthook{,-local}.yaml files as it only holds a base config.
Lefthook should as well run with just that file if present.
More closely related, but lefthook could on top of (or instead of) the above proposals read a global configuration (think $XDG_CONFIG_HOME/lefthook.yaml) which would act as a base configuration and could be overwritten by any configuration file within the repository.
The text was updated successfully, but these errors were encountered:
Create a useful-hooks.yml file e.g. in your home directory (/home/user/useful-hooks.yml) and describe all the hooks you want there.
Add the .lefthook.yml file to every repo you want useful hooks to work with the following content:
extends:
- /home/user/useful-hooks.yml
Add .lefthook.yml to ~/.gitignore, so you don't have to commit it.
Lefthook supports different config names, so you can use some of them as "local" and add to global gitignore. You can also use extends to configure this only once. So, the only thing you'll have to do is to copy the .lefthook.yml to your repo and run lefthook install.
@mrexox Thanks that is a start, but it has a couple issues. Namely:
I have to manually add a .lefthook.yml in a lot of repository and remember to do so each time I create a new repo.
I have to deal with potential conflicts in repos which have a .lefthook.yml and at the very least force add it if it is being used. And if the repo uses a lefthook.yaml then my hooks or the repo hooks will be ignored.
I'm happy to use such a setup but it should:
Provide a way to read a lefthook-local.yaml file, ideally in the $GIT_DIR so I can sync my git repos and keep their tree clean .
Be able to read that lefthook-local.yaml file implicitly and without an explicit lefthook.yaml
But I'm not sure if such an implementation is easier than a simple implicit lookup to extend a lefthook file (whether it is present or not) with a global config?
⚡ Summary
I am not sure lefthook or even git hooks are the right tools but I have the following problem:
I have a set of private generic hooks (think commitlint, spell check, etc.) which I would like to run on every git repo and:
pre-commit.com
).Value
It allows to automate part of my workflow and ensures I don't forget to run some checks.
Behavior and configuration changes
This might be related to #29 (symlinks won't work in my case). But a couple options are:
lefthook-local.yaml
without alefthook.yaml
being present.This would allow running lefthook privately without a shared config (kind of how git hooks originally work)
GIT_DIR
(default:.git
). This would allow syncing a base configuration to all repos withgit init
and a git template.$XDG_CONFIG_HOME/lefthook.yaml
) which would act as a base configuration and could be overwritten by any configuration file within the repository.The text was updated successfully, but these errors were encountered: