共用方式為


將 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 存放庫:不支援整合。

Prerequisites

Category Requirements
權限 Contributor 參與 Azure Boards 專案與 GitHub 倉庫的貢獻者。
專案連結 Azure Boards 專案連接至 GitHub 儲存庫,其中包含你想要建立連結的提交紀錄、拉取請求和分支。 更多資訊請參見Azure Boards-GitHub整合

Note

要查看開發區塊及 GitHub 連結類型,使用託管 XML 流程模型的專案需要更新工作項目類型。 如需詳細資訊,請參閱 更新選取工作項目類型的 XML 定義

從 GitHub 提交、拉取請求或問題中,使用以下語法來建立指向 Azure Boards 工作項目的連結。 將AB#ID輸入到認可訊息的文字中。 或者,對於拉取請求或問題,請在描述中輸入AB#ID。 在評論或拉取請求標題中使用 AB#ID 並不會在工作項中建立連結。

AB#{ID}

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

您也可以輸入 commit 或 pull request 訊息來過渡工作項目。 系統會辨識 {state}{state category},以及 fixfixesfixed,並將它套用至後續的 #-mention 專案。

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

預設情況下,參考了 fixfixes、或 fixed 的工作項目將過渡到與 已解決 類別相關的第一個狀態。 如果目前進程中沒有這類狀態,系統會改為將工作項目轉換為 [已完成 ] 類別中的第一個狀態。

Important

您仍然可以連結工作專案和其他分支,但除非提取要求合併至預設分支,否則狀態轉換規則不會套用。

欲了解更多資訊,請參閱 工作流程類別狀態如何在Azure Boards待辦清單與板上使用

檢閱下列範例表格:

提交或拉取請求訊息 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 和 126。 將所有項目轉換為 已解析 的工作流程狀態類別,如果未定義任何類別,則轉換為 已完成 的工作流程狀態類別。
Fixing multiple bugs: issue #123 and user story AB#234 連結至 GitHub 第 123 號議題及 Azure Boards 工作項目 234。 不會進行轉換。

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 pull request 會顯示額外的狀態細節,讓你不用在 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 連結的看板截圖。

後續步驟