2016-08-09 52 views
0

該團隊嘗試在VSTS上創建自定義小部件,以幫助管理小組代碼審閱。其中一項任務是創建類型爲「代碼審查響應」的新工作項並將其鏈接到代碼更改。但下面的代碼不起作用:通過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 
       //}); 
      }); 
    } 
}); 

我不知道工作的問題是。它總是給出一個400錯誤的請求錯誤,並說referenceName不能爲空。 我們的代碼有什麼問題嗎? createWorkItem的第一個參數是document: VSS_Common_Contracts.JsonPatchDocument。我不太確定如何傳入此參數。 任何人都可以幫忙嗎?非常感謝。

回答

1

您發送的內容不正確,您在「關係」中包含工作項目標題,也遺漏了關係類型。請下列內容的嘗試:workitemClient.createWorkItem([ { 「OP」: 「添加」, 「路徑」: 「/fields/System.Title」

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

我還是用得到的400錯誤, 「值」:改變[I]的.comment },{ 「OP」: 「添加」, 「路徑」: 「/關係/ - 」, 「值」: { 「相對」: 「ArtifactLink」, 「url」:changes [i] .url } } ],projectName,「代碼審查回覆」); – Max

+0

@Max嘗試在創建「代碼審閱響應」工作項類型時在內容中包含「分配給」字段。 –

相關問題