我想建立一个 GitHub 项目来使用 conventional-changelog standard version生成它的变更日志。我们使用 squash and merge将 PR merge 到我们的主要开发分支的工作流程。
有没有一种方法可以强制压缩提交的提交消息遵循特定格式?
理想情况下,这可以很好地与 GitHub UI 配合使用,例如显示为失败检查。我意识到我可以简单地编写一个浏览器扩展来强制执行此操作,但随后从事该项目的每个人都需要安装该扩展,这对于开源项目来说阈值太高。
最佳答案
目前尚不清楚您是打算将其放在 GitHub Public 还是 Enterprise 上。我还没有尝试在 GitHub Public 上实现它。
在 Enterprise 上,该过程是为您有兴趣保护的特定存储库创建预接收 Hook 。请记住,除非您愿意上传新环境,否则您的预接收 Hook 可以使用的工具将受到限制。
最好的细节可以在以下位置找到: https://help.github.com/enterprise/2.11/admin/guides/developer-workflow/creating-a-pre-receive-hook-script/
基本上流程看起来像这样:
#!/usr/bin/env bash
#
DEFAULT_BRANCH=$(git symbolic-ref HEAD)
while read oldrev newrev refname; do
# We only care about these changes to master
if [[ "${refname}" != "${DEFAULT_BRANCH:=refs/heads/master}" ]]; then
exit 0
fi
# branch or tag got deleted
if [ "${newrev}" = "${zero_commit}" ]; then
continue
fi
# branch or tag is being created
if [ "${oldrev}" = "${zero_commit}" ]; then
continue
fi
for COMMIT_HASH in `git rev-list ${oldrev}..${newrev}`;
do
# Add your COMMIT_HASH scrubbing process here
# On failure exit 1
done
done
exit 0
关于git - 验证 GitHub "Squash and Merge"提交消息的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42011894/