0

我找不到与 Microsoft AzureDevops 团队沟通的简单方法。我正在开发一些与 Azure 2019 配合使用的工具,现在还有 Azure 2020 RC。微软在 2019 年弃用了 SOAP API。2020 年也弃用了 REST 客户端。你在 2019 年没有完全提供 REST 客户端。GraphClient:那里缺少https://docs.microsoft.com/en-us/rest/api/azure/devops/graph/?view=azure-devops-rest-6.0。这意味着,没有办法获得 UserGraph 和 Users,而是通过 SOAP API 的旧方式。

我认为 Azure 2020 可能会改变它,但实际上不会。

我在最新预览版和最新稳定版中使用 Microsoft.VisualStudio.Services.Client。即:16.173.0-preview 和 16.153.0。手动调用它来发出 REST 请求也无济于事。

我的测试代码:

var uriToServer = new Uri("http://localhost:81/DefaultCollection");
var vssBasicCredential = new VssCredentials(new WindowsCredential(new NetworkCredential("test", "test")));
using var vssConnection = new VssConnection(uriToServer, vssBasicCredential);
using var graphHttpClient = vssConnection.GetClient<GraphHttpClient>();
var listUsersAsync = await graphHttpClient.ListUsersAsync();

我们得到:

handled Exception: System.AggregateException: One or more errors occurred. (API resource location 005e26ec-6b77-4e4f-a986-b3827bf241f5 is not registered on http://localhost:81/DefaultCollection.) ---> 
Microsoft.VisualStudio.Services.WebApi.VssResourceNotFoundException: API resource location 005e26ec-6b77-4e4f-a986-b3827bf241f5 is not registered on http://localhost:81/DefaultCollection.
at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.CreateRequestMessageAsync(HttpMethod method, IEnumerable`1 additionalHeaders, Guid locationId, Object routeValues, ApiResourceVersion version, HttpContent content,
IEnumerable`1 queryParameters, Object userState, CancellationToken cancellationToken, String mediaType)
at Microsoft.VisualStudio.Services.Graph.Client.GraphHttpClient.ListUsersAsync(IEnumerable`1 subjectTypes, String continuationToken, Object userState, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at ConsoleApp1.Program.Main(String[] args) in C:\Users\user\RiderProjects\ConsoleApp1\ConsoleApp1\Program.cs:line 17

与 2019 年相同的问题。当然,其他客户端运行良好。

相同的代码非常适用于 Azure DevOps Cloud - 只需将 VssCredentials 更改为 VssBasicCredentials。如果 SSL 处于活动状态,我知道你基本可以为服务器工作。

4

1 回答 1

1

是的,目前图形 api 不适用于 Azure DevOps Server 2019 和 Server 2020。

在此处输入图像描述

您可以在我们的UserVoice网站上添加您对该功能的请求,这是我们产品建议的主要论坛。提出建议后,您可以对此反馈进行投票并添加您的评论。如果产品团队查看更新,他们将提供更新。

作为替代方案,您可以尝试使用azure cli。使用 Azure 命令行界面 (CLI) 的 Azure DevOps 扩展,您可以从命令行管理许多 Azure DevOps 服务。

Azure DevOps 命令行界面 (CLI)适用于 Azure DevOps Server 2020和 Azure DevOps Services。

关于开始使用 Azure DevOps CLI,请参阅此文档

于 2020-08-20T08:44:33.300 回答