2

如果提交语句在备注中没有定义的 Jira 问题 ID,我正在尝试停止 Bitbucket 中的 repo 推送。我已成功调用 URL 以通过 webhook 检查提交备注,但无法找出在失败时停止推送的方法。

4

2 回答 2

0

从此msg-commitgit 挂钩示例自定义以下脚本。

#!/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

于 2017-12-08T15:28:32.463 回答
0

对于您的特定用例:

如果提交语句在备注中没有定义的 Jira 问题 ID,则停止 Bitbucket 中的 repo 推送

它已作为一项功能添加到 Bitbucket Cloud:https: //support.atlassian.com/bitbucket-cloud/docs/link-to-a-web-service/#Require-linked-issue-keys-in-commits

您需要做的就是打开它。

于 2021-05-03T22:35:09.440 回答