分享方式:


將 Azure Boards 連線至 GitHub (雲端)

Azure DevOps Services

針對您的軟體開發和 Azure Boards 專案使用 GitHub.com 存放庫來規劃和追蹤您的工作。 線上您的專案和存放庫,讓您的 GitHub 認可和提取要求會連結到 Azure Boards 中的工作專案。

注意

Azure Boards 和 Azure DevOps Services 支援與 GitHub.com 和 GitHub Enterprise Server 存放庫的整合。 如果您想要從內部部署 Azure DevOps Server 連線,請參閱 將 Azure DevOps Server 連線到 GitHub Enterprise Server

必要條件

  • 專案需求: 擁有 Azure DevOps 專案。 如果您沒有專案, 請建立一個專案

  • 權限:

    • 成為 Project Administrators 群組的成員。 如果您已建立專案,則您具有許可權。
    • 身為要連線之 GitHub 存放庫的系統管理員或擁有者。 只要您是這些存放庫的系統管理員,您就可以連線到多個 GitHub 存放庫。

驗證選項

根據您想要連線的 GitHub 平臺,支援下列驗證選項。

GitHub.com

GitHub Enterprise Server

注意

如果您選擇將 GitHub 與 PAT 連線,請在 GitHub 帳戶上設定 PAT 的單一登入 (SSO)。 此設定必須從已啟用安全性判斷提示標記語言 (SAML) SSO 驗證的組織擷取存放庫清單。

