共用方式為


將 GitHub 提交、拉取請求、分支和問題連結至 Azure Boards 的工作專案

Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

在本文中,學習如何在將 Azure Boards 專案與 GitHub 存放庫連線之後,將工作項目連結至 GitHub 提交、拉取請求和分支。 您可以使用 #mention 語法來進行認可和分支,或直接從 Azure Boards 工作專案新增 GitHub 認可、提取要求或分支連結。

Note

GitHub 整合支援:

  • Azure DevOps Services:透過適用於 GitHub 的 Azure Boards 應用程式,與 GitHub.com 和 GitHub Enterprise Server 存放庫整合。
  • Azure DevOps Server 2020 和更新版本:僅支援與 GitHub Enterprise Server 存放庫整合。
  • 其他 Git 存放庫:不支援整合。

Prerequisites

Category Requirements
Permissions Azure Boards 專案和 GitHub 存放庫的參與者
專案連線 Azure Boards 專案會連線至 GitHub 存放庫,其中有您要連結或鏈接的提交、合併請求和分支。 如需詳細資訊,請參閱 Azure Boards-GitHub 整合

Note

使用託管 XML 程式模型的專案需要更新工作項目類型,才能檢視開發區段和 GitHub 連結類型。 如需詳細資訊,請參閱 更新選取工作項目類型的 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這樣的工作流程類別匹配。 如果找到相符專案,工作專案就會轉換為該類別下定義的第一個可用狀態。

根據預設,使用 fixfixesfixed 參考的工作項目會轉換為與 已解析 類別相關聯的第一個狀態。 如果目前進程中沒有這類狀態,系統會改為將工作項目轉換為 [已完成 ] 類別中的第一個狀態。

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 組織中定義的專案。

當您使用 AB# 將連結新增至工作專案時,這些連結會出現在提取要求的 [開發 ] 區段中。

GitHub 提取要求開發區段的 AB# 鏈接螢幕快照。

從工作專案建立 GitHub 分支

若要直接從工作專案建立 GitHub 分支,請執行下列步驟:

  1. 從您的面板,尋找您想要從中建立 GitHub 分支的工作專案。

  2. 選取 [工作項目動作] >[新增 GitHub 分支]

    工作專案 [更多動作] 的螢幕快照:選取並醒目提示 [新增 GitHub 分支] 選項。

  3. 在 [ 建立 GitHub 分支] 對話框中,輸入分支名稱,然後選取 GitHub 存放庫和基底分支。

  4. 選取 ,創建

    [建立 GitHub 分支] 對話框的螢幕快照。

    Azure Boards 會在指定的 GitHub 存放庫中建立分支,並將其連結至工作專案。 如需詳細資訊,請參閱 Azure Boards-GitHub 整合

  1. 開啟工作項目,然後移至 [ 連結] 索引標籤

    工作項目表單、鏈接索引標籤、新增問題連結的螢幕快照。

  2. 從 [ 新增連結 ] 對話框中,選取其中一個 GitHub 鏈接類型、選取 GitHub 存放庫、輸入 GitHub 分支的 URL、認可或提取要求,然後選取 [新增連結]。

    在下列範例中,我們會新增 GitHub 提取要求的連結。

    工作項目表單、[連結] 索引標籤、[新增連結] 對話框、已選取 [GitHub 提取要求] 連結類型的螢幕快照。

    Azure Boards 會完成檢查,以確保您已輸入有效的連結。 連結至 GitHub 存放庫 必須連線至 Azure Boards 專案 ,否則驗證會失敗。

Note

如果您使用 Azure DevOps Server 和 GitHub Enterprise Server,則完成 AB# 連結時會有延遲。 我們有一個「推送與提取設計」,以便每小時從 GitHub 事件中提取提交、PR 和問題上的增量變更。

數個事件會自動更新工作專案窗體上的連結,因此您不需要手動建立連結。 這些包括:

GitHub 活動 Action
連結至分支 從分支建立 Pull Request 時,將其自動連結至工作專案。
合併認可 拉取請求合併後,產生的合併提交會自動連結至工作項目。
刪除分支 如果刪除分支(通常是合併之後),其鏈接會自動從工作專案中移除。

工作專案窗體內的 [開發] 區段會列出使用 GitHub 圖示建立的 GitHub 提交和拉取請求的連結。

工作項目表單的螢幕快照,

選擇提供的連結,以在 GitHub 中開啟提交或拉取請求。

檢視面板上的 GitHub 物件

在面板上啟用 GitHub 註解後,您可以快速開啟連結的 GitHub 提交、拉取請求或問題,以取得更多詳細資訊。 如需詳細資訊,請參閱 自定義卡片

顯示 GitHub 連結於工作項目卡片上的面板螢幕截圖。

後續步驟