gpt4 book ai didi

azure - 在 Azure Devops 中显示拉取请求中的接受标准

转载 作者:行者123 更新时间:2023-12-02 07:56:37 25 4
gpt4 key购买 nike

在 Azure Devops 中查看 PR 时,如果任务/故事的接受标准显示在描述中(例如在提交消息之前),那将是理想的选择。这是为了确保所有必需的功能都已实现,并且所有边缘情况都已考虑在内。看来您需要手动打开工作项才能找到此附加信息。

验收标准能否自动显示在PR 的描述中?

最佳答案

Can the AC be displayed automatically in the PR's description?

简短的回答是

首先,我需要声明,目前没有现成的方法可以满足您的需求。最新sprint-176-update 10 月 1 日刚刚发布时,MS 引入了一项新功能,合并拉取请求时自定义工作项状态。但它仅适用于工作项状态,不适用于其他字段。

要解决此请求,我们可以在目标分支上添加构建验证以调用 REST API Pull Requests - Update使用任务/故事的接受标准更新描述。

PATCH https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests/{pullRequestId}?api-version=6.0

从上面的 REST API URL,我们可以知道,如果我们想要使用 REST API Pull 请求 - 更新,我们需要提供 pullRequestId

predefined variables ,有一个变量 System.PullRequest.PullRequestId,我们可以用它来获取 pullRequestId

获得pullRequestId后,我们可以使用另一个REST API Pull Request Work Items - List获取与拉取请求关联的工作项:

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/workitems?api-version=6.0

我们可以获得工作项ID:

enter image description here

现在,我们可以使用 Work Items - Get Work Item获取接受标准的值:

enter image description here

最后,我们可以使用 REST API Pull 请求 - 更新并更新描述以及任务/故事的接受标准。

下面是我的测试 powershell 脚本:

$PullRequestId = $Env:System_PullRequest_PullRequestId

Write-Host "Current PullRequestId is $PullRequestId"

$url = "https://dev.azure.com/<YourOrganizationName>/<YourProjectName>/_apis/git/repositories/<YourRepoId>/pullRequests/$($PullRequestId)/workitems?api-version=6.0"
$PullRequestWorkItems= Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
} -Method Get

$WorkItemId= $PullRequestWorkItems.value.id

Write-Host This is WorkItems Id: $WorkItemId

$Testurl = "https://dev.azure.com/<YourOrganizationName>/<YourProjectName>/_apis/wit/workitems/$($WorkItemId)?api-version=6.0"
$WorkitemInfo= Invoke-RestMethod -Uri $Testurl -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
} -Method Get

$AcceptanceCriteria= $WorkitemInfo.fields.'Microsoft.VSTS.Common.AcceptanceCriteria'

Write-Host This is Acceptance Criteria info: $AcceptanceCriteria


$UpdatePRurl = "https://dev.azure.com/<YourOrganizationName>/<YourProjectName>/_apis/git/repositories/a<YourRepoId>/pullRequests/$($PullRequestId)?api-version=6.0"

$connectionToken="Your PAT"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))


$headers = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }

$body=@"
{
"description": "$($AcceptanceCriteria)"
}
"@

Write-Host "$url"
$response= Invoke-RestMethod -Uri $UpdatePRurl -ContentType "application/json" -Body $body -headers @{authorization = "Basic $base64AuthInfo"} -Method PATCH

这是测试结果:

enter image description here

关于azure - 在 Azure Devops 中显示拉取请求中的接受标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64392553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com