我想强制所有提交我的私有Github repo的开发人员总是添加遵循以下语法的提交消息:
[ticketid] description
不允许空评论。这两个值都是强制性的。
有效示例提交消息:
[dk93jled]将标题颜色更改为红色
无效示例提交消息(描述文本丢失,ticketid不在括号中):
dk93jled
无效(缺少ticketid):
将标题颜色更改为红色
无效(无括号):
dk93jled将标题颜色更改为红色
问题:
如何实施上述要求?我在这里闻到了正则表达式,所以请在你的答案中添加一个完整的正则表达式,因为当谈到正则表达式时我真的很糟糕: - (
另外,我需要有关如何将此正则表达式添加到Github以便工作的说明。
答案 0 :(得分:2)
您可以使用以下代码提供客户端提交挂钩.git/hooks/commit-msg
:
#!/bin/sh
check=$(head -1 $1 | egrep '^\[\w*?\]\s(\w+\s?)+$')
if [ "" = "$check" ]; then
echo "Commit message invalid." 1>&2
echo "Required format:" 1>&2
echo " [ticketid] description" 1>&2
exit 1
fi
注意:对于未在自己的回购中添加上述代码的开发人员,这不会强制执行。