通过 VSO SDK 创建工作项失败
Create work item fail via VSO SDK
团队尝试在 VSTS 上创建自定义小部件,以帮助管理组代码审查。其中一项任务是创建类型为 "Code Review Response" 和 link 的新工作项以进行代码更改。但是下面的代码不起作用:
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 不能为 null。
我们的代码有什么问题吗? createWorkItem 的第一个参数是 document: VSS_Common_Contracts.JsonPatchDocument
。我不太确定如何传入此参数。
任何人都可以帮忙吗?非常感谢。
您发送的 body 不正确,您在 "relations" 中包含了工作项标题并且还遗漏了关系类型。请尝试以下内容:
[
{
"op": "add",
"path": "/fields/System.Title",
"value": "xxxx"
},
{
"op": "add",
"path": "/relations/-",
"value":
{
"rel": "ArtifactLink",
"url": "vstfs:///VersionControl/Changeset/xxx"
}
}
]
团队尝试在 VSTS 上创建自定义小部件,以帮助管理组代码审查。其中一项任务是创建类型为 "Code Review Response" 和 link 的新工作项以进行代码更改。但是下面的代码不起作用:
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 不能为 null。
我们的代码有什么问题吗? createWorkItem 的第一个参数是 document: VSS_Common_Contracts.JsonPatchDocument
。我不太确定如何传入此参数。
任何人都可以帮忙吗?非常感谢。
您发送的 body 不正确,您在 "relations" 中包含了工作项标题并且还遗漏了关系类型。请尝试以下内容:
[
{
"op": "add",
"path": "/fields/System.Title",
"value": "xxxx"
},
{
"op": "add",
"path": "/relations/-",
"value":
{
"rel": "ArtifactLink",
"url": "vstfs:///VersionControl/Changeset/xxx"
}
}
]