2016-08-09 5 views
0

L'équipe essaie de créer un widget personnalisé sur VSTS qui peut aider à gérer l'examen du code de groupe. L'une des tâches consiste à créer un nouvel élément de travail avec le type "Code Review Response" et à le lier aux modifications de code. Mais le code suivant ne fonctionne pas:Création d'un élément de travail échoué via VSO SDK

import WorkitemRestClient = require("TFS/WorkItemTracking/RestClient"); 
var workitemClient = WorkitemRestClient.getClient(); 

var c = VSS.getWebContext(); 

import VersionCtrlRestClient = require("TFS/VersionControl/TfvcRestClient"); 
var versionCtrlClient = VersionCtrlRestClient.getClient(); 

versionCtrlClient.getChangesets(c.project.name) 
.then(changesets => { 
    for (var i = changesets.length - 1; i >= 0; i--) { 
     var content = $("#content"); 
     content.append("<pre>" + JSON.stringify(changesets[i].comment, null, "\t") + "</pre>"); 

     workitemClient.createWorkItem([{ 
      "op": "add", 
      "path": "/relations/-", 
      "value": { 
       "rel": "", 
       "title": "xxxx", 
       "url": changesets[i].url 
      } 
     }], c.project.name, "Code Review Response") 
      .then(workitem => { 
       //workitem.relations.push({ 
       // "attributes": { "key": [] }, 
       // "rel": "", 
       // "title": "", 
       // "url": changesets[i].url 
       //}); 
      }); 
    } 
}); 

Je ne suis pas sûr que le travail est le problème. Il donne toujours une erreur de 400 requêtes incorrectes et dit que le referenceName ne peut pas être nul. Y at-il un problème avec notre code? Le 1er paramètre de createWorkItem est un document: VSS_Common_Contracts.JsonPatchDocument. Je ne suis pas sûr de savoir comment transmettre ce paramètre. Quelqu'un peut-il aider à ce sujet? Merci beaucoup.

Répondre

1

Le corps que vous avez envoyé est incorrect, vous incluez le titre de l'élément de travail dans les relations et le type de relation manquée. S'il vous plaît essayez avec le contenu suivant:

[ 
    { 
     "op": "add", 
     "path": "/fields/System.Title", 
     "value": "xxxx" 
    }, 
    { 
     "op": "add", 
     "path": "/relations/-", 
     "value": 
     { 
      "rel": "ArtifactLink", 
      "url": "vstfs:///VersionControl/Changeset/xxx" 
     } 
    } 
] 
+0

je reçois toujours l'erreur 400 en utilisant: workitemClient.createWorkItem ([ { "op": "ajouter", "chemin": "/fields/System.Title" , "valeur": modifications [i] .comment }, { "op": "ajouter", "chemin": "/ relations/-", "valeur": { "rel": "ArtifactLink", "url": changements [i] .url } } ], projectName, "Code Review Response"); – Max

+0

@Max Essayez d'inclure le champ "Affecté à" dans le contenu lorsque vous créez un type d'élément de travail "Code Review Response". –