將 GitHub 提交、拉取請求、分支和問題連結到 Azure Boards 中的工作項目

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 定義

使用 GitHub 文字中的 AB# 提及來連結至 Azure Boards 工作項目。

建立連結:

  1. AB#{ID} 加入到提交訊息、提取要求描述或議題描述中。
  2. 推送 commit,或儲存提取要求或問題。
  3. 打開工作項目以確認連結是否出現在 開發 區塊。

在留言或提取要求標題中使用 AB#ID,並不會在工作項目上建立連結。

AB#{ID}

例如,AB#125 鏈接到工作項目 ID 125。

你也可以透過提交或提取要求中的文字來變更工作項目的狀態。 Azure Boards 會識別 {state}{state category} 以及例如 fixfixesfixed 等關鍵字,然後將該狀態轉換套用至後面接著的 AB# 參照。

例如,當提取要求描述包含有效的狀態名稱時, Closed AB#1234系統會將參考的工作專案更新為該特定狀態。 如果狀態名稱無法直接辨識,Azure Boards會嘗試將其匹配到像是 ResolvedCompleted 這類工作流程類別。 如果找到相符專案,工作專案就會轉換為該類別下定義的第一個可用狀態。

預設情況下,參考了 fixfixes、或 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 組織中定義的專案。

當你在拉取請求描述中使用 加入工作項目連結時,這些連結會出現在 GitHub 拉取請求的 Development 區塊中。 只有在拉取請求描述中使用 AB# 時,這些連結才會可用。 如果你從工作項目直接鏈接到拉取請求,它們就不會顯示。 從描述中移除 AB# 該參考,也會從開發區塊中移除。

GitHub 拉取請求開發區塊 AB# 連結的截圖。

從工作項目建立 GitHub 分支

要直接從工作項目建立 GitHub 分支,請使用以下步驟:

  1. 從你的看板上找到你想用來建立 GitHub 分支的工作項目。

  2. 選擇 工作項目操作>新建 GitHub 分支

    工作項目截圖 更多動作 選取並標亮 新 GitHub 分支選項。

  3. Create a GitHub branch 對話框中,輸入分支名稱。 選擇 GitHub 倉庫和基礎分支。

  4. 選取 ,創建

    建立GitHub分支對話框的截圖。

    Azure Boards 會在指定的 GitHub 倉庫建立分支,並將其連結到工作項目。 更多資訊請參見Azure Boards-GitHub整合

  1. 打開你的工作項目,進入 開發 區。

  2. 選擇 新增連結。 在每個下拉選單中,選擇你的 link 類型GitHub repository,以及 GitHub pull request。 你可以在儲存庫中搜尋並深入挖掘,找到並選擇特定的拉取請求或提交,無需複製貼上網址。

  3. 選擇 新增連結

    截圖顯示新增拉取請求連結到工作項目的五步驟序列。

    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 拉取請求會顯示額外的狀態細節。 你可以在 GitHub 上不打開 pull request 的情況下評估進度。

拉取請求洞察的前提條件

想查看拉取請求的深入資訊,請進入 GitHub 中的 Azure Boards 應用程式,並接受更新後的檢查讀寫權限。

 Azure Boards GitHub應用程式權限對話框的截圖,顯示更新的檢查權限。

查看拉取請求狀態細節

  1. 打開一個有連結 GitHub 拉取請求的工作項目。

  2. 開發 區塊,找到連結的拉取請求。 以下狀態資訊顯示在拉取請求連結旁:

    • 草稿狀態:顯示該拉取請求是否仍為草稿。
    • 審查狀態:顯示拉取請求是否需要審查、是否已核准或是否有變更請求。
    • 檢查狀態:顯示 CI 檢查是否通過、失敗或待處理。

    開發區截圖,顯示一個連結的GitHub Pull Request,並附有已關閉、審查及檢查狀態詳細指示器。

  3. 將滑鼠移到狀態指示器上可以看到更多細節,或選擇拉取請求連結直接在 GitHub 開啟。

使用 ! 來提及GitHub拉取請求

使用 ! 提及功能,直接在任何工作項目的富文本欄位或討論評論中參考並討論 GitHub 拉取請求。 當你在文字欄位輸入 ! 時,會出現一個選擇器,你可以用它來搜尋並選擇連接的資料庫中的 GitHub 拉取請求。 選取的拉取請求會以可點擊連結的形式插入。

此功能讓您能輕鬆在工作項目描述、接受標準或討論串中引用相關拉取請求,而無需手動複製網址。

Gif 示範如何使用「!提及」功能,從工作項目討論中引用 GitHub 拉取請求。

查看 YAML 管線的建置狀態(內建於建置中)

當你使用 Azure Pipelines YAML 來建立託管在 GitHub 倉庫的程式碼時,你可以自動建立相關的工作項目上的 Integrated in build 連結。 此功能為 GitHub 倉庫提供建置可追溯性,與 Azure Repos 的體驗相當。

若要啟用此功能:

  1. 打開你的 YAML 管線,選擇 更多動作,然後選擇 設定

  2. 管線設定 對話框中,啟用 「自動連結此建置中的新工作項目」。

    YAML 管線設定對話框的截圖,顯示在此建置選項中自動連結新工作項目。

建置完成後,每個相關工作項目的開發區會自動顯示「整合於建構」連結,讓你的團隊能完整追蹤從工作項目到建置。

開發區塊中顯示「整合於建置」連結的工作項目截圖。

欲了解更多關於設定此設定的資訊,請參閱 「配置管線以支援工作追蹤」。

在板子上檢視 GitHub 物件

當你在看板上啟用 GitHub 註解時,可以快速打開連結的 GitHub 提交、拉取請求或議題,了解更多細節。 如需詳細資訊,請參閱 自定義卡片

顯示工作項目卡片上的 GitHub 連結的看板截圖。

如果你設定 Azure DevOps MCP 伺服器,可以用自然語言描述 GitHub 與工作項目的連結任務,而不必手動瀏覽工作項目表單。

把這些提示當作情境範例。 支援的操作會依照所配置的工具組、擴充套件版本以及你的權限而有所不同。

有些提示可能會回傳指引而不是執行寫入動作,或者根據你啟用的 MCP 工具,可能需要多個提示。

在執行提示之前,請先將例如 <Contoso><owner/repo><sha> 這類預留位置替換為你的實際值。

請使用這個快速的執行與驗證流程:

  1. 執行表格中的一則提示詞。
  2. 檢視回應以了解所採取的行動。
  3. 打開工作項目,並在 開發 區塊確認結果。
  4. 打開相關的 GitHub 文件,確認預期的連結或更新。

先試試這些提示:

  • 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>
  • 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 產物中驗證結果。

下一個步驟