我有一个存储库,其中有一个受保护的主分支,并且只启用了压缩提交。我想在PR完成时强制执行提交消息的验证。这是为了检查工程师是否在PR描述中放置了正确的内容。
我认为最好的方法是使用commit-msg钩子。然而,我不确定如何让Azure DevOps在PR合并过程中包含和使用Git Hooks。这可能吗?如果没有,我愿意听取其他解决问题的建议。
如何在Azure DevOps的PR完成中添加Git Hook commit-msg ?
目前恐怕没有这样的特殊方法来实现这个目标。但是有一个关于它的On Roadmap用户的声音,你可以查看更多的信息,这个功能应该很快就会看到我们:
添加Git预接收钩子
作为解决方案,我们可以使用REST API Pull Request Commits - Get Pull Request Commits和Pull Request Commits - Get Pull Request Commits并构建验证来验证提交消息或PR描述。
解析此请求,我们可以添加一个Build Validation在目标分支上调用上述REST api。在上面的REST API url中,我们可以知道如果我们想要使用REST API,我们需要提供pullRequestId
.
在预定义的变量中,有一个变量System.PullRequest.PullRequestId
,我们可以用它来得到pullRequestId
。
获得pullRequestId
后,我们可以使用上面的REST api来获取提交消息或PR描述,然后验证它们。