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
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.