簡體   English   中英

TFS 2017更新2-使用REST API觸發請求請求驗證構建

[英]TFS 2017 Update 2 - Use REST API to trigger Pull Request Validation Build

TFS 2017 Update 2添加了用於手動啟動請求請求構建的功能。

手動觸發器對於可能需要很長時間才能運行的自動化測試運行很有用,並且在完成拉取請求之前,您只需要運行一次即可

TFS更新發行說明

如《 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。

  1. 使用Fiddler等API跟蹤工具來跟蹤API。
  2. 使用跟蹤的REST API觸發使用PATCH的Pull Request Validation Build方法(直接調用REST API,無需提供JSON內容。):

例如:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM