Azure DevOps widget拉取项目PR仅返回1条结果如何修复
解决方案:调整getPullRequestsByProject的搜索参数格式
问题根源
你遇到的问题是由于getPullRequestsByProject方法的第二个参数格式错误导致的:
- 你当前传入的是字符串
"status: All ",导致SDK生成的请求参数为searchCriteria=status:All,不符合Azure DevOps REST API的参数规范,因此仅返回默认的少量结果 - 正确的参数应该是结构化的
GitPullRequestSearchCriteria对象,SDK会自动将对象的属性解析为searchCriteria.xxx格式的URL参数,和你手动修改的请求URL格式一致
修复代码
你只需要替换原来调用getPullRequestsByProject的那一行代码即可,修改后代码如下:
// 原错误写法 // return TFS_Wit_WebApi.getClient().getPullRequestsByProject(projectId,"status: All ",null,0,100) // 修正后写法 return TFS_Wit_WebApi.getClient().getPullRequestsByProject( projectId, { status: "All" }, // 结构化搜索条件对象 null, 0, 100 )
可选优化&注意事项
可选优化:你当前代码中直接输出
pr.createdBy会显示[object Object],建议修改为pr.createdBy.displayName获取创建人的显示名称
// 修改前 // $list.append($('<li>').text("Pull Request createdBy: " + pr.createdBy)) // 修改后 $list.append($('<li>').text("Pull Request createdBy: " + pr.createdBy.displayName))
- 注意:
getPullRequestsByProject的第五个参数是单次请求返回的最大PR数量,如果你项目的PR总数超过100,需要调大这个参数或者实现分页逻辑拉取全量数据。
内容的提问来源于stack exchange,提问作者Piyush
相关产品推荐
相关产品推荐

