簡體   English   中英

在 Azure Devops 中,如何創建分支策略以要求在合並 PR 之前解析鏈接的工作項?

[英]In Azure Devops, how can I create a branch policy to require linked work items be resolved before a PR is merged?

我的 QA 團隊要求我在相關工作項被標記為已解決(意味着測試未發現缺陷)之前阻止拉取請求被合並。我已經要求他們團隊的一名成員批准 PR,但他們擔心關於某人在准備好之前不小心批准了錯誤的 PR。 他們還希望這是自動化的,因為他們已經在手動管理工作項。 我不能說我不同意他們的意願。

有一個類似的選項可以在合並 PR 時自動關閉鏈接的工作項,但這對我來說似乎是倒退 - 在工作項得到解決並正確記錄之前,我無法將更改合並到下一個版本中。

我檢查了內置的分支策略,沒有一個符合我的要求。 最接近的選擇是要求鏈接工作項,但這本身並不能阻止在測試完成之前進行合並。

他們要求的是可接受的分支機構政策使用嗎? 還是我們的工作流程與這個平台不兼容?

12月19日更新

對於您希望使用特定工作項狀態驗證拉取請求的這種情況。 我想您可以添加Build Validation的分支策略。

在此處輸入圖像描述

您可以在powershell task中添加下面的 ps 腳本來檢查鏈接到您的目標 pr 的工作項狀態。

# Define organization base url, PAT, linked wit, Target WIT state and API version variables
$orgUrl = "https://dev.azure.com/{yourORG}/{yourPROJECT}"
$pat = ""
$queryString = "fields=system.state&api-version=7.0"
$witID = {YourWitID} 
$TargetState = {yourWITstateForPRapproval}

# Create header with PAT
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($pat)"))
$header = @{authorization = "Basic $token"}

# Get the linked wit state
$projectsUrl = "$orgUrl/_apis/wit/workitems/$witID?$queryString"
$field = Invoke-RestMethod -Uri $projectsUrl -Method Get -ContentType "application/json" -Headers $header | ConvertTo-Json | ConvertFrom-Json | Select-Object -ExpandProperty fields

write-host $field

$witstate = $field.'System.State'

Write-Host $witstate

#Compare the wit state with target approval state

if ($witstate -eq "$TargetState" ) {
    Write-Host "Check Succeeded"
}
else {
    Write-Host ("Check Failed")
    exit 1
}

只有構建成功,你的 pr 才能完成。

================================================ ============

我想您可以檢查Check for linked work items的設置。

您可以使用下面的屏幕截圖設置策略。 您還可以使用rest api設置策略。 "type":{"id":"40e92b44-2fe1-4dd6-b3d8-74a9c21d0c6e"}下面正文中的此類型 id 是設計使然。

POST https://dev.azure.com/fabrikam/fabrikam-fiber-git/_apis/policy/configurations?api-version=7.0

Body
{"type":{"id":"40e92b44-2fe1-4dd6-b3d8-74a9c21d0c6e"}, 
"revision":1,
"isDeleted":false,
"isBlocking":true,
"isEnabled":true,
"settings":{
"scope":[{"repositoryId":"$(yourRepo)",
"refName":"refs/heads/$(yourBranch)",
"matchKind":"Exact"}]}}

在此處輸入圖像描述 在此處輸入圖像描述 在此處輸入圖像描述

目前,沒有內置功能可以直接滿足您的要求。

作為解決方法,對於您的情況,我建議使用 Branch Policy Check 來解決評論問題

在目標分支上啟用此功能。

在此處輸入圖像描述

誰創建了PR,請他留言查看相關WIT待解決。 創建 PR 的人可以使用“#”來提及 WIT

在此處輸入圖像描述

通過檢查要解決的 WIT,PR 批准者可以解決評論以允許合並。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM