【问题标题】:Azure DevOps Rest API - List pull requests by tag/labelAzure DevOps Rest API - 按标签/标签列出拉取请求
【发布时间】:2021-01-15 06:32:00
【问题描述】:

有什么方法可以查询 Azure DevOps 的 REST API 以返回带有特定标签/标签的拉取请求列表?

在没有太多帮助的情况下在这里查看文档:https://docs.microsoft.com/en-us/rest/api/azure/devops/git/pull%20requests/get%20pull%20requests?view=azure-devops-rest-6.0

【问题讨论】:

标签: azure-devops azure-devops-rest-api


【解决方案1】:

根据Get Pull Requests 文档,我们可以在URI 参数中添加一些搜索条件,但目前标签不可用。如果您想要该功能,请使用 this link 并为此功能创建请求。这将允许您直接与相应的产品组进行交互,并使产品组更方便地收集和分类您的建议。

作为一种解决方法,我们可以过滤 API 的结果。请检查以下 powershell 脚本是否满足您的需求。我在示例中使用了Get Pull Requests apiGet Pull Request By Id api(请更改注释值):

$organization = "{organization name}" // organization name
$project = "{project name}"  // project name
$repo = "{repo name}" // repo name
$pat = "{PAT}"  //PAT
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $pat)))
$baseUrl = "https://dev.azure.com/$organization/$project/_apis/git/repositories/$repo /pullrequests?&api-version=6.0" 
$pullrequestlist = Invoke-RestMethod -Uri $baseUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}  -Method GET 


$pullrequestid = @()
foreach($prid in $pullrequestlist.value){
$childprid = $prid.labels | Where-Object{$_.name -eq "{label name}" } | select $prid.url  //label name
$pullrequestid +=  $childprid | foreach{$prid.url.split("/")[-1]}
}


foreach($prid2 in $pullrequestid){
write-host $prid2  
$baseUrl2 = "https://dev.azure.com/$organization/$project/_apis/git/pullrequests/$($prid2)?api-version=6.0"
$pullrequestlist2 = Invoke-RestMethod -Uri $baseUrl2 -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}  -Method GET
write-host $pullrequestlist2
} 

这是我的结果:

【讨论】:

    猜你喜欢
    • 2020-11-29
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 2021-03-08
    • 2021-04-20
    • 1970-01-01
    相关资源
    最近更新 更多