在Electron/angularjs应用程序中访问TFS和Visual Studio Online REST Api

3
什么是在Electron中使用AngularJS集成TFS和Visual Studio Online的最佳方法?用户可以提供服务器的用户名、密码和URL,我想获取项目、任务、移动任务状态、创建新项目等。我有一个使用AngularJS和Electron的项目,我想从Microsoft Team Foundation Server(本地安装)和Visual Studio Online获取我的项目、任务等。我找到了有关基本身份验证和oAuth的文档来完成这个任务,但我猜测oAuth只适用于Visual Studio Online,而基本身份验证适用于两者,但不允许我获取个人资料(用户名等)。我看到Microsoft有一个C#库可以完全访问,但要在Electron中使用它,我需要编写一个C# Web服务或类似的东西,如果我直接使用TFS API编写我的应用程序作为独立的工作将会更好。
2个回答

2

VSTS也提供了JavaScript客户端。

您可以在Github Repo上找到它们。


是的。只需提供正确的URL连接,它就可以工作。 - Harshil Lodhi

1

更新

您可以使用不同的处理程序,包括 NodeJS API 中的 Basic/NTML,进行身份验证,例如:

export function getBasicHandler(username: string, password: string): VsoBaseInterfaces.IRequestHandler {
    return new basicm.BasicCredentialHandler(username, password);
}

export function getNtlmHandler(username: string, password: string, workstation?: string, domain?: string): VsoBaseInterfaces.IRequestHandler {
    return new ntlmm.NtlmCredentialHandler(username, password, workstation, domain);
}

更多细节请参考此链接:vsts-node-api-webapi 你所需要做的就是创建一个登录页面来收集用户名/密码,然后将参数传递给处理程序。


能够访问Team Foundation Server (TFS) / Visual Studio Team Services (VSTS)中的数据,通常使用两种方法。已知的方法是使用NuGet包Microsoft.TeamFoundationServer.Client执行此类任务。随着TFS 2015及以上版本/ VSTS的到来,微软引入了可以用于访问相同数据的REST API

在TFS2017上,On-Prem TFS也支持为所有用户创建个人访问令牌。使用@Elmar的javascript代码,您可以从REST API连接、编辑TFS工作项。详细信息请参见此问题:TFS 2015 REST API Authentication

但在TFS2015上,没有“个人访问令牌”。如果您在使用此版本,请创建一个登录页面,并将用户名和密码存储在cookie中。然后使用httpntlm进行此请求。请参考与您类似的此案例:在电子应用程序中使用Windows身份验证连接到TFS

1
@JeanRobert,我找到了一些新的东西,我认为这对TFS和VSTS都适用。你也可以在NodeJS API中使用一些不同的处理程序(例如Basic/NTML)来验证tfs/VSTS。然后需要创建一个登录页面来收集用户名/密码并将参数传递给处理程序。虽然我不熟悉Electron应用程序,但我认为这不是什么难事。详情请查看我的更新答案。 - PatrickLu-MSFT
我找不到如何使用个人访问令牌获取我的项目,因为我找不到如何获取我的用户ID ;x是OAuth的唯一选项吗? - Jean Robert
1
我已经创建了个人访问令牌并连接到VSTS,但在我的项目中,我需要能够将任务分配给我(已登录的用户)。我可以使用个人访问令牌获取已登录的用户吗?文档中说,只有使用oAuth身份验证才能请求配置文件端点。 - Jean Robert
@JeanRobert 个人访问令牌本质上是您使用正常身份验证以安全方式创建的备用密码,PAT 可以具有过期日期、有限范围(例如,只有某些 REST API 或命令行操作是有效的)和特定的 VSTS 帐户。恐怕您无法使用个人访问令牌登录用户。 - PatrickLu-MSFT
好的。我决定使用 .net 中的 WebAPI。它已经很好地运行了,而且更加容易。感谢你们在帮助我方面所做出的所有努力! - Jean Robert
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接