Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 哪个api将为我提供与发布管道相关的工作项?_Powershell_Azure Devops - Fatal编程技术网

Powershell 哪个api将为我提供与发布管道相关的工作项?

Powershell 哪个api将为我提供与发布管道相关的工作项?,powershell,azure-devops,Powershell,Azure Devops,在Azure DevOps中,我有一个生成工件的CI管道。一旦Pull请求获得批准,它就会触发一个发布管道。在发布管道中,我添加了一个PowerShell任务来执行一些RESTAPI函数。我正在尝试获取与此版本关联的所有工作项。为此,我使用了下面的api,但我没有找到页面。有人能告诉我需要调用的正确api,以便获得与我的发布管道相关联的工作项吗 /_api/Release/releases/$releaseid/workitems?api版本=6.0 这里是我试图调用的powershell代码段

在Azure DevOps中,我有一个生成工件的CI管道。一旦Pull请求获得批准,它就会触发一个发布管道。在发布管道中,我添加了一个PowerShell任务来执行一些RESTAPI函数。我正在尝试获取与此版本关联的所有工作项。为此,我使用了下面的api,但我没有找到页面。有人能告诉我需要调用的正确api,以便获得与我的发布管道相关联的工作项吗

/_api/Release/releases/$releaseid/workitems?api版本=6.0

这里是我试图调用的powershell代码段,这里通过在发布管道中的powershell任务中定义预定义变量来调用发布id

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