Azure DevOps中具有路径限制的分支策略

问题描述

假设我的存储库有三个目录,如下所示:

  • a /
    • file1.txt
    • file2.txt
    • file3.txt
  • b /
    • file1.txt
    • file2.txt
  • c /
    • file4.txt
    • file5.txt

我想创建一个策略,如果触摸目录a中的任何文件,则不允许在同一目录中更改其他目录(bc)拉取请求。换句话说,要更改目录a中的任何文件用户必须创建一个新的PR,并且不能将更改与bc文件合并。 目录bc上没有这样的限制。也就是说,用户可以选择仅在b中,仅在c中更新文件,或者在一个PR中组合对bc文件的更新。

这可以在Azure DevOps中进行配置吗?我经历了documentation和常见问题解答,但发现没有任何帮助。

谢谢!

解决方法

Azure DevOps不支持git服务器端预提交挂钩,但是有一个open Feature Request

因此,要实现您的目标,您可以向PR中添加一个build validation policy,在此构建中添加一个PowerShell脚本,该脚本检查PR提交(使用Rest API),如果有更改,则构建失败在2个文件夹中。