问题描述
假设我的存储库有三个目录,如下所示:
- a /
- file1.txt
- file2.txt
- file3.txt
- b /
- file1.txt
- file2.txt
- c /
- file4.txt
- file5.txt
我想创建一个策略,如果触摸目录a
中的任何文件,则不允许在同一目录中更改其他目录(b
和c
)拉取请求。换句话说,要更改目录a
中的任何文件,用户必须创建一个新的PR,并且不能将更改与b
和c
文件合并。
目录b
和c
上没有这样的限制。也就是说,用户可以选择仅在b
中,仅在c
中更新文件,或者在一个PR中组合对b
和c
中文件的更新。
这可以在Azure DevOps中进行配置吗?我经历了documentation和常见问题解答,但发现没有任何帮助。
谢谢!
解决方法
Azure DevOps不支持git服务器端预提交挂钩,但是有一个open Feature Request。
因此,要实现您的目标,您可以向PR中添加一个build validation policy,在此构建中添加一个PowerShell脚本,该脚本检查PR提交(使用Rest API),如果有更改,则构建失败在2个文件夹中。