我想從TeamCity中獲取我的構建的數據,並將其放置到我創建的儀表板中。我獲得了大部分數據,但我缺少的是構建的時間戳。我在互聯網上搜索了很多,但無法找到它。在teamcity中,我可以看到所有構建的時間戳,但它在timstamp中不可用。Teamcity API中的構建時間戳
所有建議appriciated。
感謝
我想從TeamCity中獲取我的構建的數據,並將其放置到我創建的儀表板中。我獲得了大部分數據,但我缺少的是構建的時間戳。我在互聯網上搜索了很多,但無法找到它。在teamcity中,我可以看到所有構建的時間戳,但它在timstamp中不可用。Teamcity API中的構建時間戳
所有建議appriciated。
感謝
你GET /app/rest/builds?locator=buildType:...
後,你需要把所有的個體構建的詳細數據運行你感興趣,那很不幸,是多一個REST調用每一個個人的構建。
每個版本的URL格式爲/app/rest/builds/id:21966
,但不要在程序中對其進行硬編碼。相反,當你遍歷所有構建(由你的第一個調用返回)時,取每個構建的屬性和GET。
總結: *得到每個/app/rest/builds?locator=buildType:...
一次 *打造返回的數據集,取其href
再拍REST調用 *爲每個返回的構建細節,時間標記在下面的子元素:queuedDate
,startDate
,finishDate
,triggered
我們已經嘗試過使用這種方式實現儀表板,但發現它的速度太慢(太多的REST調用)。還有一種方法是編寫一個TC插件(使用本機OpenAPI):這將更快,但當然這是更多的工作。
您不需要爲每個構建額外撥打電話,但需要制定您希望返回響應的方式。有一個名爲的查詢字符串參數字段,它允許您定義要恢復的內容。
例如要返回原來的通話開始和結束的數據,你可以添加&欄=版本(的startDate,finishDate)到您的原始請求
/httpAuth/app/rest/buildTypes/id:##BUILD_TYPE_ID##/builds?fields=build(startDate,finishDate)
這將返回這樣的事情
<builds>
<build>
<startDate>20140202T230456+0000</startDate>
<finishDate>20140202T230518+0000</finishDate>
</build>
<build>
<startDate>20140202T224912+0000</startDate>
<finishDate>20140202T224957+0000</finishDate>
</build>
</builds>
的告誡,這是你現在必須專門定義你想要返回。因此,爲了回報所有其他領域和開始/結束日期,這個參數添加到查詢字符串
&fields=build(id,buildTypeId,number,status,state,branchName,defaultBranch,href,webUrl,buildTypeId,startDate,finishDate)
TeamCity的文檔 - Full and Partial responses
希望這有助於
您是否使用REST API或OpenAPI的? – sferencik
即時通訊使用REST API。 – BIBird
你在找什麼時間戳?當獲得'/ app/rest/builds/id:21966'時,我看到'build'元素包含'queuedDate','startDate','finishDate'子元素。如果這些不夠用,'triggered'子元素具有'date'屬性。你剛纔忽略了這些嗎? – sferencik