In an effort to encourage helpful commit messages, I'm interested in the best approach to require a specific amount of alpha characters for each commit message.
I appreciate the responses - thanks.
This is possible with the following custom pre-receive hook in ScriptRunner for Bitbucket Server.
You need to configure it by going to: Admin → Script Pre Hooks -> Custom script hook
It will also display the commit ids that do not have a message with at least 10 alpha characters.
If you need alphanumeric you can replace the regex with /[A-Za-z0-9]/
import com.atlassian.bitbucket.hook.HookResponse import com.atlassian.bitbucket.repository.RefChange import com.atlassian.bitbucket.repository.Repository import com.onresolve.scriptrunner.canned.bitbucket.util.BitbucketCannedScriptUtils def refChanges = refChanges as Collection<RefChange> def repository = repository as Repository def hookResponse = hookResponse as HookResponse def commits = refChanges.getCommits(repository) def offendingCommits = commits.findAll { commit -> if (! commit.message) { return true } def regex = /[A-Za-z]/ def alphaCharactersCount = (commit.message =~ regex).count alphaCharactersCount < 10 } if (offendingCommits) { def msg = new StringBuilder() msg << "The following commits should have a message containing at least 10 characters:\n" offendingCommits.each { commit -> msg << commit.displayId } hookResponse.out().write(BitbucketCannedScriptUtils.wrapHookResponse(msg)) return false } return true
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.