[英]TFS 2017 Update 2 - Use REST API to trigger Pull Request Validation Build
TFS 2017 Update 2添加了用於手動啟動請求請求構建的功能。
手動觸發器對於可能需要很長時間才能運行的自動化測試運行很有用,並且在完成拉取請求之前,您只需要運行一次即可
如《 Builds REST API參考》中所見,我現在想觸發validateShelfset Build,方法是按下按鈕
會做。 當我通過http:// MYTFS:8080 / tfs / COLLECTION / PROJECT / _apis / build / builds?api-version = 3.0將JSON Request版本與“ Button按鈕”版本進行比較時,唯一值得注意的區別是
reason: "validateShelveset",
和參數列表。 所以我將JSON更改為:
POST http:// MYTFS:8080 / tfs / COLLECTION / PROJECT / _apis / build / builds?api-version = 3.0
調用POST內容:
{
"definition": {
"id": 2
},
"sourceBranch": "refs/pull/26/merge",
"reason": "validateShelveset",
"parameters": "{\"system.pullRequest.pullRequestId\":\"26\",\"system.pullRequest.sourceBranch\":\"refs/heads/feature/myfeaturebranch\",\"system.pullRequest.targetBranch\":\"refs/heads/develop\"}"
}
但是,雖然Web-UI啟動的構建被視為“拉取請求”構建,其原因是validateShelveset
POST啟動的構建被視為私有。
我什至嘗試了一下(只是為了查看使用TFS是否可以識別出原因),原因是:checkInShelveset,它被TFS正確地識別為這種構建。
基本上,我要做的就是在cmdline界面中模擬“隊列構建”按鈕,當我查看Build API時,似乎好像我在做正確的事。 我缺少明顯的東西嗎? 該文檔未涵蓋如何添加(相當新添加的功能)手動請求請求構建。
根據我的測試,您可以使用帶有PATCH方法的REST API來觸發Pull Request Validation Build。
例如:
PATCH http://server:8080/tfs/DefaultCollection/feb1793b-4d91-4be4-8373-02216ec5c36b/_apis/policy/Evaluations/0891d5a4-fee9-4751-8bc6-ff403c2860f1?api-version=3.2-preview
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.