Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Deleted user
0 / 0 points
badges earned

Your Points Tracker
  • Global
  • Feed

Badge for your thoughts?

You're enrolled in our new beta rewards program. Join our group to get the inside scoop and share your feedback.

Join group
Give the gift of kudos
You have 0 kudos available to give
Who do you want to recognize?
Why do you want to recognize them?
Great job appreciating your peers!
Check back soon to give more kudos.

Past Kudos Given
No kudos given
You haven't given any kudos yet. Share the love above and you'll see it here.

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How to Enforce Naming Standards for Commit Message?


5 answers

1 accepted

2 votes
Answer accepted

You can do this with ScriptRunner for Bitbucket Server by going to Admin -> Script Pre Hooks -> Protect git refs and configure it like in the screenshot below:

Screen Shot 2017-01-05 at 12.00.36.png

The condition is:

def commits = refChanges.getCommits(repository)

def regex = "[A-Z]{2,9}-\\d+\\s[A-Za-z]+.*"

commits*.message.any { message ->
   	!(message  ==~ /${regex}/)

Note that this won't work if you configure it from the repository settings menu for Script Pre Hooks due to security issues we limit what you can use in the condition.

You can change the error message to what you like.

If you require to set the error message dynamically you can use something like the following under Admin -> Script Pre Hooks -> Custom script hook:

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 repository = repository as Repository
def refChanges = refChanges as Collection<RefChange>
def hookResponse = hookResponse as HookResponse

def msg = new StringBuilder()

def commits = refChanges.getCommits(repository)

def regex = "[A-Z]{2,9}-\\d+\\s[A-Za-z]+.*"

commits*.message.each { message ->
    if (!(message  ==~ /${regex}/)) {
        msg << "$message does not match $regex"

if (msg) {
    hookResponse.out().write BitbucketCannedScriptUtils.wrapHookResponse(msg)
    // block push as commits don't match regex
    return false

// allow push
return true

Note that we are working on SRBITB-7 which in a few weeks when we release will allow you to dynamically set the error message in the first script also without you requiring to write all the code in the second example.

Let us know how you get on with this.

I know this is an older question, but we just started looking into doing this. We use Bitbucket Server for viewing and merging pull requests, but our commits and pushes are done via git bash. Will this solution work? Or does it only work if all git work is done via Bitbucket?

-&gt is not working for me in script in script-runner prehook

Like Vignesh Kumar likes this

Late reply but I think -> is erroneously converted in the snippet example above so it should be replaced by the following character instead:


Could you tell us what naming standard you want the commit message to match and I will put an example together for you?

You'll likely get a faster response if you tag your question with: com.onresolve.stash.groovy.groovyrunner in the future. I've just done this for you.

I use this add-on:

You can use regex or it validates against a JQL query, or both.

Apologies I automatically assumed you were talking about ScriptRunner for Bitbucket Server as that has something similar. Maybe mention that plugin in the question tags and you'll be more likely to get an answer from the right people.

Like Daniel Mowlam likes this

Good morning, I was responding to Trent Daily, he's the OP.

We are attempting to use scriptrunner to get this completed.  What we are looking for is:
1. Comment should start with 
2. apha numeric upper case - min 2 char (for example for CM)
3. hyphen Mandatory
4. Number (0-9) - Atleast 1 digit
5. No spaces around hyphen.
6. Space required after jira story number. And atleast 1 word comment afterward.

ex. CM-1234 Adding pom changes

@Trent Dailey thanks for confirming. I have provided a solution for you.

Hi Adammarkham,

We have following requirement,

1. Comment should start with
2. apha numeric upper case - min 2 char (for example for CM)
3. hyphen Mandatory
4. Number (0-9) - Atleast 1 digit
5. No spaces around hyphen.
5.  :(colon) is compulsory after jira story number
6. Space required after jira story number. And atleast 1 word comment afterward

can you suggest the regex format.


Suggest an answer

Log in or Sign up to answer
Community showcase
Published in Bitbucket

New improvements to user management in Bitbucket Cloud 👥

Hey Community! We’re willing to wager that quite a few of you not only use Bitbucket, but administer it too. Our team is excited to share that we’ll be releasing improvements throughout this month of...

228 views 2 9
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you