gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-27 23:16:31 29 4
gpt4 key购买 nike

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

一切进展顺利,直到我遇到了显示每种类型的最新版本(部署、 Selenium 测试和编译)的面板问题

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

我当前使用的API url如下:

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

在我的 HTML 中,我有以下 foreach ,旨在显示最新构建的主面板,但由于 TeamCity 的 XML 内没有“触发”,因此我无法显示谁触发了当前构建。

<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>

最佳答案

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

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

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

这会返回类似这样的内容

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

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

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

TeamCity 文档 - Full and Partial responses

希望这有帮助

关于javascript - 使用 Team CIty 的 REST API 在构建数组中提取每个构建的更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35770036/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com