Azure DevOps中如何根据分支名获取对应Pull Request及PR ID?分支可关联多PR吗?
根据分支获取Azure DevOps Pull Request ID的方法
方法一:PowerShell脚本(基于Azure DevOps REST API)
需要先准备具有代码读取权限的个人访问令牌(PAT),替换脚本中的参数后即可运行:
# 配置参数 $orgName = "你的组织名" $projectName = "你的项目名" $repoName = "BarRepo" $sourceBranch = "refs/heads/FooBranch" # 分支需添加refs/heads前缀 $pat = "你的个人访问令牌" # 构建API请求地址 $apiUrl = "https://dev.azure.com/$orgName/$projectName/_apis/git/repositories/$repoName/pullrequests?sourceRefName=$sourceBranch&api-version=7.1-preview.1" # 处理PAT认证 $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$pat")) # 发送请求并解析结果 $prResponse = Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization = "Basic $base64AuthInfo"} -Method Get # 输出PR ID及对应URL if ($prResponse.count -gt 0) { foreach ($pr in $prResponse.value) { Write-Host "关联PR ID: $($pr.pullRequestId)" Write-Host "PR地址: https://$orgName.visualstudio.com/$projectName/_git/$repoName/pullrequest/$($pr.pullRequestId)" } } else { Write-Host "该分支未关联任何Pull Request" }
方法二:Azure CLI
确保已安装Azure CLI并登录,且安装了azure-devops扩展,直接执行以下命令:
# 登录Azure DevOps(首次运行需要) az devops login # 列出指定分支关联的PR并提取ID az repos pr list --org https://dev.azure.com/你的组织名 --project 你的项目名 --repository BarRepo --source-branch FooBranch --query "[].pullRequestId"
命令会返回匹配的PR ID数组,若有多个PR会全部列出。
方法三:直接HTTP请求
用curl等工具发送请求,同样需要PAT认证:
curl -u :你的PAT "https://dev.azure.com/你的组织名/你的项目名/_apis/git/repositories/BarRepo/pullrequests?sourceRefName=refs/heads/FooBranch&api-version=7.1-preview.1"
返回的JSON结果中,value数组内每个元素的pullRequestId字段即为目标PR ID。
一个分支能否关联多个PR?
可以。一个分支作为源分支,可关联多个Pull Request,常见场景包括:
- 同一分支向不同目标分支发起PR(比如同时向
main和develop分支提交) - 已关闭的PR未合并,基于该分支重新创建新PR
- 同一分支向同一目标分支创建多个PR(只要已有PR未合并/关闭,不过这种场景通常建议复用现有PR)
注意:若存在开放状态的PR,新创建的同分支PR会包含该分支的所有提交,包括已在原有PR中的内容。
内容的提问来源于stack exchange,提问作者joseville
相关产品推荐
相关产品推荐

