为什么 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 对话。
我正在尝试在我正在编写并尝试在本地 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 对话。