TeamCity:如何获取当前未运行的每个构建配置的最新构建列表?

Jür*_*yer 6 api rest teamcity

我正在使用TeamCity 7.1.我想获得一个列表,其中包括当前未运行的每个构建配置(构建类型)的最后一个构建.我发现了这个问题:TeamCity - 如何通过rest api获得每个项目最后完成的构建列表?但答案中的REST URI对我不起作用.

<teamcity-server>/httpAuth/app/rest/builds?locator=sinceBuild:(status:failure) 
Run Code Online (Sandbox Code Playgroud)

似乎工作,并给我所有在失败之前成功的构建.

但恰恰相反

<teamcity-server>/httpAuth/app/rest/builds?locator=sinceBuild:(status:success)
Run Code Online (Sandbox Code Playgroud)

不返回任何构建.

我知道我可以获得所有构建类型,迭代它们并使用获得最新完成的构建

<teamcity-server>/httpAuth/app/rest/buildTypes/id:<build-type-id>/builds/running:false?count=1&start=0 
Run Code Online (Sandbox Code Playgroud)

("count = 1&start = 0"可能没有必要)但我不确定我得到的是最新版本.此外,这需要对所有构建类型进行许多REST调用.一个简洁的解决方案只使用一个REST调用.

有任何想法吗?

Rin*_*Tom 5

根据JetBrainsTeamCity REST API 文档,可以通过以下方式之一定位构建:

<teamcity-server>/httpAuth/app/rest/buildTypes/id:<build-type-id>/builds/running:false,status:success
Run Code Online (Sandbox Code Playgroud)

或者

<teamcity-server>/httpAuth/app/rest/builds/running:false,status:success
Run Code Online (Sandbox Code Playgroud)

<buildTypeLocator>如果您尝试在 buildType 和<buildTypeLocator> can be id:<btXXX_internal_buildConfiguration_id> or name:<Build_Configuration_name>(引用自文档)下查询某些内容,则必须按照当前的 REST API 为buildType 添加后缀。因此,您必须指定构建 ID 或构建名称。

但是,如您所料,理想的方式是:

<teamcity-server>/httpAuth/app/rest/buildTypes/builds/running:false,status:success
Run Code Online (Sandbox Code Playgroud)

也许,我想您可以在TeamCity 支持中提出这个问题。

  • 这不会得到最后一个完成的构建,而是 *all* 构建。 (2认同)