在我们的项目中,我们通常使用重基和推送工作流。不同分支上的大型特性通过GitHub的UI合并,显示为“合并拉请求”。
有时,我们中的一个人做错了什么,最后提交了一个看起来像“合并远程跟踪分支‘起源/主人’”的提交。如果推送包含标题中包含有“合并远程跟踪分支”的提交,我们是否可以自动拒绝该推送?
发布于 2019-11-30 18:08:22
正如其他人所提到的,您可以在pre-receive企业中使用GitHub挂钩,但不能使用GitHub.com。这是因为pre-receive钩子是任意代码,GitHub在它们的服务器上运行任意代码是没有意义的。
您可以使用分支保护,并要求拉请求合并到某些分支,然后使用GitHub操作(或其他CI工具)拒绝包含合并的分支。这是大多数团队处理拒绝不符合某些标准的提交的典型方法。
发布于 2019-11-30 13:34:35
预收钩子,如:
#!/bin/sh
while read from to ref; do
git log --format=%B -n 1 "$to" \
| if grep -q pattern; then exit 1; fi
done将拒绝主题与模式匹配的任何提交。你几乎可以肯定地让它做你想做的事情(例如,使用grep "Merge remote-tracking branch")。详情请参见githooks(5)。
发布于 2019-11-30 13:55:49
考虑到GitHub操作还不支持预接收钩子类型的操作(如这里提到的 ),您需要:
注:9月2020年: GitHub的行动开始成为可用于GitHub企业的beta版。
注意,通过启用2019年12月4日,您可以通过拒绝包含合并提交的任何推送来保护分支。
https://stackoverflow.com/questions/59115753
复制相似问题