Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022
當您將工作項目連結至拉取請求(PR)時,您可以在完成PR時自動完成這些工作項目。 或者,您可以指定工作流程狀態,以在合併 PR 時將工作專案轉換至。
這種自動化透過確保工作項目反映程式碼變更的當前狀態而無需手動幹預來簡化您的開發工作流程。
如需詳細資訊,請參閱 建立、檢視和管理提取要求。
必要條件
| 類別 | 要求 |
|---|---|
| 權限 | - 若要檢視、追蹤和編輯工作專案:檢視此節點的工作專案 和 在此節點中編輯工作專案 許可權設定為 [允許]。 根據預設, 參與者 群組具有這些許可權。 如需詳細資訊,請參閱 設定工作追蹤許可權。 - 若要將標籤新增至工作專案:專案層級 建立新的標籤定義 權限設定為 [允許]。 根據預設, 參與者 群組具有此許可權。 |
| 存取層級 |
-
專案成員。 - 若要將新的標籤新增至工作項目,或檢視或關注拉取請求:至少需要 基本 存取權限。 - 若要檢視或追蹤工作專案:至少 項目關係人 存取權。 如需詳細資訊,請參閱 關於存取層級。 - 所有項目成員,包括 讀者 群組中的成員,都可以傳送包含工作項目的電子郵件。 |
自動完成工作項目
若要在合併提取要求時啟用連結工作專案的自動完成,請選取 [合併之後完成連結的工作專案] 複選框,如下圖所示。 系統會將您的選擇儲存為未來 PR 的預設值。
當未發生自動完成時
在下列情況下,系統不會自動將工作專案狀態更新為工作專案類型 (WIT) 的 [完成]、[ 已關閉] 或 [已完成] 類別:
- 工作專案已處於已解決狀態:其 WIT 使用 繼承程式模型的工作專案已處於 [ 已解決 ] 狀態。 在此情況下,系統不會更新狀態。 例如,如果衍生自 Agile 程式的 Bug 處於 已 解決狀態,系統就不會將它 轉換為 Closed。
- 工作專案已完成:工作專案已處於 [已完成] 狀態類別中。 不需要進一步轉換。
- 工作流程規則會防止轉換:WIT 包含防止工作專案前進至下一個狀態的工作流程欄位規則。 例如,規則可能需要您在關閉工作專案時定義另一個欄位。
- 內部部署工作流程設定:針對內部部署和 Azure Boards 裝載的程式模型,您必須修改工作流程,以指定轉換工作流程時要發生的動作 (ACTION 元素) 。 如需詳細資訊,請參閱 變更 WIT 的工作流程,指定動作。
如需自訂工作流程的詳細資訊,請參閱 自訂您的工作追蹤體驗。
指定連結工作專案的工作流程狀態
您可以在提取要求描述中輸入資訊,將工作專案轉換成特定工作流程狀態。 在 #ID前加上所提及工作項目的有效工作流程狀態。 此方法可讓您精確控制合併程式碼變更時工作專案的轉換方式。
下列範例顯示使用者故事的轉換,一個轉換至 已解決 狀態,另一個轉換至 檢閱 狀態。 系統也會將兩個工作標示為「完成」。
狀態轉換的語法
在提取要求描述中使用下列語法模式來指定狀態轉換:
-
Resolves #123- 將工作項目 123 轉換成 [已解決] 狀態 -
Fixes #456- 將工作項目 456 轉換至適當的已完成狀態 -
Closes #789- 將工作項目 789 轉換成「已關閉」狀態 -
Review #101- 將工作項目 101 轉換成 檢閱 狀態
系統會辨識常見的關鍵字,並根據工作專案類型的工作流程設定套用適當的狀態轉換。
停用自動完成相關的工作項目
若要在使用者完成提取要求時停用相關聯工作項目的自動完成,請遵循下列步驟:
- 流覽至 [專案設定>] [存放庫]> 選取您的存放庫。
- 在 [設定] 索引標籤中,關閉 [認可提及工作專案解析] 的切換。
當您停用此設定時,系統不允許在提交註解中使用引用來關閉工作項目(例如,「解決 #123」)。 此設定會影響拉取請求完成和直接提交提及。
最佳做法
使用自動工作專案完成時,請考慮下列最佳做法:
- 檢閱工作專案狀態:啟用自動完成之前,請確定您的工作專案狀態符合小組的工作流程預期。
- 使用特定狀態轉換:當您需要精確控制時,請在提取請求描述中使用狀態轉換語法,而不是依賴預設完成行為。
- 測試工作流程規則:確認任何自訂工作流程規則不會阻止自動狀態轉換。
- 與您的團隊溝通: 確保所有團隊成員都了解自動完成如何影響工作項目追蹤。
故障排除
如果工作專案未如預期自動完成:
- 檢查權限: 確認您具有編輯工作項目所需的權限。
- 檢閱工作流程規則:確保沒有工作流程欄位規則阻止狀態轉換。
- 驗證工作專案連結:確認工作專案已正確連結至提取要求。
- 檢查目前狀態:確認工作專案尚未處於已完成狀態。
- 檢閱儲存庫設定: 確保在儲存庫設定中啟用自動完成。