ADO - REST - 找不到获取管道创建者 ID 的方法

问题描述 投票:0回答:1

我需要认识在 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": "\\****"
}

我怎样才能实现这个目标?

感谢您的帮助

rest azure-pipelines ado
1个回答
0
投票

根据您的描述,您需要获取创建 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"
   }

}
© www.soinside.com 2019 - 2024. All rights reserved.