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 定義。
使用 AB# 將 GitHub 連結到 Azure Boards 工作項目
從 GitHub 提交、拉取請求或問題中,使用以下語法來建立指向 Azure Boards 工作項目的連結。 將AB#ID輸入到認可訊息的文字中。 或者,對於拉取請求或問題,請在描述中輸入AB#ID。 在評論或拉取請求標題中使用 AB#ID 並不會在工作項中建立連結。
AB#{ID}
例如,AB#125 鏈接到工作項目 ID 125。
您也可以輸入 commit 或 pull request 訊息來過渡工作項目。 系統會辨識 {state} 或 {state category},以及 fix、 fixes、 fixed,並將它套用至後續的 #-mention 專案。
例如,當提取要求描述包含有效的狀態名稱時, Closed AB#1234系統會將參考的工作專案更新為該特定狀態。 如果狀態名稱無法直接辨識,Azure Boards會嘗試將其匹配到像是 Resolved 或 Completed 這類工作流程類別。 如果找到相符專案,工作專案就會轉換為該類別下定義的第一個可用狀態。
預設情況下,參考了 fix、fixes、或 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 組織中定義的專案。
當你在拉取請求描述中使用 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 pull request 會顯示額外的狀態細節,讓你不用在 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 提交、拉取請求或議題,查看更多細節。 如需詳細資訊,請參閱 自定義卡片。