当试图创建TFS扩展时,Visual Studio Team Services(VSO)SDK getProjectInfo失败
问题描述:
当实现TFS扩展Widget时,我们的团队尝试使用一些VSO API来确定当前版本控制工具是TFVC还是Git。我们发现有一个API在VersionCtrlRestClient
可以返回项目信息。但是下面的代码总是失败,出现401 NOT AUTHORIZED错误。当试图创建TFS扩展时,Visual Studio Team Services(VSO)SDK getProjectInfo失败
import VersionCtrlRestClient = require("TFS/VersionControl/TfvcRestClient");
versionCtrlClient.getProjectInfo("MyProjectName")
.then(projectInfo => {
var cont = $("#content");
cont.append("<pre>" + "TFVC---" + projectInfo.supportsGit + "</pre>");
cont.append("<pre>" + "GIT ---" + projectInfo.supportsGit + "</pre>");
cont.append("<pre>" + "GIT ---" + projectInfo.defaultSourceControlType + "</pre>");
});
我们的扩展已经注册到下面的范畴,它是确定调用API来查询从versionCtrlClient
代码更改。
"scopes": [ "vso.profile", "vso.work", "vso.work_write", "vso.code", "vso.code_write", "vso.code_manage" ]
有谁知道问题是什么以及如何使API调用“AUTHORIZED”?
PS。在getProjectInfo
的API文档,据说
* [Obsolete - Use the Projects API instead] Retrieve the version control information for a given Team Project
但我们在哪里可以找到新的API来代替它???
答
有关Project API的文档位于:CoreHttpClient2_2。
要获取版本控制信息,可以使用带有includeCapabilities选项的getProject()方法。它将返回包含版本控制信息的IPromise。
capabilities:{[key:string]:{[key:string]:string}}。该项目具有一套 功能(例如流程模板&版本 控制)。