我想设置一个
GitHub项目来使用
conventional-changelog standard version生成其更改日志.我们使用
squash and merge工作流程将PR合并到我们的主要开发分支中.
有没有办法可以强制执行压缩提交的提交消息遵循特定格式?
理想情况下,这可以很好地与GitHub UI一起使用,例如显示为失败检查.我意识到我可以简单地编写一个浏览器扩展来强制执行此操作,但是那个在项目上工作的人都需要安装扩展,这对于开源项目来说是一个太高的入门障碍.
最佳答案 目前尚不清楚你是否打算在GitHub Public或Enterprise上使用它.我没有尝试在GitHub Public上实现它.
在Enterprise上,该过程是为您有兴趣保护的特定仓库创建预接收挂钩.请记住,除非您愿意上传新环境,否则您的预接收挂钩可以使用的工具受到限制.
本质上,流程将看起来像:
#!/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