为什么 vsts-node-api 总是 return 无效资源 - 401?

Why does vsts-node-api always return Invalid Resource - 401?

我正在尝试在我正在编写并尝试在本地 tfs2017 上使用的自定义构建任务中使用 vsts-node-api 包。我利用了 github 存储库中的一些示例代码,发现它 returns 是一个无效资源错误。在 VSCode 中进行一些调试,然后向其余代码添加一些调试日志记录,我发现其余代码调用 returns 401。错误发生在我获取 WebApi 然后尝试连接后。

我尝试使用 PAT 处理程序和 NtlmHandler,但没有成功。如果我通过浏览器访问 URI,我会成功返回 JSON。任何帮助将不胜感激。

export async function getWebApi(pwd:string): Promise<vm.WebApi> {
    return new Promise<vm.WebApi>(async (resolve, reject) => {
        try {
            console.log("in the common getter");
            let serverUrl = 'https://mylocalserver/tfs/mycollection';
            let token = ' my PAT on the server, that has full access ';
            let authHandler = vm.getPersonalAccessTokenHandler(token);      
            let option = {
            ignoreSslError: true
             };


            let vsts: vm.WebApi = new vm.WebApi(serverUrl, authHandler,options);
            console.log("got web api?");
            let connData: lim.ConnectionData = await vsts.connect();
            console.log('Hello ' + connData.authenticatedUser.providerDisplayName);
            resolve(vsts);
        }
        catch (err) {
            console.log("error in get api " + err.message);
            reject(err);
        }
    });

谢谢

看起来 this response from the VSTFS team 是正确的选择。

TLDR; 为每个构建生成一个持有者 OAuth 令牌以与 VSTS 对话。