連接你的 GitHub 倉庫,讓你的代理程式能讀取原始碼、搜尋錯誤、建立問題、觸發工作流程,並將部署與事件比對。
小提示
快速概述
- Code Access 提供你的代理程式原始碼、IaC 和設定檔作為調查上下文。
- GitHub Connector 支援問題、PR 及工作流程操作。
- GitHub MCP提供完整的GitHub工具存取及治理控制。
- 請使用
OAuth 、PAT ,或BYO GitHub App 。 這三者都可在github.com上運作。 GitHub Enterprise Cloud (<tenant>.ghe.com) 需要 BYO App。
你的原始碼、基礎架構定義、部署設定、技能和跑手冊都放在 GitHub 上。 當您的 Agent 可以讀取這些成品時,調查會從一般疑難排解轉為根本原因分析,並參考確切檔案、確切認可和確切組態變更。
你的代理如何使用 GitHub 連接器
Azure SRE 代理軟體以三種方式連接 GitHub,每種方式都有不同的用途:
| 連接類型 | 設定位置 | 你的代理人能得到什麼 |
|---|---|---|
| 程式碼存取 | 建置工具>程式碼存取權 | 程式碼搜尋、依路徑/分支讀取檔案、錯誤與原始碼關聯、語意程式碼搜尋 |
| GitHub 連接器 | 建置器 > 連接器 > 新增連接器 | 建立/列出問題、開啟/合併 PR、觸發並追蹤 GitHub Actions 工作流程 |
| GitHub MCP | 建置器 > 連接器 > 新增連接器 | 透過 MCP 提供完整的 GitHub 工具目錄,包含審核政策與工具選擇控制 |
你可以在同一個代理上使用多種連線類型。 每個版本都有不同的執行時功能。
GitHub 連接器的認證方法
與代理程式執行的功能分開設定,選擇它要如何向 GitHub 驗證身分。 有三種方法可用,適用於所有連線類型。
| 認證方法 | 運作方式 | 支援的主機 | 最適合用於 |
|---|---|---|---|
| OAuth | 請在瀏覽器彈窗中以您的 GitHub 帳號登入 | github.com |
快速互動設定(限制:每位代理人 10 個代幣) |
| PAT | 提供具有 repo 範圍的細粒度個人存取權杖 |
github.com |
服務帳號、非互動環境 |
| 自備 GitHub 應用程式 | 註冊你自己的 GitHub 應用程式,並將私鑰儲存在 Azure Key Vault 裡 |
github.com 與 <tenant>.ghe.com |
企業治理、EMU 環境、GitHub 企業雲 |
對於 github.com,這三種方法都能在所有連接類型上運作。 對於 GitHub Enterprise Cloud 主機 (<tenant>.ghe.com),只能使用 BYO GitHub App。
依授權類型劃分的權限
| 運算 | OAuth 或 PAT 最低要求 | GitHub 應用程式最低要求 |
|---|---|---|
| 儲存庫中繼資料與複製/讀取 |
repo 用於私人存放庫,public_repo 用於僅公開存取 |
儲存庫 元資料:已閱讀 , 內容:已閱讀 |
| 列出/建立議題 | OAuth/PAT 的可發行 repo 範圍 | 儲存庫議題:視需要讀取/寫入 |
| 提取要求作業 | OAuth/PAT 的具備 PR 功能存放庫範圍 | 儲存庫提取要求:視需要讀取/寫入 |
小提示
OAuth 代幣會自動更新
GitHub OAuth 代幣約八小時後會過期,但代理會利用 20 分鐘的緩衝區自動刷新。 每次更新都會產生一個新的更新代幣,形成一個自我維持的續約鏈,持續約六個月。 您的連接器能在長時間調查和夜間排程任務中保持連線,無需手動登入。
此自動刷新 僅適用於 OAuth 連線。 PAT 連接需要手動轉令牌。 對於 BYO GitHub 應用程式連線,必要時在 Azure Key Vault 中輪換私鑰。
當你需要重新認證時:如果刷新令牌過期(約六個月)、你撤銷了GitHub應用程式授權,或你的連接器是在版本 26.2.247.0 之前設定的(一次重新認證會儲存刷新令牌並啟用自動刷新)。
代理程式能用 GitHub 連接器做什麼
原始碼分析能力
- 在所有連接的倉庫中搜尋程式碼。
- 透過路徑和分支讀取檔案內容。
- 將錯誤與原始碼關聯:將 Azure 資源錯誤映射到特定檔案和行號。
- 語意代碼搜尋:利用自然語言查詢尋找與事件相關的代碼。
- 識別 IaC 檔案:在您的存儲庫中偵測 Bicep、Terraform 和 ARM 範本。
問題和提取要求管理
- 建立問題,並指定標題、正文、標籤和負責人。
- 對問題和提取要求留言,包括自動關閉關鍵字。
- 透過更改標題、正文、標籤或狀態來修改問題。
- 擷取 Dependabot 警報 以檢視安全性漏洞。
工作流程自動化
- 觸發 GitHub Actions 工作流程以分派 Canary 或生產部署。
- 追蹤工作流程執行作業,以監控已派送工作流程的狀態。
- 檢查 PR 合併狀態 ,確認拉取請求是否已合併。
GitHub 企業雲
使用 BYO GitHub App 連線到 GitHub Enterprise Cloud (<tenant>.ghe.com) 上裝載的存放庫。 代理程式會使用您應用程式的私密金鑰(儲存在 Azure Key Vault 中),為每個存放庫建立短期有效的安裝權杖。
請確認您已備妥:
- 一個GitHub應用程式,建立在你的 GHE 實例上,擁有 Contents: Read-only 權限。
- 應用程式的私鑰會以秘密形式儲存在 Azure Key Vault 裡。
- 為 Agent 的受控識別授與保存庫上的金鑰保存庫秘密使用者角色。
完整設定指南請參見 Connect GitHub Enterprise Cloud repositories。
將同一儲存庫配置為多條路徑
在多個 GitHub 路徑中配置同一個倉庫。 每條路徑服務不同的執行時工作。
| 劇本 | 建議方法 |
|---|---|
| 需要程式碼脈絡以及議題相關操作 | 設定程式碼存取,並啟用 GitHub 連接器或 GitHub MCP |
| 只需要廣泛的 MCP 工具目錄 | 只使用 GitHub MCP |
需要企業主機 (<tenant>.ghe.com) |
透過代碼存取使用 GHE BYO 應用程式 |
| 需嚴格遵守連接器契約 | 使用 GitHub 連接器 |
限制與約束
| 資源 | 指導 |
|---|---|
| Hosts | 個別設定每個主機 (github.com, <tenant>.ghe.com) |
| 驗證紀錄 | 以主機為範圍;中斷其中一台主機的連線,不會中斷另一台主機的連線 |
| GitHub Enterprise Cloud 認證 | 僅限 BYO 應用程式 |
| BYO 應用程式的 金鑰保存庫 需求 | 私鑰必須存放在 金鑰保存庫 中,且可由代理身份讀取 |
Troubleshooting
| 癥狀 | 可能的原因 | 修復 |
|---|---|---|
| Code Access repo 列顯示 失敗,但問題查詢仍然有效 | 不同端點或時間點健康情況檢查失敗 | 重新測試程式碼存取連線並驗證 repo 元資料權限 |
| BYO 應用程式驗證失敗 | 用戶端 ID、私鑰 URI 或應用程式安裝範圍不符 | 驗證客戶端 ID、金鑰保存庫 秘密內容及應用程式安裝範圍 |
<tenant>.ghe.com 主機未顯示 OAuth/PAT |
預期行為 | 使用 BYO GitHub App |
| 認證成功後,複製/讀取失敗 | 應用程式或權杖缺少 Metadata/Contents 讀取權限 | 授予必要的存放庫權限並重試 |
| 公關或議題行動失敗 | 缺少議題/PR 權限 | 為 OAuth/PAT 範圍或 GitHub App 新增 issue/PR 權限 |
開始使用 GitHub 連接器
| 你想做的事 | Guide |
|---|---|
| 為您的 Agent 提供調查用程式碼內容 (OAuth/PAT) | 連接原始碼 |
| 啟用問題、PR 和工作流程作業 (OAuth/PAT) | 設置GitHub連接器 |
請為 github.com 或 <tenant>.ghe.com 設置 BYO GitHub 應用程式 |
Connect GitHub Enterprise Cloud |
| 新增帶有治理控制的 GitHub MCP 工具 | 設置一個 MCP 連接器 |