如何使用 vso-node-api (VSTS) 创建共享查询文件夹?

How to create a Shared Query Folder using the vso-node-api (VSTS)?

在 VSTS Rest API 中,有一份文档向我展示了如何 create a folder。具体来说,我想在 Shared Queries 文件夹中创建一个文件夹。看来我可以用 REST API.

我想对 VSTS 节点 API (vso-node-api) 做同样的事情。我能找到的最接近的类似函数是 WorkItemTrackingApi.createQuery。这是正确使用的功能吗?

当我尝试使用此功能时,出现错误:

Failed request: (405)

这似乎很奇怪,因为 "Method Not Allowed" 错误在这里似乎不是正确的错误。换句话说,我不是决定使用哪种方法 (GET/POST/...etc) 的人,我只是调用 VSTS 节点 API 的函数,它应该使用正确的 HTTP 请求方法。

我认为如果我的请求有问题(比如提供错误 parameters/data),错误代码 would/should 会有所不同。

但是,如果 VSTS 不喜欢我随请求提供的数据,我不会感到惊讶。我写了下面的测试函数:

async function createQueryFolder (QueryHeirarchyItem, projectId, query) {
  let result = await (WorkItemTrackingApi.createQuery(QueryHeirarchyItem, projectId, query))
  return result
}

我设置了一些变量并调用了函数:

let projectID = properties.project // A previously set project ID that works in other API calls
let QueryHeirarchyItem = {
    isFolder: true,
    name: 'Test Shared Query Folder 1'
}
try {
    let result = await createQueryFolder(QueryHeirarchyFunction, projectID, '')

请注意,我为查询提供了一个空白字符串 - 当我只想创建一个文件夹时,我不知道该提供什么。

所以,我认为我的方法可能有很多问题,而且如果我的请求参数错误,也许我应该收到 400 错误? 405 让我相信 VSTS 节点 API 正在进行底层 VSTS REST API 不理解的 REST 调用。

对于 createQueryFolder 的第三个参数,您应该指定要在其中创建新文件夹的文件夹路径

比如你想在Shared Queries下创建一个文件夹Test Shared Query Folder 1,你应该将createQueryFolder的参数指定为:

let result = await createQueryFolder(QueryHeirarchyFunction, projectID, 'Shared Queries')