2016-08-09 6 views
0

Das Team versucht, ein benutzerdefiniertes Widget in VSTS zu erstellen, das beim Verwalten der Gruppencodeüberprüfung hilfreich sein kann. Eine der Aufgaben besteht darin, ein neues Arbeitselement mit dem Typ "Code Review Response" zu erstellen und es mit Codeänderungen zu verknüpfen. Aber der folgende Code funktioniert nicht:Erstellen von Arbeitsaufgaben fehlgeschlagen über 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 
       //}); 
      }); 
    } 
}); 

Ich bin mir nicht sicher, ob Arbeit das Problem ist. Es gibt immer einen 400 fehlerhaften Anforderungsfehler und besagt, dass der referenceName nicht null sein kann. Ist irgendetwas mit unserem Code nicht in Ordnung? Der erste Parameter von createWorkItem ist document: VSS_Common_Contracts.JsonPatchDocument. Ich bin mir nicht sicher, wie ich diesen Parameter übergeben soll. Kann mir jemand helfen? Danke vielmals.

Antwort

1

Der von Ihnen gesendete Nachrichtentext ist nicht korrekt, Sie fügen den Titel der Arbeitsaufgabe in den Beziehungsstatus "relations" und den verpassten Relationstyp ein. Bitte versuchen Sie es mit folgendem Inhalt:

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

ich noch die 400-Fehler erhalten, indem mit: workitemClient.createWorkItem ([ { "op": "add", "Pfad": "/fields/System.Title" , "Wert": Änderungen [i] .comment }, { "op": "add", "Pfad": "/ Beziehungen/-", "Wert": { "rel": "ArtifactLink", "URL": ändert [i] .url } } ], Projektname, "Code Review Response"); – Max

+0

@Max Versuchen Sie, das Feld "Zugewiesen an" in den Inhalt aufzunehmen, wenn Sie einen Arbeitselementtyp "Code Review Response" erstellen. –

Verwandte Themen