You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:23:15