如何查明:拉取请求是否涵盖给定分支中的所有提交?

How to find out: Are all commits in a given branch covered by a pull request?

我们内部使用的开发流程要求我们正式证明所有推送的提交都包含在审查(=pull request)中。

我知道,如果我们在 repo 及其分支存在之初就启用分支保护,则没有 review/pull 请求就无法将任何提交推送到受保护的分支。

不幸的是,我们的内部审计员并不满足于只查看拉取请求并告诉他们 "The process does not allow to not cover a commit with a review"。

知道如何实现吗?我可以通过 REST API 获取所有数据并自己创建报告吗,或者是否已经存在一些东西,但在网络上没有找到任何相关内容 ui.

谢谢

您可以查看扩展程序 Pull Request Manager Hub。它可以在一个地方列出所有项目和存储库的合并请求。

在您的组织中安装此扩展后。您可以从 Azure devops 项目 UI 页面的 Repos 下的 Pull Request Manager Hub 查看 reviewersstatus 和 PR 的其他详细信息。见下文:

您也可以使用 rest api 获取所有数据并自行创建报告。见下文 Get Pull Requests 其余 api.

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId or repositoryName}/pullrequests?api-version=5.1

要获得审稿人,您可以使用 Pull Request Reviewers - List rest api。

请参阅以下 powershell 中的示例脚本 call rest api. Check here 以获取个人访问令牌。

$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