Azure devops Azure DevOps REST呼叫-如何查找我的身份

Azure devops Azure DevOps REST呼叫-如何查找我的身份,azure-devops,Azure Devops,我们最近从on-prem TFS迁移到了云中的Azure Devops。我正在更新用于自动跟踪工作项的powershell脚本,将它们从api v3移动到v5,并确保我的所有身份验证/端点都正常工作。我有身份验证设置,可以进行一些GET调用,列出存储库,运行WIQL查询,等等。现在我需要使用创建新的工作项 我的身体看起来像是在Prem,TFS 2018,REST版本3.0上工作: [ { "op": "add", "path": "/fields/Syst

我们最近从on-prem TFS迁移到了云中的Azure Devops。我正在更新用于自动跟踪工作项的powershell脚本,将它们从api v3移动到v5,并确保我的所有身份验证/端点都正常工作。我有身份验证设置,可以进行一些GET调用,列出存储库,运行WIQL查询,等等。现在我需要使用创建新的工作项

我的身体看起来像是在Prem,TFS 2018,REST版本3.0上工作:

[
    {
        "op": "add",
        "path": "/fields/System.Title",
        "value": "My PBI title"
    },
    {
        "op": "add",
        "path": "/fields/System.AssignedTo",
        "value": "DOMAIN\\USERNAME"
    },
    {
        "op": "add",
        "path": "/fields/System.AreaPath",
        "value": "My\\Teams\\Path"
    },
    {
        "op": "add",
        "path": "/fields/System.IterationPath",
        "value": "backlog\\2019.03.25"
    }
]
当我发布此正文时,会收到一个400响应代码和一条错误消息,其中指出:“分配给”字段的标识值“DOMAIN\\USERNAME”是未知标识

如果我从我的body语句中排除该属性,我就能够创建工作项,因此我尝试使用不同的域名/姓氏、名/名姓氏来尝试使其工作/将该项分配给我,但我不断收到相同的错误

所以我的下一步是检查API文档,我看到了一个方法,但这需要我输入userDescriptor,我假设它是某种GUID来标识每个用户。。。但我不知道我的是什么

在这一点上,我被难住了。还有一些其他REST端点可以获取概要文件/安全数据,但这对于创建工作项来说似乎过于复杂


您如何使用此REST端点通过云中的Azure Devops创建项目/将其分配给用户

我把键盘又敲了几下后,它开始工作了。主体定义应为:

{
   "op": "add",
   "path": "/fields/System.AssignedTo",
   "value": "LastName, Firstname"
}
所以在我的例子中,文字值是:

{
       "op": "add",
       "path": "/fields/System.AssignedTo",
       "value": "McClure, Brandon"
}
更新:

我在Powershell函数中使用这些REST调用,我通过一个ADSI查询以编程方式获得这些调用,这对大多数人都适用。有些人有非常旧的广告帐户,他们的UPN配置与我们不同,因此我允许用户指定他们自己的值,尽管我的理解是,在所有UPN都符合Azure federated AD的要求后,此ADSI查询将适用于所有人

param([string] $myIdentity = $null)

$dom = $env:userdomain
$usr = $env:username
if([string]::IsNullOrEmpty($myIdentity)){
    Write-Verbose "Getting the identity to set the tasks assigned to based on a ADSI query"
    $myIdentity = ([adsi]"WinNT://$dom/$usr,user").fullname
}
else{
    Write-Verbose "Using the identity you passed in"
}

我把键盘敲了几下后,它就开始工作了。主体定义应为:

{
   "op": "add",
   "path": "/fields/System.AssignedTo",
   "value": "LastName, Firstname"
}
所以在我的例子中,文字值是:

{
       "op": "add",
       "path": "/fields/System.AssignedTo",
       "value": "McClure, Brandon"
}
更新:

我在Powershell函数中使用这些REST调用,我通过一个ADSI查询以编程方式获得这些调用,这对大多数人都适用。有些人有非常旧的广告帐户,他们的UPN配置与我们不同,因此我允许用户指定他们自己的值,尽管我的理解是,在所有UPN都符合Azure federated AD的要求后,此ADSI查询将适用于所有人

param([string] $myIdentity = $null)

$dom = $env:userdomain
$usr = $env:username
if([string]::IsNullOrEmpty($myIdentity)){
    Write-Verbose "Getting the identity to set the tasks assigned to based on a ADSI query"
    $myIdentity = ([adsi]"WinNT://$dom/$usr,user").fullname
}
else{
    Write-Verbose "Using the identity you passed in"
}