TeamCity - как получить текущие сборки через REST API? - PullRequest
15 голосов
/ 20 января 2011

Кто-нибудь знает, как использовать TeamCity REST API, чтобы узнать, какие сборки выполняются в настоящее время и как далеко они проходят (истекшее время по сравнению с расчетным временем)?

Та Мэтт

Ответы [ 5 ]

31 голосов
/ 14 июля 2011

URL-адрес возвращает то, что вы просите, включая процент выполнения. http://teamcityserver/httpAuth/app/rest/builds?locator=running:true

<builds count="1">
    <build id="10" number="8" running="true" percentageComplete="24" status="SUCCESS" buildTypeId="bt3" startDate="20110714T210916+1200" href="/httpAuth/app/rest/builds/id:10" webUrl="http://phillipn02:29000/viewLog.html?buildId=10&buildTypeId=bt3"/>
</builds>

Источник: http://devnet.jetbrains.net/message/5291132#5291132. Соответствующая строка в документации REST API гласит: "http://teamcity:8111/httpAuth/app/rest/builds/?locator= - чтобы получить сборки с помощью" локатора сборки ". в разделе «Использование».

Это работает с TeamCity версии 6.5; Я не пробовал его в более ранних версиях, но подозреваю, что он вернется к версии 5.

4 голосов
/ 20 января 2011

Вы можете использовать «running: true / false / any» в качестве одного из измерений сборки для локатора сборки.(РЕДАКТИРОВАТЬ: добавлено в TeamCity 6.0)

http://confluence.jetbrains.net/display/TW/REST+API+Plugin

Документация TeamCity REST API предоставит вам некоторые примеры некоторых способов построения URL.В разделе «Локатор сборок» на этой странице будут перечислены различные варианты уточнения ваших результатов (один из которых запущен).

Однако я не знаю, как получить информацию об истекших запущенных сборках./ расчетное время с использованием REST API.Я не уверен, возможно ли это.Если бы вы нашли способ сделать это, мне было бы очень интересно прочитать, как!

Удачи!

1 голос
/ 21 апреля 2016

Я понимаю, что вашему вопросу уже более пяти лет, но вы хотели, чтобы

выяснил, какие сборки выполняются в настоящее время, и как далеко они проходят (истекшее время против предполагаемого времени)

Метод, предложенный в принятом ответе , дает только атрибут percentageComplete, который не так полезен без необходимости повторного вызова API.


Это может быть достигнуто путем предоставления параметра запроса полей для URL, например:

serverUrl/httpAuth/app/rest/builds/?locator=running:true&fields=count,build({buildFields})

, где {buildFields} - свойства builds объект.Для этого я использую:

id,buildTypeId,number,status,branchName,startDate,queuedDate,href,running-info

Полный URL-адрес равен

serverUrl/httpAuth/app/rest/builds/?locator=running:true&fields=count,build(id,buildTypeId,number,status,branchName,startDate,queuedDate,href,running-info)

, который возвращает что-то вроде

<builds count="1">
    <build id="128990" buildTypeId="{build type ID}" number="256" status="SUCCESS" branchName="{branch name}" href="/httpAuth/app/rest/builds/id:128990">
        <running-info percentageComplete="6" elapsedSeconds="52" estimatedTotalSeconds="924" currentStageText="{status}" outdated="false" probablyHanging="false"/>
        <queuedDate>20160421T102558+0100</queuedDate>
        <startDate>20160421T105709+0100</startDate>
    </build>
</builds>

, что даст вам полный проценти истекшее / приблизительное общее время в элементе running-info.

Примечание: я использую TeamCity 9;параметр запроса полей , по-видимому, присутствует в документации для TeamCity 5.x-7.x, но выходные данные могут не совпадать.

0 голосов
/ 10 июня 2013

У вас есть вариант использования не API -

* +1002 * [http://teamcity/ajax.html?getRunningBuilds=1]

Так что это не очень хороший вариант, но для меня это очень хорошо!

0 голосов
/ 22 января 2011

Я немного покопался и пост на сайте JetBrain , в котором говорилось, что поддержка бега: true была добавлена ​​для TC6. Документация TeamCity 5.X REST просто ссылается на другую страницу, на которой не указано, что поддерживается в TC5 и что нового в TC6.

РЕДАКТИРОВАТЬ: Эй, Мэтт, я разместил вопросзапрос документации REST, относящейся к TC 5.X .Я знаю, что было бы очень удобно узнать, что именно я могу сделать с REST для версии TeamCity, которую я использую, и подумал, что это может вас заинтересовать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...