Мне нужно создать нового пользователя в Azure Devops, используя клиентскую библиотеку Python для API-интерфейса REST Azure DevOps.
Я написал следующий код:
from azure.devops.connection import Connection
from azure.devops.v5_0.graph.models import GraphUserCreationContext
from msrest.authentication import BasicAuthentication
credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)
graph_client = connection.clients_v5_0.get_graph_client()
addAADUserContext = GraphUserCreationContext("anaya.john@mydomain.com")
print(addAADUserContext)
resp = graph_client.create_user(addAADUserContext)
print(resp)
Я получил вывод:
{'additional_properties': {}, 'storage_key': 'anaya.john@dynactionize.onmicrosoft.com'}
При вызове метода create_user возникает ошибка:
azure.devops.exceptions.AzureDevOpsServiceError: VS860015: Must have exactly one of originId or principalName set.
На самом деле то, что я должен передать GraphUserPrincipalNameCreationContext в функцию create_user.
Я нашел пример .NET, который делает это в функции с именем AddRemoveAADUserByUPN () : https://github.com/microsoft/azure-devops-dotnet-samples/blob/master/ClientLibrary/Samples/Graph/UsersSample.cs
GraphUserPrincipalNameCreationContext - это интерфейс в этом примере.Но python не поддерживает интерфейсы.
Так как же реализовать это в python?