Azure DevOps 2020 - GraphClient
Azure DevOps 2020 - GraphClient
我找不到与 Microsoft AzureDevops 团队沟通的简单方法。
我正在开发一些可与 Azure 2019 配合使用的工具,现在还有 Azure 2020 RC。 Microsoft 在 2019 年弃用了 SOAP API。对于 REST 客户端,在 2020 年也是如此。
你在 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 处于活动状态,我知道的 Thou Basic 可以用于服务器。
是的,目前图表 api 不适用于 Azure DevOps Server 2019 和 Server 2020。
您可以在我们的 UserVoice 网站上添加对此功能的请求,该网站是我们提供产品建议的主要论坛。建议提出后,您可以对该反馈进行投票并添加您的评论。如果他们查看更新,产品团队将提供更新。
作为替代方案,您可以尝试使用 azure cli。通过 Azure 命令行界面 (CLI) 的 Azure DevOps 扩展,您可以从命令行管理许多 Azure DevOps 服务。
The Azure DevOps Command Line Interface (CLI) is available for Azure
DevOps Server 2020 and Azure DevOps Services.
关于Azure DevOps CLI入门,请参考这个document。
我找不到与 Microsoft AzureDevops 团队沟通的简单方法。 我正在开发一些可与 Azure 2019 配合使用的工具,现在还有 Azure 2020 RC。 Microsoft 在 2019 年弃用了 SOAP API。对于 REST 客户端,在 2020 年也是如此。 你在 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 处于活动状态,我知道的 Thou Basic 可以用于服务器。
是的,目前图表 api 不适用于 Azure DevOps Server 2019 和 Server 2020。
您可以在我们的 UserVoice 网站上添加对此功能的请求,该网站是我们提供产品建议的主要论坛。建议提出后,您可以对该反馈进行投票并添加您的评论。如果他们查看更新,产品团队将提供更新。
作为替代方案,您可以尝试使用 azure cli。通过 Azure 命令行界面 (CLI) 的 Azure DevOps 扩展,您可以从命令行管理许多 Azure DevOps 服务。
The Azure DevOps Command Line Interface (CLI) is available for Azure DevOps Server 2020 and Azure DevOps Services.
关于Azure DevOps CLI入门,请参考这个document。