2

I'm trying to stop the repo push in Bitbucket if the commit statement doesn't have the defined Jira issue id in the remark. I have successfully invoked the URL for checking the commit remark via webhooks but unable to figure out the way to stop the push in case of failure.

Ankita Goyal
  • 391
  • 1
  • 2
  • 16

2 Answers2

1

For your particular use case:

stop the repo push in Bitbucket if the commit statement doesn't have the defined Jira issue id in the remark

It has been added to Bitbucket Cloud as a feature: https://support.atlassian.com/bitbucket-cloud/docs/link-to-a-web-service/#Require-linked-issue-keys-in-commits

All you need to do is toggle it on.

ahong
  • 1,041
  • 2
  • 10
  • 22
0

Customise the following script from this example of a msg-commit git hook.

#!/bin/bash

MSG="$1"

if ! grep -qE "updated" "$MSG";then
    cat "$MSG"
    echo "Your commit message must contain the word 'updated'"
    exit 1
fi

Check this code into git, and then run

# give the script "execute" permission
chmod 755 commit-msg
# put the script in the correct place
cp commit-msg .git/hooks/commit-msg 

If you try and create a commit without the word 'updated' in the message, then this hook will prevent the commit from being created successfully.

Source: https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

The commit-msg hook takes one parameter, which again is the path to a temporary file that contains the commit message written by the developer. If this script exits non-zero, Git aborts the commit process, so you can use it to validate your project state or commit message before allowing a commit to go through. In the last section of this chapter, We’ll demonstrate using this hook to check that your commit message is conformant to a required pattern.

Note that anyone else who clones your repository will also need to copy the hook into .git/hooks/commit-msg

Edmund Dipple
  • 2,244
  • 17
  • 12