Ошибка создания рабочего элемента через VSO SDK

Команда пытается создать пользовательский виджет на VSTS, который может помочь в управлении проверкой кода группы. Одна из задач - создать новый рабочий элемент с типом "Ответ проверки кода" и связать его с изменениями кода. Но следующий код не работает:

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"
        }
    }
]
Другие вопросы по тегам