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.