如果提交语句在备注中没有定义的Jira问题ID,我试图阻止Bitbucket中的repo push。 我已成功通过webhooks调用URL检查提交备注,但无法找出在发生故障时停止推送的方法。
答案 0 :(得分:0)
从这个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
将此代码检入git,然后运行
# give the script "execute" permission
chmod 755 commit-msg
# put the script in the correct place
cp commit-msg .git/hooks/commit-msg
如果您尝试创建一个没有“更新”字样的提交。在消息中,此挂钩将阻止成功创建提交。
来源:https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks
commit-msg hook
接受一个参数,该参数也是包含开发人员编写的提交消息的临时文件的路径。如果此脚本退出非零,Git将中止提交过程,因此您可以在允许提交之前使用它来验证项目状态或提交消息。在本章的最后一节中,我们将演示如何使用此钩子来检查您的提交消息是否符合所需的模式。
请注意,克隆您的存储库的任何其他人也需要将钩子复制到.git/hooks/commit-msg
答案 1 :(得分:0)
对于您的特定用例:
<块引用>如果commit语句在备注中没有定义的Jira问题ID,则停止Bitbucket中的repo push
它已作为一项功能添加到 Bitbucket Cloud:https://support.atlassian.com/bitbucket-cloud/docs/link-to-a-web-service/#Require-linked-issue-keys-in-commits
您需要做的就是打开它。