如果提交格式不正确,是否可以拒绝Github上的提交?

时间:2016-09-29 08:16:51

标签: git github webhooks

正如https://www.sqlite.org/lang_conflict.html回答中所提到的,可以在Github提交中引用一个问题。

是否有可能拒绝提交 这样的格式?

例:
fix gh-12 foo bar是正确的 foo bar会出错

更新

几乎在那里,这仍然不起作用......有什么想法吗?

我现在有以下内容:.git/hooks/commit-msg

#!/bin/bash
commit_regex='(gh-[0-9]+|merge)'

error_msg="Aborting commit. Your commit message is missing either a Github Issue ('gh-1111') or 'Merge'."

if ! grep -E "$commit_regex" <<< "$0"; then
    echo "$error_msg" >&2
    exit 1
fi

2 个答案:

答案 0 :(得分:3)

Python版本看起来像这样:

#!/usr/bin/python
import sys
import re
ret = 1
try:
    with open(sys.argv[1]) as msg:
      res = re.match("^fix gh-[0-9]+.*$", msg.readline())
      if res != None: 
          ret = 0
except:
    pass
if (ret != 0):
    print("error_msg_goeth_here")
sys.exit(ret)

通常它的第一行应该与预定义的格式相匹配,但这只是我个人的意见。

答案 1 :(得分:0)

您需要设置pre-receive hook,但此功能仅适用于GitHub Enterprise。如果你没有使用GitHub Enterprise,你仍然可以在使用webhooks推送提交时收到通知,但是你不能拒绝这样的推送。

修改

当然你可以设置本地钩子 - 见rasjani's answer