Я не могу найти простой способ связаться с командой Microsoft AzureDevops. Я работаю над некоторыми инструментами, которые работают с Azure 2019, и прямо сейчас есть Azure 2020 RC. Microsoft не поддерживает SOAP API в 2019 году. А также в 2020 году для REST Client. У тебя в 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("https://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 https://localhost:81/DefaultCollection.) --->
Microsoft.VisualStudio.Services.WebApi.VssResourceNotFoundException: API resource location 005e26ec-6b77-4e4f-a986-b3827bf241f5 is not registered on https://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 активен.
Да, в настоящее время api графиков недоступен для Azure DevOps Server 2019 и Server 2020.
Вы можете добавить свой запрос на эту функцию на нашем сайте UserVoice , который является нашим основным форумом для предложений по продуктам. После того, как предложение подано, вы можете проголосовать и добавить свои комментарии к этому отзыву. Команда продукта предоставит обновления, если они их просмотрят.
В качестве альтернативы вы можете попробовать использовать azure cli. С помощью расширения Azure DevOps для интерфейса командной строки Azure (CLI) вы можете управлять многими службами Azure DevOps из командной строки.
Информацию о начале работы с Azure DevOps CLI см. В этом документ.
Спасибо за ответ! Для сочетания REST, SOAP и CLI потребуются серьезные изменения в архитектуре нашего программного обеспечения. Но поскольку он все еще работает для SOAP (получение пользователей по старому API на 2020 год), это не имеет большого значения. Мне просто было любопытно, не упустил ли я что-то очевидное. Можно ли отключить SOAP, например, на 2021 год без реализации GraphClient — другой способ привлечь пользователей, чем azure cli? — person Sarseth; 20.08.2020
Is it possible to turn off SOAP for example for 2021 without implementing GraphClient
Я думаю, это зависит от будущего выпуска. — person Sarseth; 20.08.2020