【问题标题】:How to page changeset via TFS 2015 REST API如何通过 TFS 2015 REST API 对变更集进行分页
【发布时间】:2016-11-25 20:43:27
【问题描述】:

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

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

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

【问题讨论】:

  • 刚刚使用 Postman 尝试过,它适用于我的情况。您是否安装了更新 3?
  • @Legends 这是更新 2(内部版本号:14.95.25122.0)。

标签: tfs tfs-2015


【解决方案1】:

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 步

【讨论】:

    猜你喜欢
    • 2018-09-12
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 2012-05-02
    • 2018-03-20
    • 1970-01-01
    • 2016-04-03
    • 2017-07-21
    相关资源
    最近更新 更多