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 Boards 或 Azure DevOps 專案。 如果您還沒有專案,
請建立一個專案
。
您必須是 Project 管理員 istrators
群組
的成員
。 如果您已建立專案,則您具有許可權。
您必須是 GitHub 存放庫的系統管理員或擁有者才能連線。 只要您是這些存放庫的系統管理員,您就可以連線到多個 GitHub 存放庫。
根據您想要連線的 GitHub 平臺,支援下列驗證選項。
GitHub.com
GitHub Enterprise Server
如果您選擇將 Github 與 PAT 連線,請務必為 GitHub 帳戶上的 PAT 設定單一登錄 (SSO)。 這需要能夠取得已設定安全性聲明標記語言 (SAML) SSO 驗證的組織存放庫清單。
連線 Azure Boards 至 GitHub 存放庫。
登入您的 Azure DevOps 專案。
選取
[項目設定
>][GitHub 連線]。
如果您是第一次從專案建立連線,請選擇
連線 GitHub 帳戶以使用 GitHub 帳戶
認證。
否則,請選擇 [
新增連線
],然後從
[新增 連線]
對話框中選取您的驗證方法。
當您使用 GitHub 帳戶進行連線時,請使用 GitHub 帳戶認證進行驗證。 若要使用 PAT,請參閱
使用 PAT
新增 GitHub 連線。 若要連線到 GitHub Enterprise Server,請參閱
在 GitHub 中將 Azure DevOps 註冊為 OAuth 應用程式
。
使用 GitHub 認證新增 GitHub 連線
您最多可以將 500 個 GitHub 存放庫連線到 Azure Boards 專案。
如果您是第一次從 Azure Boards 連線到 GitHub,系統會要求您使用 GitHub 認證登入。 選擇您是存放庫管理員的帳戶。
選擇您要連線的 GitHub 帳戶或組織。 只會列出您擁有或為系統管理員的組織。
如果組織的所有存放庫都已連線到 Azure Boards,您會看到下列訊息。
輸入您的 GitHub 認證。 如果您已啟用雙因素驗證,請輸入 GitHub 傳送的驗證碼,然後選擇 [
驗證
]。 否則,系統會自動辨識您的 GitHub 組織,因為您的 GitHub 帳戶與您的 Azure DevOps Services 帳戶相關聯。
選擇存放庫
驗證之後,您可以選取要連線的存放庫。
[
新增 GitHub 存放庫
] 對話框會自動顯示並選取您為所選組織系統管理員的所有 GitHub.com 存放庫。 取消選取您不想參與整合的任何存放庫。
我們建議您只將 GitHub 存放庫連線到單一 Azure DevOps 組織中定義的專案。 將相同的 GitHub 存放庫 連線 至兩個以上的 Azure DevOps 組織中定義的專案,可能會導致非預期
AB#
提及連結。 如需詳細資訊,請參閱
針對 GitHub 和 Azure Boards 整合
進行疑難解答。
如果所有存放庫都已連線到目前或其他組織,則會顯示下列訊息。
完成時,選取
儲存
。
檢閱顯示的 GitHub 頁面,然後選擇 [
核准]、[安裝] 和 [授權
]。
提供您的 GitHub 密碼以確認。
完成時,您應該會看到已列出所選存放庫的新連線。
在 GitHub 中將 Azure DevOps 註冊為 OAuth 應用程式
如果您打算使用 OAuth 將 Azure DevOps 與 GitHub Enterprise Server 連線,您必須先將應用程式註冊為 OAuth 應用程式。 如需詳細資訊,請參閱
建立 OAuth 應用程式
。
註冊 Azure DevOps Services
登入 GitHub Enterprise 伺服器的入口網站。
開啟
設定
> 開發人員設定
>
Oauth Apps
>
新增 OAuth 應用程式。
輸入註冊資訊。
針對首頁
URL,指定
組織的組織 URL
。
針對授權回
呼 URL
,請使用下列模式來建構 URL。
{Azure DevOps Services Organization URL}/_admin/oauth2/callback
https://dev.azure.com/fabrikam/_admin/oauth2/callback
選取 [註冊應用程式]
。
您已註冊 OAuth 應用程式的用戶端識別碼
和
用戶端密碼
隨即出現。
若要將 Azure DevOps Services 連線到您的 GitHub Enterprise Server,您的 GitHub Enterprise Server 必須能夠從因特網充分存取。 請確定 Azure DNS 可以解析 GitHub Enterprise 伺服器名稱,而防火牆允許從 Azure 資料中心 IP 位址進行存取。 若要判斷IP位址範圍,請參閱
Microsoft Azure 資料中心IP範圍
。 線上問題存在時遇到的常見錯誤訊息如下:
無法解析遠端名稱:『github-enterprise-server.contoso.com』
如果您遇到此錯誤,請檢查您的伺服器是否可供存取。 如需詳細資訊,請參閱
Azure DNS 常見問題
。
選取
[項目設定>
][GitHub 連線
>
][GitHub Enterprise Server
] 進行第一次連線。
或者,從 [
新增 GitHub 連線
] 對話框,選取
[GitHub Enterprise Server
]。
選取驗證方法。
使用 OAuth 連線
選擇您在 Azure DevOps Services
中註冊 OAuth 設定的步驟 4 中設定
的設定,然後選擇
[連線
]。
使用個人存取令牌 連線
輸入 GitHub Enterprise 伺服器的 URL,以及該伺服器所辨識的個人存取令牌認證。 然後選擇
[連線
]。
使用使用者名稱和密碼 連線
輸入 GitHub Enterprise 伺服器的 URL,以及該伺服器所辨識的系統管理員帳戶認證,然後選取
[連線
]。
對話框會列出您擁有 GitHub 系統管理許可權的所有存放庫。 您可以在 Mine
和
All
之間
切換,以判斷是否有其他項目出現,然後檢查您要新增的。 當完成時,選擇
儲存
。
您只能連線到一個 GitHub 組織下定義的存放庫。 若要將項目連線至另一個 GitHub 組織中定義的其他存放庫,您必須新增另一個連線。
如果您是第一次從 Azure Boards 連線到 GitHub 帳戶或組織,您也會安裝適用於 GitHub 的 Azure Boards 應用程式。
確認本文稍早的連線
。
解決連線問題
Azure Boards-GitHub 整合依賴各種驗證通訊協議來支持連線。 變更使用者的許可權範圍或驗證認證,可能會導致撤銷連線至 Azure Boards 的 GitHub 存放庫。
如需適用於 GitHub 之 Azure Boards 應用程式支援的整合概觀,請參閱
Azure Boards-GitHub 整合
。
支援的驗證選項
根據您想要連線的 GitHub 平臺,支援下列驗證選項。
GitHub.com
GitHub Enterprise Server
使用適用於 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 之間的整合未如預期般運作,請確認您已授與組織存取權。
從 GitHub 入口網站,從配置檔功能表開啟
設定
。
選取
[整合>
授權的 OAuth Apps
>Azure Boards
] 底下的
[應用程式]。
在 [組織存取權
] 底下
,解決可能出現的任何問題。 選取
[授
與] 以將存取權授與任何顯示為擱
置
存取要求的組織。
解決存取問題
當與 GitHub 的 Azure Boards 連線不再具有存取權時,它會在具有 red-X 的使用者介面中顯示警示狀態。 將滑鼠停留在警示上,指出認證不再有效。 若要更正問題,請移除連線並重新建立新的連線。
若要解決此問題,請考慮下列專案:
如果連線使用 OAuth
:
Azure Boards 應用程式已拒絕其中一個存放庫的存取權。
GitHub 可能無法使用/無法連線。 這可能是因為服務中斷或內部部署的基礎結構/網路問題。 您可以從下列連結檢查服務狀態:
GitHub
Azure DevOps
刪除並重新建立 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 組織中的工作專案。 當認可訊息或提取要求中提及工作專案時,如果存在,兩個組織都可以嘗試建立具有相符標識元的工作項目連結。
一般而言,使用者想要
AB#
提及連結至其中一個專案中的單一工作專案。 但是,如果這兩個帳戶中都有相同標識符的工作專案,則會為這兩個工作專案建立連結,這可能會導致混淆。
目前無法解決此問題,因此我們建議您只將單一 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 Commit
和
GitHub 提取要求
。
<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 身分識別。
問:我是一個組織 管理員 istrator,我開啟了可邀請 GitHub 用戶的原則。 為什麼我無法邀請新的 GitHub 使用者?
答:一旦變更設定,請註銷 Azure DevOps,然後從全新的瀏覽器會話登入組織 dev.azure.com/{organizationName}
,或使用 organizationName.visualstudio.com
您的 GitHub 認證登入。
問:我使用我的 GitHub 認證登入,但為什麼我無法邀請 GitHub 使用者?
答:只有組織或專案 管理員 用戶可以邀請新使用者加入組織。 您可能沒有新增使用者所需的許可權。 請與您的系統管理員合作,以取得正確的許可權,或要求他們為您新增使用者。
將 GitHub 認可和提取要求連結至工作專案
安裝及設定 GitHub 的 Azure Boards 應用程式
設定狀態徽章以新增至 GitHub 自述檔
針對 GitHub 和 Azure Boards 整合進行疑難解答
建置 GitHub 存放庫
變更 GitHub 存放庫存取權
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:https://aka.ms/ContentUserFeedback。
提交並檢視相關的意見反應