將 Azure Boards 連線到 GitHub 存放庫。

  1. 登入您的專案 (https://dev.azure.com/{Your_Organization/Your_Project})。

  2. 選取 [項目設定>][GitHub 連線]。

    開啟 [項目設定>] GitHub 連線的螢幕快照。

  3. 如果這是您第一次從項目連線,請選取 [ 連線您的 GitHub 帳戶 ] 以使用您的 GitHub 帳戶認證。

    第一次使用 GitHub 認證連線的螢幕快照。

    否則,請選擇 [ 新增連線],然後從 [ 新增連線 ] 對話框中選取您的驗證方法。

    當您使用 GitHub 帳戶連線時,請使用 GitHub 認證進行驗證。 若要使用 PAT,請參閱 使用 PAT 新增 GitHub 連線。 如需連線到 GitHub Enterprise Server,請參閱 在 GitHub 中將 Azure DevOps 註冊為 OAuth 應用程式

使用 GitHub 認證新增 GitHub 連線

您最多可以將 500 個 GitHub 存放庫連線到 Azure Boards 專案。

  1. 如果這是您第一次從 Azure Boards 連線到 GitHub,請使用您的 GitHub 認證登入。 選擇您是存放庫管理員的帳戶。

  2. 選取您要連線的 GitHub 帳戶或組織。 只會列出您擁有或身為系統管理員的組織。

    如果組織的所有存放庫都已連線到 Azure Boards,您會看到下列訊息:

    訊息的螢幕快照,其中沒有更多存放庫可連線。

  3. 輸入您的 GitHub 認證。 如果您已啟用雙因素驗證,請輸入 GitHub 所傳送的驗證碼,然後選取 [ 驗證]。 如果沒有,系統會自動辨識您的 GitHub 組織,因為您的 GitHub 帳戶與您的 Azure DevOps Services 帳戶相關聯。

新增 GitHub 存放庫

驗證之後,您可以選取您要連線的存放庫。

  1. [ 新增 GitHub 存放庫 ] 對話框會自動顯示並選取您是所選組織中系統管理員的所有 GitHub.com 存放庫。 取消選取您不想包含在整合中的任何存放庫。

    顯示 GitHub 存放庫的螢幕快照。

    提示

    若要避免非預期的 AB# 提及連結,建議您將 GitHub 存放庫連線到單一 Azure DevOps 組織內的專案。 將相同的 GitHub 存放庫連線到多個 Azure DevOps 組織中的專案可能會導致問題。 如需詳細資訊,請參閱 針對 GitHub 和 Azure Boards 整合進行疑難解答。

    如果所有存放庫都已連線到目前或其他組織,則會顯示下列訊息:

    訊息的螢幕快照,其中沒有更多存放庫可連線。

  2. 進行選取之後,請選取 [ 儲存]。

確認連線

  1. 檢閱顯示的 GitHub 頁面,然後選擇 [ 核准]、[安裝] 和 [授權]。

    顯示確認 GitHub 存放庫的螢幕快照。

  2. 提供您的 GitHub 密碼以確認。

  3. 完成時,您應該會看到已列出所選存放庫的新連線。

已連線存放庫清單的螢幕快照。

若要變更設定或管理 GitHub 的 Azure Boards 應用程式,請參閱 變更 Azure Boards 的存放庫存取權。

使用 PAT 新增 GitHub 連線

建議您使用 GitHub 帳戶認證來連線到您的 GitHub 存放庫。 如果您需要使用 PAT,請執行下列步驟。

提示

當您建立 GitHub PAT 時,請確定您包含下列範圍: repo, read:user, user:email, admin:repo_hook

  1. 選擇 [個人存取令牌]。

    [新增 GitHub 連線] 對話框的螢幕快照,選擇 [個人存取令牌]。

    若要建立 GitHub PAT,請移至 GitHub 開發人員設定 > 個人存取令牌

  2. 輸入 PAT,然後選取 [ 連線]。

    顯示已輸入 PAT 的螢幕快照。

  3. 依照本文稍早選擇存放庫中所述 的程序,選取您要連線至專案的存放庫

  4. 如果這是第一次從 Azure Boards 連線到 GitHub 帳戶或組織,請安裝適用於 GitHub 的 Azure Boards 應用程式。 確認本文稍早的連線

在 GitHub 中將 Azure DevOps 註冊為 OAuth 應用程式

若要使用 OAuth 將 Azure DevOps 與您的 GitHub Enterprise Server 連線,請先將應用程式註冊為 OAuth 應用程式。 如需詳細資訊,請參閱 建立 OAuth 應用程式

註冊 Azure DevOps Services

  1. 登入 GitHub Enterprise 伺服器的入口網站。

    GitHub Enterprise 伺服器的登入螢幕快照。

  2. 開啟 [設定][開發人員設定>>][Oauth 應用程式>][新增 OAuth 應用程式]。

    顯示新 OAuth 應用程式順序的螢幕快照。

  3. 輸入註冊資訊。

    針對首頁 URL,指定組織的組織 URL
    針對授權回 呼 URL,請使用下列模式來建構 URL。

    {Azure DevOps Services Organization URL}/_admin/oauth2/callback

    例如:

    https://dev.azure.com/fabrikam/_admin/oauth2/callback

    顯示要註冊之應用程式的螢幕快照。

  4. 選取 [註冊應用程式]

  5. 您已註冊 OAuth 應用程式的用戶端識別碼用戶端密碼隨即出現。

    已註冊 OAuth 應用程式的用戶端識別碼和用戶端密碼螢幕快照。

在 Azure DevOps Services 中註冊 OAuth 組態

  1. 登入 Azure DevOps Services 的入口網站。

  2. 將 GitHub Enterprise Oauth 組態新增至您的組織。

  3. [組織設定] 中,選取 [Oauth 組態>][新增 Oauth 組態]。

    開啟組織設定、OAuth 設定的螢幕快照。

  4. 輸入您的資訊,然後選取 [ 建立]。

    [OAuth 組態] 對話框。

將 Azure DevOps Services 連線至 GitHub Enterprise Server

重要

若要將 Azure DevOps Services 連線到您的 GitHub Enterprise Server,請確定可從因特網存取您的 GitHub Enterprise Server。 確認 Azure DNS 可以解析 GitHub Enterprise Server 名稱,且您的防火牆允許從 Azure 資料中心 IP 位址進行存取。 若要判斷IP位址範圍,請參閱 Microsoft Azure資料中心IP範圍。 線上問題的常見錯誤訊息如下:

無法解析遠端名稱:『github-enterprise-server.contoso.com』

如果您遇到此錯誤,請檢查伺服器的輔助功能。 如需詳細資訊,請參閱 Azure DNS 常見問題

  1. 選取 [項目設定>][GitHub 連線>][GitHub Enterprise Server] 進行第一次連線。

    第一次連線,選擇 [GitHub Enterprise Server]。

    或者,從 [ 新增 GitHub 連線 ] 對話框,選取 [GitHub Enterprise Server]。

    [新增 GitHub 連線] 對話框的螢幕快照,選擇 [GitHub Enterprise Server]。

  2. 選取驗證方法。

    顯示驗證方法對話框的螢幕快照。

    使用 OAuth 連線

    選擇您在 Azure DevOps Services 中註冊 OAuth 設定的步驟 4 中設定的設定,然後選擇 [連線]。

    [新增 GitHub Enterprise 連線]、[OAuth 連線] 對話框的螢幕快照。

    使用個人存取令牌連線

    輸入 GitHub Enterprise 伺服器的 URL,以及該伺服器所辨識的個人存取令牌認證。 然後選擇 [ 連線]。

    [新增 GitHub Enterprise 連線]、[個人存取令牌連線] 對話框的螢幕快照。

    使用使用者名稱和密碼連線

    輸入 GitHub Enterprise 伺服器的 URL,以及該伺服器所辨識的系統管理員帳戶認證,然後選取 [ 連線]。

    [新增 GitHub Enterprise 連線] 畫面的螢幕快照,[使用者名稱連線] 對話方塊。

  3. 對話框會列出您擁有 GitHub 系統管理許可權的所有存放庫。 您可以在 MineAll 之間切換,以判斷是否有其他項目出現,然後檢查您要新增的。 當完成時,選擇儲存

    列出的存放庫螢幕快照。

    提示

    您只能連線到一個 GitHub 組織下定義的存放庫。 若要將項目連線至另一個 GitHub 組織中定義的其他存放庫,您必須新增另一個連線。

  4. 如果您是第一次從 Azure Boards 連線到 GitHub 帳戶或組織,您也會安裝適用於 GitHub 的 Azure Boards 應用程式。 確認本文稍早的連線

解決連線問題

Azure Boards-GitHub 整合會使用各種驗證通訊協議來維護連線。 變更使用者的許可權範圍或驗證認證,可以撤銷連線至 Azure Boards 的 GitHub 存放庫。

如需適用於 GitHub 之 Azure Boards 應用程式支援的整合概觀,請參閱 Azure Boards-GitHub 整合

支援的驗證選項

下列支援的驗證選項取決於您所連線的 GitHub 平臺:

平台

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • GitHub.com 用戶帳戶
  • 個人存取權杖 (PAT)
  • OAuth
  • PAT
  • 用戶名稱加上密碼

Azure DevOps Server 2020

不適用

  • PAT
  • 用戶名稱加上密碼

Azure DevOps Server 2019

不適用

  • OAuth
  • PAT
  • 用戶名稱加上密碼

注意

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

授與 Azure Boards 組織存取權

如果 Azure Boards 與 GitHub 之間的整合未如預期般運作,請確認您已授與組織存取權。

  1. 從 GitHub 入口網站,從配置檔功能表開啟 [設定 ]。
    開啟設定檔的螢幕快照,選擇 [設定]。

  2. 選取 [整合>授權的 OAuth Apps>Azure Boards] 底下的 [應用程式]。

  3. 在 [組織存取權] 底下,解決可能出現的任何問題。 選取 [授 與] 以將存取權授與任何顯示為擱 存取要求的組織。

    組織存取的螢幕快照,其中含有沒有存取權的組織。

解決存取問題

當與 GitHub 的 Azure Boards 連線失去存取權時,使用者介面中會出現紅色 X 的警示狀態。 將滑鼠停留在警示上方,以查看認證不再有效。 若要修正此問題,請移除連線並建立新的連線。

失敗連線的螢幕快照。

若要解決此問題,請考慮下列專案:

  • 如果連線使用 OAuth

    • Azure Boards 應用程式已拒絕其中一個存放庫的存取權。

    • GitHub 可能無法使用/無法連線。 這可能是因為服務中斷或內部部署的基礎結構/網路問題。 您可以從下列連結檢查服務狀態:

      刪除並重新建立 GitHub 存放庫的連線。 此重新建立的聯機會導致 GitHub 提示您重新授權 Azure Boards。

  • 如果連線使用 PAT:

    • PAT 可能會撤銷或必要的許可權範圍已變更且不足。

    • 使用者可能沒有 GitHub 存放庫的系統管理員許可權。

      重新建立 PAT,並確定令牌的範圍包含必要的許可權: repo, read:user, user:email, admin:repo_hook

解決中斷的 GitHub Enterprise Server 連線

如果您已使用現有的 GitHub Enterprise Server 連線從 Azure DevOps Server 移轉至 Azure DevOps Services,現有的連線可能無法如預期般運作。 GitHub 內提及的工作專案可能會延遲或永遠不會出現在 Azure DevOps Services 中,因為與 GitHub 相關聯的回呼 URL 已不再有效。 請考慮下列解決方案:

  • 拿掉並重新建立連線:移除並重新建立 GitHub Enterprise Server 存放庫的連線。 請遵循從 Azure Boards 連線檔中提供的步驟順序。

  • 修正 Webhook URL:移至 GitHub 的存放庫設定頁面並編輯 Webhook URL,指向已移轉的 Azure DevOps 組織 URL: https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

聯機到多個 Azure DevOps 組織

將 GitHub 存放庫連線至多個 Azure DevOps 組織中的專案,例如 dev.azure.com/Contoso 和 dev.azure.com/Fabrikam,可能會導致 AB# 提及非預期的結果。 工作專案標識碼在 Azure DevOps 組織中並不是唯一的,因此 AB#12 可以參考 Contoso 或 Fabrikam 中的工作專案。 當認可訊息或提取要求中提及工作專案時,兩個組織可能會嘗試連結至具有相符標識符的工作專案,因而造成混淆。

若要避免此問題,請僅將單一 GitHub 存放庫聯機到一個 Azure DevOps 組織。

注意

當您使用適用於 GitHub 的 Azure Boards 應用程式進行連線時,應用程式會防止連線到多個組織。 如果 GitHub 存放庫連線到錯誤的 Azure DevOps 組織,請連絡該組織的擁有者,先移除連線,再將存放庫新增至正確的 Azure DevOps 組織。

更新選取工作項目類型的 XML 定義

如果您的組織使用託管的 XML 或內部部署 XML 程式模型來自定義工作追蹤體驗,並連結到並檢視工作專案表單中開發區段的 GitHub 連結類型,請更新工作專案類型的 XML 定義。

例如,若要將用戶劇本和 Bug 連結至 GitHub 認可,並從 [開發] 區段提取要求,請更新使用者劇本和 Bug 的 XML 定義。

請遵循裝載 XML 進程模型提供的工作順序來更新 XML 定義。 針對每個工作專案類型,尋找 區 Group Label="Development" 段,並在程式代碼語法中新增下列兩行,以支援外部連結類型: GitHub CommitGitHub 提取要求

             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  

更新之後,區段應該會顯示如下。

<Group Label="Development">  
   <Control Type="LinksControl" Name="Development">  
      <LinksControlOptions ViewMode="Dynamic" ZeroDataExperience="Development" ShowCallToAction="true">  
         <ListViewOptions GroupLinks="false">   
         </ListViewOptions>  
         <LinkFilters>  
             <ExternalLinkFilter Type="Build" />  
             <ExternalLinkFilter Type="Integrated in build" />  
             <ExternalLinkFilter Type="Pull Request" />  
             <ExternalLinkFilter Type="Branch" />  
             <ExternalLinkFilter Type="Fixed in Commit" />  
             <ExternalLinkFilter Type="Fixed in Changeset" />  
             <ExternalLinkFilter Type="Source Code File" />  
             <ExternalLinkFilter Type="Found in build" />  
             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  
         </LinkFilters>  
      </LinksControlOptions>  
   </Control>  
</Group>  

常見問題集

問:Azure DevOps 中的部分使用者具有 GitHub 身分識別。 我需要將它們新增為新的 GitHub 使用者到我的組織嗎?

A: 不可以。 要求您的使用者註銷,然後從全新的瀏覽器會話使用其 GitHub 認證登入組織。 此動作會建立其 GitHub 身分識別。

問:我是組織系統管理員,我已啟用邀請 GitHub 用戶的原則。 為什麼我無法邀請新的 GitHub 使用者?

答:變更設定之後,註銷 Azure DevOps,然後從全新瀏覽器會話使用您的 GitHub 認證重新登入組織(dev.azure.com/{organizationName}organizationName.visualstudio.com)。

問:我使用我的 GitHub 認證登入,但為什麼我無法邀請 GitHub 使用者?

答:只有組織或項目系統管理員可以邀請新使用者加入組織。 您可能沒有新增使用者的必要許可權。 請與您的系統管理員合作,以取得必要的許可權,或要求他們為您新增使用者。

下一步