tfs - 如何通过 TFS 2015 REST API 对变更集进行分页

标签 tfs tfs-2015

我正在尝试通过 API 从 TFS 2015 服务器抓取变更集。我使用 $top$skip 参数按照文档进行分页。然而,一些奇怪的行为正在发生:

  • 请求 255 个项目会返回全部 255 个项目。请求 256 个及以上项目只会返回 132 个项目。
  • 第二个页面的响应中不包含链接 HTTP header - 防止自动抓取。
  • 在浏览器中手动递增 $skip 参数会返回零个项目。

是否可以通过 API 对项目进行分页,或者 TFS 是否设置限制来阻止这种情况?

最佳答案

API 只能返回 256 个变更集。因此,要获得所有这些,您需要:

1)获取前 256 个变更集(我使用 orderby 以防响应顺序不同):

_apis/tfvc/changesets?$top=256&orderby=id desc&searchCriteria.itemPath=<your_path>&api-version=1.0

2) 如果响应中有超过 0 个项目,则从响应中获取 ChangesetNumber 的最后一个值。如果为 0 - 您获得了所有变更集。

3) 获取从changesetNumber开始的接下来的256个项目:

 _apis/tfvc/changesets?searchCriteria.toId=<changesetNumber>&$top=256&orderby=id desc&searchCriteria.itemPath=<your_path>&api-version=1.0

您需要跳过第一个变更集(您已经具有此值)作为响应。

4) 转到步骤 2

关于tfs - 如何通过 TFS 2015 REST API 对变更集进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661694/

相关文章:

tfs - 如何在 TFS 2015 中链接构建?

visual-studio - 使用 VNext Build 触发 VNext Build

testing - Microsoft 测试管理器中的自动化测试 "build directory of the test run either does not exist or access permission is required"

tfs - 将工作项从本地 TFS 迁移到 VSTS

c# - 仅将特定 VM 用于 TFS 构建

TFS 持续集成构建仅触发解决方案中的一个项目

TFS 管理控制台缺少构建配置节点

visual-studio - TFS 2012 : Change work item type

tfs-2015 - 如何在 TFS Visual Studio 构建步骤中使用 Visual Studio 2017

javascript - 如何使用js获取用户成员(TFS 2015扩展)所属的所有团队?