繁体   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