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