Closed delboy1978uk closed 1 year ago
hmm interesting...
Wouldn't it be easier to check with regex that something needs to go after that?
Like: /ABC-[0-9]+ : (.+)/
?
@veewee thanks for the speedy reply! yes that was my idea, as far as i understand however, the prepare-commit-msg
hook above runs before the editor opens and we enter our commit message, the check would have to happen after we save and exit the editor, and so I guess that would be the commit-msg
hook, but that's when I noticed that GrumPHP is using that hook. So I'm looking for a way to do that check with GrumPHP if possible
I'm a bit confused by this:
The (grumphp) commit-msg hook triggers the git_commit_message task, meaning you can validate the outcome AFTER saving the file in there.
So by changing the regex /ABC-[0-9]+ : (.+)/
it won't let your commit pass if you don't enter a message after the jira issue number as you expect right? (given the fact it requires a non empty (.+)
. You could change this to (.{5,})
to specify a minimum or you could force it to contain non-space characters.
Aha! That's exactly what I needed, I didn't know abut that task! So I can keep my prepend hook and do the commit check from using GrumPHP now. Fantastic! Thanks for your help @veewee
I see that we can check commit messages for a JIRA number, and fail if it is not there. :-)
We currently have a prepare message hook which gets the ticket number and alters the commit message so that line 1 contains
ABC-1234 :
. However, if we quit vim or nano, the commit still goes through since text was already automatically added and so the file had changed and saved. So I thought to then alter the commit message hook, but i see that GrumPHP is controlling that one.So my question is, is there a way I can create a custom GrumPHP task which will check the commit message and fail if the first line has nothing but the ticket number that was auto-added?
To reproduce, here is my prepare commit message hook, which alters if a branch name is like feature/ABC-1234/some-feature but does nothing if for instance on master