我们内部的开发流程要求我们正式证明所有被推送的提交都在审查范围内(=pull request)。
我知道,如果我们从repo及其分支存在的一开始就启用分支保护,那么没有审查的提交就不能被推送到受保护的分支。
不幸的是,我们的内部审计员并不满足于只看pull请求,然后告诉他们 "这个过程不允许不对提交进行审查"。
有什么办法可以做到这一点吗?我可以通过REST API获取所有数据,然后自己创建一个报告,还是说已经有了一些东西,在web ui中没有找到这方面的东西。
谢谢你的建议
你可以查看扩展 拉动请求管理器枢纽. 它可以在一个地方列出你所有项目和仓库的Pull Request。
当你在你的组织中安装这个扩展后。你可以进入 拉动请求管理器枢纽 在...之下 转发 从您的 Azure devops 项目 UI 页面查看 审稿人, 状况 和其他细节的公关。见下文。
你也可以使用 rest api 来获取所有的数据,然后自己创建一个报告。请看下面 获取拉动请求 rest api。
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId or repositoryName}/pullrequests?api-version=5.1
要获得审查者,你可以使用 拉动请求审查员 - 列表 rest api。
请看下面的Powershell脚本示例 呼叫休息api. 检查 此处 以获得个人访问令牌。
$url ="https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId or repositoryName}/pullrequests?api-version=5.1"
$pat = "Personal Access Token"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($pat)"))
$PRs=Invoke-RestMethod -Uri $url -Headers @{Authorization = ("Basic {0}" -f $base64AuthInfo)} -Method get -ContentType "application/json"
$PRs.value | select pullRequestId, reviewers