Powershell 哪个api将为我提供与发布管道相关的工作项?
在Azure DevOps中,我有一个生成工件的CI管道。一旦Pull请求获得批准,它就会触发一个发布管道。在发布管道中,我添加了一个PowerShell任务来执行一些RESTAPI函数。我正在尝试获取与此版本关联的所有工作项。为此,我使用了下面的api,但我没有找到页面。有人能告诉我需要调用的正确api,以便获得与我的发布管道相关联的工作项吗 /_api/Release/releases/$releaseid/workitems?api版本=6.0 这里是我试图调用的powershell代码段,这里通过在发布管道中的powershell任务中定义预定义变量来调用发布idPowershell 哪个api将为我提供与发布管道相关的工作项?,powershell,azure-devops,Powershell,Azure Devops,在Azure DevOps中,我有一个生成工件的CI管道。一旦Pull请求获得批准,它就会触发一个发布管道。在发布管道中,我添加了一个PowerShell任务来执行一些RESTAPI函数。我正在尝试获取与此版本关联的所有工作项。为此,我使用了下面的api,但我没有找到页面。有人能告诉我需要调用的正确api,以便获得与我的发布管道相关联的工作项吗 /_api/Release/releases/$releaseid/workitems?api版本=6.0 这里是我试图调用的powershell代码段
Function GET-WORKRELEASE{
$AzureDevOpsPAT = "wiosoqn4x66brkkcntesttesttesta"
$OrganizationName = "thru"
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }
$orz = "https://dev.azure.com/$($OrganizationName)/thru"
$d=''
$uriAccount = $orz + "/_apis/Release/releases/$releaseid/workitems?api-version=6.0"
$responsewe = Invoke-RestMethod -Uri $uriAccount -Method get -Headers $AzureDevOpsAuthenicationHeader
$d1 = $responsewe.value | ConvertTo-Json
write-host $d1
}
有人能告诉我需要调用的正确api,以便获得与我的发布管道相关联的工作项吗
您可以使用RESTAPI
尽管它适合于根据REST API的名称构建管道,但事实上,它也可以用于发布管道。没有记录获取与发布管道相关的工作项的API,它应该是:
Get: https://vsrm.dev.azure.com/{OrgName}/{ProjectName}/_apis/Release/releases/{ReleaseId}/workitems?baseReleaseId={BaseReleaseId}&%24top=250&artifactAlias={ArtifactAlias}
{OrgName}
:您的组织名称
{ProjectName}
:对应的项目名称
{ReleaseId}
:
{BaseReleaseId}
:具有部署的上一个早期版本,
在某些情况下,BaseReleaseId=ReleaseId-1
。如果ReleaseId为12
,则在大多数情况下,BaseReleaseId为11
{ArtifactAlias}
:
有关更多详细信息,请查看我的
您的PS脚本应更改为:
$AzureDevOpsPAT = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$OrganizationName = "xxxxxx"
$ProjectName = "xxxxxx"
$ReleaseId = "xx"
$BaseReleaseId = "xx"
$ArtifactAlias = "_xxx"
#*********************************************************************************
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }
$orz = "https://vsrm.dev.azure.com/$($OrganizationName)/$($ProjectName)"
$uriAccount = $orz + "/_apis/Release/releases/$($ReleaseId)/workitems?baseReleaseId=$($BaseReleaseId)&%24top=250&artifactAlias=$($ArtifactAlias)"
$responsewe = Invoke-RestMethod -Uri $urlAccount -Method Get -Headers $AzureDevOpsAuthenicationHeader
$d1 = $responsewe.value | ConvertTo-Json
write-host $d1
您只需要配置上面的变量
。************************
问题是什么?剧本不起作用?您是否收到错误消息?您好,我正在寻找正确的api来获取与我的发布管道相关的所有工作项。我现在编辑了这个问题检查这篇文章:是的,我看到了,但是我的需求要求我从powershell脚本调用api。。。我希望我能在powershell中找到方向,因为似乎有多个API要运行
$AzureDevOpsPAT = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
$OrganizationName = "xxxxxx"
$ProjectName = "xxxxxx"
$ReleaseId = "xx"
$BaseReleaseId = "xx"
$ArtifactAlias = "_xxx"
#*********************************************************************************
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }
$orz = "https://vsrm.dev.azure.com/$($OrganizationName)/$($ProjectName)"
$uriAccount = $orz + "/_apis/Release/releases/$($ReleaseId)/workitems?baseReleaseId=$($BaseReleaseId)&%24top=250&artifactAlias=$($ArtifactAlias)"
$responsewe = Invoke-RestMethod -Uri $urlAccount -Method Get -Headers $AzureDevOpsAuthenicationHeader
$d1 = $responsewe.value | ConvertTo-Json
write-host $d1