feature: pre-commit support
Did you check the docs?
- [X] I have read all the docs
Is your feature request related to a problem? Please describe.
https://pre-commit.com/
AFAIK pre-commit is commonly used in workflows these days, and I include it in mine. Currently fugit2 doesn't ave great support for it. I don't know if libgit2 has proper support for the hooks that pre-commit creates.
Describe the solution you'd like
I'd like the pre-commit hooks to be run on commit (like git commit does) and some kind of indication to the user if the hook fails fails.
Describe alternatives you've considered
This is not a show stopper preventing me from using fugit2. I can just invoke pre-commit manually as part of my workflow (and my CI/CD also runs it).
Additional context
No response
Hi @Kraust, pre-commit is not implemented in libgit2 https://github.com/libgit2/libgit2/issues/964. It is the responsibility of IDE/plugin to implement it. In this case, Fugit2 have to handle and call pre-commit command explicitly.
Let's me investigate how to implement it. It may take a while because I'm not so familiar with pre-commit yet.
As always, Thank you for great suggestion! :D
Hi @Kraust, pre-commit hook is preliminarily support via this MR https://github.com/SuperBo/fugit2.nvim/pull/109. Sorry for taking this issue so long.
Can you help me test it?
Extra features that can added later:
- Allow no-verify option.
- Support pre-push hook.
Will do. May take a couple of days depending on what repos I'm working on.
Having an issue with it, but I don't think it's related to the changes you've made. Looks like pre-commit creates a shell script, but because I'm on currently on Windows that shell script doesn't make any sense.
@Kraust, Can you show me the error message on Windows. Maybe it can be useful.
Note: E:\work\aria is the git repo and the related path is correct. I don't think this is an issue with fugit2 at the moment.
@Kraust, seem like path construction error, I can see the malformed path E:/work/aria\.git\hooks\pre-commit in the error. That path contains mix separator of / and \. Why it use / on Windows >.<