我需要认识在 ADO 中创建管道的人
https://dev.azure.com/mycompany/myproject/_apis/pipelines/***?api-version=7.1
我得到了除了“创建者”字段之外的所有内容
{
"_links": {
"self": {
"href": "https://dev.azure.com/****/****/_apis/pipelines/****?revision=**"
},
"web": {
"href": "https://dev.azure.com/****/****/_build/definition?definitionId=****"
}
},
"configuration": {
"path": "azure-pipelines.yml",
"repository": {
"id": "*******************",
"type": "***************"
},
"type": "yaml"
},
"url": "https://dev.azure.com/****/****/_apis/pipelines/****?revision=**",
"id": ***,
"revision": **,
"name": "****",
"folder": "\\****"
}
我怎样才能实现这个目标?
感谢您的帮助
根据您的描述,您需要获取创建 Pipeline 的用户。
为了满足您的要求,您可以使用 Rest API:定义 - 获取定义修订版
GET https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}/revisions?api-version=7.1
在响应中,您可以检查修订值为1的响应,其中更改的用户(
changedBy
)对应于创建管道的用户。
例如:
"value": [
{
"revision": 1,
"name": "txx",
"changedDate": "2024-10-15T14:41:59.987Z",
"changeType": "add",
"definitionUrl": "xx",
"changedBy": {
"displayName": "xxx",
"url": "xx",
.....
"id": "dd61a310-16c1-6ca5-a217-f243df542c22",
"uniqueName": "xx",
"imageUrl": "xx",
"descriptor": "msa.ZGQ2MWEzMTAtMTZjMS03Y2E1LWEyMTctZjI0M2RmNTQyYzIy"
}
},
]
PowerShell 示例:
$token = "PAT"
$BuildDefinitionID = PipelineID
$OrgName= "OrganizationName"
$ProjName= "ProjectName"
$GetBuilddefinitionurl="https://dev.azure.com/$($OrgName)/$($ProjName)/_apis/build/definitions/$($BuildDefinitionID)/revisions?api-version=7.1"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$GetBuildRevisions= Invoke-RestMethod -Uri $GetBuilddefinitionurl -Headers @{Authorization = "Basic $token"} -Method Get -ContentType application/json
foreach($revision in $GetBuildRevisions.value)
{
if($revision.revision -eq "1")
{
$PipelineCreatorID = $revision.changedBy.id
$PipelineCreatorName= $revision.changedBy.uniqueName
echo "Creator ID: $PipelineCreatorID ; Creator Name: $PipelineCreatorName"
}
}