如何在 Azure DevOps 中查看用户跨多个存储库的提交?
How to see commits by user accross multiple repositories in Azure DevOps?
我想在 Azure DevOps 中查看用户在我组织中所有存储库中的提交。我看不到可用的选项。
我可以在 Azure DevOps 中看到以下选项,但它显示了单个存储库中的提交。
我知道我们可以使用下面的 git 命令查看单个存储库中的提交。
git log --author<AuthorName> --all ( or --branches)
检查这个 REST API 示例 By author,它包含提交的作者,我们可以输入作者的别名或显示名称以列出所有提交信息。
此外,我们可以将归档 searchCriteria.itemVersion.version
添加到过滤器分支。
GET https://dev.azure.com/{Org name}/{project name}/_apis/git/repositories/{repo name}/commits?searchCriteria.author={searchCriteria.author}&searchCriteria.itemVersion.version={branch name}&api-version=6.0
I want to see the commits by a user across all repositories in my organization in Azure DevOps
一个。通过组织名称列出所有项目并获取项目名称。
GET https://dev.azure.com/{organization}/_apis/projects?api-version=6.0
b。通过组织名称和项目名称列出所有存储库并获取存储库名称。
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=6.0
c。通过组织名称、项目名称和 repo 名称列出所有分支,然后获取分支名称
GET https://dev.azure.com/{Org name}/{project name}/_apis/git/repositories/{repo name}/refs?filter=heads&api-version=6.1-preview.1
d.通过作者的别名或显示名称列出提交信息
GET https://dev.azure.com/{Org name}/{project name}/_apis/git/repositories/{repo name}/commits?searchCriteria.author={searchCriteria.author}&searchCriteria.itemVersion.version={branch name}&api-version=6.0
电源shell脚本:
cls
#List all projects via org name
$ListAllProjectsURL="https://dev.azure.com/{org name}/_apis/projects?api-version=6.0"
$PAT="{pat}"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PAT)"))
#get the project name
$ListAllProjects = Invoke-RestMethod -Uri $ListAllProjectsURL -Headers @{Authorization = "Basic {0}" -f $base64AuthInfo} -Method get
ForEach ($ProjectName in $ListAllProjects.value.name){
#Write-Host $ProjectName
#List all repos via org name and project name and get the repo name.
$ListAllRepoURL = "https://dev.azure.com/{org name}/$($ProjectName)/_apis/git/repositories?api-version=6.0"
$ListAllRepo = Invoke-RestMethod -Uri $ListAllRepoURL -Headers @{Authorization = "Basic {0}" -f $base64AuthInfo} -Method get
ForEach ($RepoName in $ListAllRepo.value.name){
#Write-Host $RepoName
$ListAllBranchURL ="https://dev.azure.com/{org name}/$($ProjectName)/_apis/git/repositories/$($RepoName)/refs?filter=heads&api-version=6.1-preview.1"
$ListBranchName = Invoke-RestMethod -Uri $ListAllBranchURL -Headers @{Authorization = "Basic {0}" -f $base64AuthInfo} -Method get
#get branch name
foreach($Branch in $ListBranchName.value){
$BranchName = $Branch.name.split("/",3)[-1]
#write-host $BranchName
#List the commits by a user across all repositories in one organization in Azure DevOps
$ListCommitInfoViaUserURL = "https://dev.azure.com/{org name}/$($ProjectName)/_apis/git/repositories/$($RepoName)/commits?searchCriteria.author={User display name}&searchCriteria.itemVersion.version=$($BranchName)&api-version=6.0"
$ListCommitInfo = Invoke-RestMethod -Uri $ListCommitInfoViaUserURL -Headers @{Authorization = "Basic {0}" -f $base64AuthInfo} -Method get
if($ListCommitInfo.count -eq 0){
}else{
Write-Host "Project name is:"$ProjectName " repo name is:" $RepoName "branch name is:" $BranchName "and commit ID is:" $ListCommitInfo.value.commitId
}
}
}
}
结果:
我想在 Azure DevOps 中查看用户在我组织中所有存储库中的提交。我看不到可用的选项。
我可以在 Azure DevOps 中看到以下选项,但它显示了单个存储库中的提交。
我知道我们可以使用下面的 git 命令查看单个存储库中的提交。
git log --author<AuthorName> --all ( or --branches)
检查这个 REST API 示例 By author,它包含提交的作者,我们可以输入作者的别名或显示名称以列出所有提交信息。
此外,我们可以将归档 searchCriteria.itemVersion.version
添加到过滤器分支。
GET https://dev.azure.com/{Org name}/{project name}/_apis/git/repositories/{repo name}/commits?searchCriteria.author={searchCriteria.author}&searchCriteria.itemVersion.version={branch name}&api-version=6.0
I want to see the commits by a user across all repositories in my organization in Azure DevOps
一个。通过组织名称列出所有项目并获取项目名称。
GET https://dev.azure.com/{organization}/_apis/projects?api-version=6.0
b。通过组织名称和项目名称列出所有存储库并获取存储库名称。
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=6.0
c。通过组织名称、项目名称和 repo 名称列出所有分支,然后获取分支名称
GET https://dev.azure.com/{Org name}/{project name}/_apis/git/repositories/{repo name}/refs?filter=heads&api-version=6.1-preview.1
d.通过作者的别名或显示名称列出提交信息
GET https://dev.azure.com/{Org name}/{project name}/_apis/git/repositories/{repo name}/commits?searchCriteria.author={searchCriteria.author}&searchCriteria.itemVersion.version={branch name}&api-version=6.0
电源shell脚本:
cls
#List all projects via org name
$ListAllProjectsURL="https://dev.azure.com/{org name}/_apis/projects?api-version=6.0"
$PAT="{pat}"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PAT)"))
#get the project name
$ListAllProjects = Invoke-RestMethod -Uri $ListAllProjectsURL -Headers @{Authorization = "Basic {0}" -f $base64AuthInfo} -Method get
ForEach ($ProjectName in $ListAllProjects.value.name){
#Write-Host $ProjectName
#List all repos via org name and project name and get the repo name.
$ListAllRepoURL = "https://dev.azure.com/{org name}/$($ProjectName)/_apis/git/repositories?api-version=6.0"
$ListAllRepo = Invoke-RestMethod -Uri $ListAllRepoURL -Headers @{Authorization = "Basic {0}" -f $base64AuthInfo} -Method get
ForEach ($RepoName in $ListAllRepo.value.name){
#Write-Host $RepoName
$ListAllBranchURL ="https://dev.azure.com/{org name}/$($ProjectName)/_apis/git/repositories/$($RepoName)/refs?filter=heads&api-version=6.1-preview.1"
$ListBranchName = Invoke-RestMethod -Uri $ListAllBranchURL -Headers @{Authorization = "Basic {0}" -f $base64AuthInfo} -Method get
#get branch name
foreach($Branch in $ListBranchName.value){
$BranchName = $Branch.name.split("/",3)[-1]
#write-host $BranchName
#List the commits by a user across all repositories in one organization in Azure DevOps
$ListCommitInfoViaUserURL = "https://dev.azure.com/{org name}/$($ProjectName)/_apis/git/repositories/$($RepoName)/commits?searchCriteria.author={User display name}&searchCriteria.itemVersion.version=$($BranchName)&api-version=6.0"
$ListCommitInfo = Invoke-RestMethod -Uri $ListCommitInfoViaUserURL -Headers @{Authorization = "Basic {0}" -f $base64AuthInfo} -Method get
if($ListCommitInfo.count -eq 0){
}else{
Write-Host "Project name is:"$ProjectName " repo name is:" $RepoName "branch name is:" $BranchName "and commit ID is:" $ListCommitInfo.value.commitId
}
}
}
}
结果: