【问题标题】:Create work item fail via VSO SDK通过 VSO SDK 创建工作项失败
【发布时间】:2016-08-10 08:57:46
【问题描述】:

团队尝试在 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 bad request 错误,并说 referenceName 不能为空。 我们的代码有什么问题吗? createWorkItem 的第一个参数是document: VSS_Common_Contracts.JsonPatchDocument。我不太确定如何传入这个参数。 有人可以帮忙吗?非常感谢。

【问题讨论】:

    标签: typescript tfs azure-devops vssdk


    【解决方案1】:

    您发送的正文不正确,您在“关系”中包含工作项标题,并且还错过了关系类型。请尝试以下内容:

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

    【讨论】:

    • 我仍然得到 400 错误通过使用: workitemClient.createWorkItem([ { "op": "add", "path": "/fields/System.Title", "value": changes[ i].comment }, { "op": "add", "path": "/relations/-", "value": { "rel": "ArtifactLink", "url": changes[i].url } } ], projectName, "代码审查响应");
    • @Max 在创建“代码审查响应”工作项类型时尝试在内容中包含“分配给”字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    相关资源
    最近更新 更多