使用 Team CIty 的 rest API 在构建数组中提取每个构建的更多信息

Using Team CIty's rest API to pull more information per build in a builds array

如标题中所述,我正在使用 Knockout JS、HTML 和 CSS 为 Teamcity 服务器上的构建创建监视器。

在我遇到显示每种类型的最新版本(部署、selenium 测试和编译)的面板出现问题之前,一切进展顺利

问题是我正在使用的 Team city API url 检索有关每个构建的信息列表,包括状态、名称、描述和类型,但没有提供给我一个 "Triggered" 变量。

我目前使用的APIurl如下:

Settings.buildsUrl = Settings.proxy + Settings.teamCityUrl + '/guestAuth/app/rest/builds?locator=running:any,branch:branched:any,count:20';

在我的 HTML 中,我有以下 foreach 用于显示最新版本的主面板,但由于 TeamCity 的 XML 中没有 'triggered' ,我无法显示谁触发了当前构建。

<div class="dev-panel-history">
    <ul data-bind="foreach: { data: mostRecentDevs }">
            <li data-bind="attr: { class: lowerStatus() }, css: { running: isRunning() }">
                <div class="build-branch"  data-bind="text: description()"></div>
                <div class="build-type" data-bind="text: buildType"></div>
                <div class="clear"></div>
                <div class="build-status" data-bind="text: isRunning() ? '' : status"></div>
                <div class="clear"></div>
                <!-- ko if: hasProgress() -->
                   <div class="progress-container" data-bind="attr: { 'data-progress' : percentageComplete() }"></div>
                <!-- /ko -->
            </li>
        </ul>
    </div>

您不需要为每个构建进行额外的调用,但您需要设计您想要的响应方式 returned。有一个名为 fields 的查询字符串参数,可让您定义要带回的内容。

例如对于 return 原始调用中的触发数据,您可以将 &fields=build(triggered) 添加到原始请求

teamCityUrl + '/guestAuth/app/rest/builds?locator=running:any,branch:branched:any,count:20&fields=build(triggered)';

这会 return 像这样

<builds>
  <build>
    <triggered type="user" date="20160314T130743+0000">
      <user/>
    </triggered>
  </build>
  <build>
    <triggered type="vcs" details="jetbrains.git" date="20160221T230257+0000"/>
  </build>
</builds>

需要注意的是,您现在必须专门定义您想要的内容 returned。所以要 return 所有其他字段和触发器数据,将此参数添加到查询字符串

&fields=build(id,buildTypeId,number,status,state,branchName,defaultBranch,href,webUrl,buildTypeId,triggered)

TeamCity 文档 - Full and Partial responses

希望对您有所帮助