在 Azure DevOps 中捕获每个拉取请求的提交计数

Capture commit count per pull request in Azure DevOps

我想获取有关每个拉取请求的提交数量的信息。目前,半自动就可以了。只是在寻找一种简单的方法,比如 PowerShell 脚本。将来我可能需要使用不同的数据创建类似类型的报告。

是否有任何方法适用于 Azure DevOps 数据的这种快速而肮脏的方法?

为此有一个特殊的 Rest API:Pull Request Commits - Get Pull Request Commits:

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/commits?api-version=5.1

所以,简单的 PowerShell 脚本:

$pat = "YOUR-PERSONAL-ACCESS-TOKEN"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,"$pat")))
$headers = @{Authorization=("Basic {0}" -f $base64AuthInfo)}

$url = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/commits?api-version=5.1"

$commitsCount = (Invoke-RestMethod -Method Get -Uri $url -Headers $headers -Body $jsonBody -ContentType 'application/json').count