Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022
本文將說明在您將 Azure Boards 專案連線至 GitHub 存放庫之後,如何將工作項目連結至 GitHub 提交、提取要求、分支和組建。 使用 #mention 語法來處理提交與分支,使用!提及來參考工作項目討論中的 GitHub 拉取請求,或直接從Azure Boards工作項目新增GitHub提交、拉取請求或分支連結。
Note
GitHub 整合支援:
- Azure DevOps 服務:透過 Azure Boards 應用程式將 GitHub.com 和 GitHub Enterprise Server 的儲存庫整合。
- Azure DevOps Server 2020 及以後版本:僅支援與GitHub Enterprise Server 倉庫整合。
- 其他 Git 倉庫:不支援整合。
Tip
你可以在本文的後面部分使用 AI 來協助此任務,或參考 啟用 Azure DevOps MCP Server 的 AI 協助功能 來開始。
Prerequisites
| Category | Requirements |
|---|---|
| 權限 | 你擁有 Azure Boards 專案和 GitHub 倉庫的貢獻者權限。 |
| 專案連結 | 將你的 Azure Boards 專案連接到包含你想連結的提交、拉取請求和分支的 GitHub 倉庫。 更多資訊請參見Azure Boards-GitHub整合。 |
Note
如果你的專案使用 Hosted XML 流程模型,請更新工作項目類型,讓它看到開發區塊和 GitHub 連結類型。 如需詳細資訊,請參閱 更新選取工作項目類型的 XML 定義。
使用 AB# 將 GitHub 連結到 Azure Boards 工作項目
使用 GitHub 文字中的 AB# 提及來連結至 Azure Boards 工作項目。
建立連結:
- 將
AB#{ID}加入到提交訊息、提取要求描述或議題描述中。 - 推送 commit,或儲存提取要求或問題。
- 打開工作項目以確認連結是否出現在 開發 區塊。
在留言或提取要求標題中使用 AB#ID,並不會在工作項目上建立連結。
AB#{ID}
例如,AB#125 鏈接到工作項目 ID 125。
你也可以透過提交或提取要求中的文字來變更工作項目的狀態。 Azure Boards 會識別 {state} 或 {state category} 以及例如 fix、fixes 和 fixed 等關鍵字,然後將該狀態轉換套用至後面接著的 AB# 參照。
例如,當提取要求描述包含有效的狀態名稱時, Closed AB#1234系統會將參考的工作專案更新為該特定狀態。 如果狀態名稱無法直接辨識,Azure Boards會嘗試將其匹配到像是 Resolved 或 Completed 這類工作流程類別。 如果找到相符專案,工作專案就會轉換為該類別下定義的第一個可用狀態。
預設情況下,參考了 fix、fixes、或 fixed 的工作項目將過渡到與 已解決 類別相關的第一個狀態。 如果目前進程中沒有這類狀態,系統會改為將工作項目轉換為 [已完成 ] 類別中的第一個狀態。
Important
您仍然可以連結工作專案和其他分支,但除非提取要求合併至預設分支,否則狀態轉換規則不會套用。
欲了解更多資訊,請參閱 工作流程類別狀態如何在Azure Boards待辦清單與板上使用。
請使用以下僅連結的範例:
| 提交或拉取請求訊息 | Action |
|---|---|
AB#123 |
Links Azure Boards 工作項目 123. 不會發生狀態轉移。 |
Adds a new feature, AB#123. |
Links Azure Boards 工作項目 123. 不會發生狀態轉移。 |
AB#123, AB#124, and AB#126 |
連結 Azure Boards 工作項目 123、124 和 126。 不會發生狀態轉移。 |
Fixing multiple bugs: issue #123 and user story AB#234 |
連結至 GitHub 第 123 號議題及 Azure Boards 工作項目 234。 不會進行轉換。 |
請使用以下連結與轉換的範例:
| 提交或拉取請求訊息 | Action |
|---|---|
Fixed AB#123 |
連結並將工作項目轉換為 已解決 的工作流程狀態類別,如果未定義任何專案,則為 [已完成 ] 工作流程狀態類別。 |
Closed AB#123 |
連結工作專案,並將工作項目轉換為 已關閉 的工作流程狀態。 如果未定義任何轉換,則不會進行轉換。 |
Adds a new feature, fixes AB#123. |
連結並將工作項目轉換為 已解決 的工作流程狀態類別,如果未定義任何專案,則為 [已完成 ] 工作流程狀態類別。 |
Fixes AB#123, AB#124, and AB#126 |
連結至 Azure Boards 工作項目 123、124 和 126。 僅將第一個項目 123 轉移至 已解決 的工作流程狀態類別,若未定義,則轉移至 已完成 工作流程狀態類別。 |
Fixes AB#123, Fixes AB#124, Fixes AB#125 |
連結至 Azure Boards 工作項目 123、124 和 125。 將所有項目轉換為 已解析 的工作流程狀態類別,如果未定義任何類別,則轉換為 已完成 的工作流程狀態類別。 |
Note
如果你將同一個 GitHub 儲存庫連結到兩個或多個 Azure DevOps 組織所定義的專案,你可能會看到意想不到的 AB# 提到連結。 如需詳細資訊,請參閱 解決連線問題。 因此,我們建議你只將 GitHub 倉庫連接到單一 Azure DevOps 組織中定義的專案。
當你在拉取請求描述中使用 AB# 時,這些連結才會可用。 如果你從工作項目直接鏈接到拉取請求,它們就不會顯示。 從描述中移除 AB# 該參考,也會從開發區塊中移除。
從工作項目建立 GitHub 分支
要直接從工作項目建立 GitHub 分支,請使用以下步驟:
從你的看板上找到你想用來建立 GitHub 分支的工作項目。
選擇
工作項目操作>新建 GitHub 分支。
在 Create a GitHub branch 對話框中,輸入分支名稱。 選擇 GitHub 倉庫和基礎分支。
選取 ,創建。
Azure Boards 會在指定的 GitHub 倉庫建立分支,並將其連結到工作項目。 更多資訊請參見Azure Boards-GitHub整合。
將工作項目連結新增至 GitHub 分支、提交或拉取要求
打開你的工作項目,進入 開發 區。
選擇 新增連結。 在每個下拉選單中,選擇你的 link 類型、GitHub repository,以及 GitHub pull request。 你可以在儲存庫中搜尋並深入挖掘,找到並選擇特定的拉取請求或提交,無需複製貼上網址。
選擇 新增連結。
Azure Boards 會檢查你是否輸入了有效的連結。 連結的GitHub倉庫必須連接到Azure Boards專案,否則驗證失敗。
Note
如果你使用 Azure DevOps Server 和 GitHub Enterprise Server,完成 AB# 連結時會有延遲。 這個流程採用「推拉」設計,每小時從 GitHub 活動中拉取提交、PR 和 Issue 的漸進變更。
自動連結更新
有幾個事件會自動更新工作項目表單上的連結,所以你不需要手動建立連結。 這些活動包括:
| GitHub 活動 | Action |
|---|---|
| 連結至分支 | 當從分支建立拉取請求時,會自動連結到工作項目。 |
| 合併認可 | 合併 Pull Request 後,所生成的合併提交會自動連結到工作項目。 |
| 刪除分支 | 如果刪除分支(通常是合併之後),其鏈接會自動從工作專案中移除。 |
從開發區段檢視或開啟連結
工作項目表單中的開發區塊列出了使用
GitHub 圖示建立的連結,以GitHub提交與拉取請求。
選擇連結以開啟 GitHub 中的提交或拉取請求。
GitHub 拉取請求分析
開發區塊的連結 GitHub 拉取請求會顯示額外的狀態細節。 你可以在 GitHub 上不打開 pull request 的情況下評估進度。
拉取請求洞察的前提條件
想查看拉取請求的深入資訊,請進入 GitHub 中的 Azure Boards 應用程式,並接受更新後的檢查讀寫權限。
查看拉取請求狀態細節
打開一個有連結 GitHub 拉取請求的工作項目。
在 開發 區塊,找到連結的拉取請求。 以下狀態資訊顯示在拉取請求連結旁:
- 草稿狀態:顯示該拉取請求是否仍為草稿。
- 審查狀態:顯示拉取請求是否需要審查、是否已核准或是否有變更請求。
- 檢查狀態:顯示 CI 檢查是否通過、失敗或待處理。
將滑鼠移到狀態指示器上可以看到更多細節,或選擇拉取請求連結直接在 GitHub 開啟。
使用 ! 來提及GitHub拉取請求
使用 ! 提及功能,直接在任何工作項目的富文本欄位或討論評論中參考並討論 GitHub 拉取請求。 當你在文字欄位輸入 ! 時,會出現一個選擇器,你可以用它來搜尋並選擇連接的資料庫中的 GitHub 拉取請求。 選取的拉取請求會以可點擊連結的形式插入。
此功能讓您能輕鬆在工作項目描述、接受標準或討論串中引用相關拉取請求,而無需手動複製網址。
查看 YAML 管線的建置狀態(內建於建置中)
當你使用 Azure Pipelines YAML 來建立託管在 GitHub 倉庫的程式碼時,你可以自動建立相關的工作項目上的 Integrated in build 連結。 此功能為 GitHub 倉庫提供建置可追溯性,與 Azure Repos 的體驗相當。
若要啟用此功能:
打開你的 YAML 管線,選擇
更多動作,然後選擇 設定。在 管線設定 對話框中,啟用 「自動連結此建置中的新工作項目」。
建置完成後,每個相關工作項目的開發區會自動顯示「整合於建構」連結,讓你的團隊能完整追蹤從工作項目到建置。
欲了解更多關於設定此設定的資訊,請參閱 「配置管線以支援工作追蹤」。
在板子上檢視 GitHub 物件
當你在看板上啟用 GitHub 註解時,可以快速打開連結的 GitHub 提交、拉取請求或議題,了解更多細節。 如需詳細資訊,請參閱 自定義卡片。
使用 AI 來連結和管理 GitHub 工作
如果你設定 Azure DevOps MCP 伺服器,可以用自然語言描述 GitHub 與工作項目的連結任務,而不必手動瀏覽工作項目表單。
把這些提示當作情境範例。 支援的操作會依照所配置的工具組、擴充套件版本以及你的權限而有所不同。
有些提示可能會回傳指引而不是執行寫入動作,或者根據你啟用的 MCP 工具,可能需要多個提示。
在執行提示之前,請先將例如 <Contoso>、<owner/repo> 和 <sha> 這類預留位置替換為你的實際值。
請使用這個快速的執行與驗證流程:
- 執行表格中的一則提示詞。
- 檢視回應以了解所採取的行動。
- 打開工作項目,並在 開發 區塊確認結果。
- 打開相關的 GitHub 文件,確認預期的連結或更新。
先試試這些提示:
Link work item AB#125 in project <Contoso> to GitHub pull request <owner/repo>#42Link work item AB#312 in project <Contoso> to GitHub commit <owner/repo>@<sha>Summarize all GitHub commits and pull requests linked to work item AB#312 in project <Contoso>
| 任務 | 範例提示 |
|---|---|
| 將工作項目連結到拉取請求 | Link work item AB#125 in project <Contoso> to GitHub pull request <owner/repo>#42 |
| 將工作項目連結到提交 | Link work item AB#312 in project <Contoso> to GitHub commit <owner/repo>@<sha> |
| 將工作項目連結到議題 | Link work item AB#500 in project <Contoso> to GitHub issue <owner/repo>#10 |
| 從工作項目建立一個 GitHub 分支 | Create a GitHub branch named feature/checkout for work item 500 in project <Contoso> from repo <owner/repo> base branch main |
| PR 合併後更新連結的工作項目狀態 | After PR <owner/repo>#42 merges, update linked work item AB#125 to Resolved |
| 與工作相關的大宗連結 | Link all active user stories in area path <Contoso\\Web> to GitHub PR <owner/repo>#42 |
| 尋找未連結的工作項目 | List all closed work items in project <Contoso> from the last 30 days that have no linked GitHub pull request |
| 總結 GitHub 上的工作項目活動 | Summarize all GitHub commits and pull requests linked to work item AB#312 in project <Contoso> |
| 在 PR 中加入 AB# 參照 | Suggest an AB# reference line to add to PR <owner/repo>#42 description that links to work items 125 and 126 |
| 檢查已連結的 PR 狀態 | Show the review and check status of all GitHub pull requests linked to active user stories in project <Contoso> |
Note
如果你用的是 Visual Studio Code,請使用 agent 模式。 Azure DevOps MCP 伺服器操作需要代理模式才能存取 Azure DevOps 資料並執行操作。
AI 輔助連結功能疑難排解
- 如果提示沒有執行,請確認你的 AI 客戶端是否啟用了代理模式。
- 如果提示錯誤且存取錯誤,請確認你的帳號是否能存取 Azure DevOps 專案和 GitHub 倉庫。
- 如果沒有建立連結,請將所有佔位符(例如
<Contoso>、<owner/repo>、<sha>)替換成實際值,然後重新執行提示。 - 如果批次提示失敗,先用單一工作項目重試,然後用較小的批次重複。
- 如果結果仍不符合預期,請在工作項目開發區塊及相關的 GitHub 產物中驗證結果。