2016-08-09 2 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

Тег, который вы отправили, неверен, вы включаете заголовок элемента работы в "отношениях", а также тип пропущенных отношений. Пожалуйста, попробуйте с следующим содержанием:

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

я все еще получаю ошибку 400 при помощи: workitemClient.createWorkItem ([ { "оп": "добавить", "путь": "/fields/System.Title" , "значение": изменения [I] .comment }, { "оп": "добавить", "путь": "/ отношения/-", "значение": { "отн": «ArtifactLink», «url»: изменения [i] .url } } ], projectName, «Отзыв кода»); – Max

+0

@Max Попробуйте включить поле «Назначено» в контент при создании типа рабочего элемента «Отзыв проверки кода». –

Смежные вопросы