GitHub 連接器於 Azure SRE 代理

連接你的 GitHub 倉庫,讓你的代理程式能讀取原始碼、搜尋錯誤、建立問題、觸發工作流程,並將部署與事件比對。

小提示

快速概述

  • Code Access 提供你的代理程式原始碼、IaC 和設定檔作為調查上下文。
  • GitHub Connector 支援問題、PR 及工作流程操作。
  • GitHub MCP提供完整的GitHub工具存取及治理控制。
  • 請使用 OAuthPAT,或 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 連接器

下一個步驟