Actualización 2 de TFS 2017: use la API REST para activar la creación de validation de request de extracción

La Actualización 2 de TFS 2017 agregó la function para iniciar manualmente las comstackciones de requestes de extracción.

Los desencadenadores manuales son útiles para cosas como las ejecuciones de testings automatizadas que pueden tardar mucho time en ejecutarse, y solo necesita ejecutar una vez antes de completar la request de extracción

TFS Update Releasenotes

Como se ve en la Referencia de la API REST de Builds , ahora quisiera activar una compilation validateShelfset, como presionar el button

Queue Build para la validación de solicitud de extracción

haría. Cuando comparé mis comstackciones JSON Request con las comstackciones "Button pressed" a través de http: // MYTFS: 8080 / tfs / COLLECTION / PROJECT / _apis / build / builds? Api-version = 3.0, la única diferencia notable fue

reason: "validateShelveset", 

y la list de parameters. Así que cambié mi JSON a:

POST http: // MYTFS: 8080 / tfs / COLLECTION / PROJECT / _apis / build / builds? Api-version = 3.0

Llamar al contenido 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\"}" } 

Pero mientras que las construcciones iniciadas en la UI web se ven como comstackciones Pull Request, y tienen la razón validateShelveset

Pull Request Build

las construcciones iniciadas POST se ven como privadas.

enter image description here

Incluso intenté (solo para ver si el uso del campo de razón sería reconocido por TFS) el motivo: checkInShelveset, que TFS reconoció correctamente como tal compilation.

Básicamente, todo lo que quiero hacer es emular el button "Construir queue" en una interfaz de línea de command, y cuando miro la API de compilation parece que estoy haciendo lo correcto; ¿Me estoy perdiendo algo obvio? La documentation no cubre cómo agregar las comstackciones de request de extracción (nueva funcionalidad añadida).

Según mi testing, puede usar la API REST con el método PATCH para activar la compilation de validation de petición de extracción.

  1. Use las herramientas de seguimiento de API como Fiddler para rastrear API.
  2. Activar la compilation de validation de request de extracción con el método PATCH usar la API de REST rastreada (invocar directamente la API de REST, no es necesario proporcionar el contenido de JSON):

p.ej:

 PATCH http://server:8080/tfs/DefaultCollection/feb1793b-4d91-4be4-8373-02216ec5c36b/_apis/policy/Evaluations/0891d5a4-fee9-4751-8bc6-ff403c2860f1?api-version=3.2-preview 

enter image description here