Copilot 安全外掛公開預覽,掃描警報搬進 App 讓 AI 解釋與修補

GitHub 於 10 月 28 日推出 Copilot Security extension 公開預覽,把程式碼掃描警報帶進 Copilot App:AI 可解釋警報、在本機工作副本提出修補、送出解除申請。修補不會自動提交或推送,私人程式庫另需 Code Security,企業管理端要開啟對應政策才能使用。

用 AI 摘要這篇文章:

GitHub 在 10 月 28 日於官方 changelog 公告 Security extension for the GitHub Copilot app 進入公開預覽,公告時間換算台北時間是 10 月 28 日深夜 23 時 45 分,落在 Universe 2026 開幕日(10 月 28 至 29 日,舊金山,實體加線上並行)。這個外掛把 GitHub 程式碼掃描(code scanning)的既有警報帶進 Copilot App,開發者可以在同一個畫面裡瀏覽警報、請 AI 解釋成因、讓 AI 提出修補,或解除確定不修復的警報。

先記住這件事:工作入口搬了,結案權沒有跟著搬。這裡說的結案權,指的是「一則警報什麼時候算解決、由誰判定」。官方文件明確寫著,AI 的修補只落在本機工作副本,不會 commit、不會 push、也不會開 pull request;修補與狀態標記也都不會回寫 GitHub 上的警報。整個外掛唯一會更動 GitHub 警報的動作是解除(Dismiss),還要過倉庫權限這道門,組織採委派式解除時再加送審一道。採用前要對齊的是權限階梯與掃描範圍,不是模型能力。

時間軸上還有個細節:這個外掛比 changelog 公告早六天就亮相了。套件 github-security 在 10 月 22 日就以 0.2.0 版進入 GitHub 官方維護的 awesome-copilot 套件庫,同一天 GitHub 社群討論串開版(截至查詢時還沒有任何回覆);接著 10 月 26 日、27 日連修兩版到 0.2.2,10 月 28 日隨 Universe 2026 登上 changelog。想先裝來試的人,不必等任何邀請制開放。

GitHub 官方 changelog 公告頁面,Security extension for the GitHub Copilot app 公開預覽,附官方 App 介面示意圖Pin
官方 changelog 公告頁面,附 Copilot App 的 Security 畫布示意圖

修一個警報,不用再切換兩個畫面

GitHub 在公告裡自己描述了舊工作流的痛點:修一個掃描警報,過去要在 github.com 的警報頁與編輯器裡的程式碼之間來回切換。新外掛把這兩段工作接進同一個 App。

裝好之後,在 Copilot App 的倉庫工作階段裡打開 Security 畫布,可以看到:

  • 倉庫所有未處理的掃描警報(畫布首頁的 Code scanning findings 入口),依嚴重程度排序,可搜尋、可篩選。外掛 repo 的說明寫得更細:能依嚴重程度、偵測工具與負責人篩選,負責人、標籤與連動的 pull request 一眼可見。
  • 點開單一警報,能看到描述、嚴重程度與從本機檔案截出的受影響程式碼片段。需要更多上下文時,仍可跳回 github.com 的完整警報頁,把 AI 的解釋與原始發現對照。
  • 每則警報連動的 pull request,用來確認是否已有人在修同一個問題,避免兩份修補互相競爭。
  • 勾選一或多個警報後,按 Explain 請 AI 解釋,或按 Fix 請 AI 動手改。

你也可以完全不點按鈕,直接在對話裡問。官方文件給了一條示範 prompt,逐字翻譯是:「解釋這個倉庫目前嚴重程度最高、尚未處理的掃描警報,建議我可以怎麼修,但不要更動任何檔案。」AI 在對話裡呼叫外掛工具時,遵守的是 App 原本的工具權限設定,該先問的場合照樣會問。

一個容易誤會的範圍要先劃清楚:這片畫布顯示的只有程式碼掃描警報。文件明文寫著「The extension shows code scanning alerts, not Dependabot or secret scanning alerts」,Dependabot 盯的是第三方套件相依風險,secret scanning 盯的是程式裡意外提交的金鑰與憑證,這兩類警報都不在其中。期待所有安全警報一次進 App 的團隊,要先修正這個預期。

AI 修補的終點,是你的本機工作副本

打開任一個 AI 自動修補工具,最該問的問題是:它改完之後,世界變了什麼?GitHub 給這個外掛的答案畫得很保守。

操作上,把滑鼠移到清單裡的警報列,Explain 與 Fix 兩個按鈕就會浮現,點開單則或勾選多則都能用。按 Fix 之後,Copilot 只修改本機工作副本(local working copy)。官方文件逐字寫明:不 commit、不 push、也不開 pull request;changelog 的說法同樣止於本機副本。你可以在 App 裡反覆檢視 diff、用對話繼續要求調整,官方建議搭配專案既有的測試跑一輪,直到滿意了才照團隊原本的流程送出。AI 沒有拿到任何直達遠端分支的通道。

更關鍵的一層在狀態回寫。外掛 repo 的權限說明逐字寫著:Copilot 標記的「Resolved」與「In progress」狀態只存在於你的工作階段本地,不會關閉、也不會變更掃描警報;唯一會更新 GitHub 上警報的,是明確按下 Dismiss。換句話說,AI 說「修好了」之後,GitHub 上的那則警報仍然開著。

那警報什麼時候才會關?文件的答案回到掃描系統本身:本機修補不會關閉警報(A local fix does not close a code scanning alert)。要等修補經過你的審查、送進受影響的分支,且程式碼掃描再次執行,才由掃描結果判定警報是否解決。驗收標準在掃描系統,不在 AI 的回覆文字裡。

Dismiss 是唯一例外,而它同樣有治理閘。解除需要倉庫的解除權限,流程是在警報詳情頁或清單列上按 Dismiss、選一個理由、補一句註解,然後出現的按鈕有兩種:一般情況是 Dismiss finding 直接生效;若組織採用委派式警報解除(delegated alert dismissal)且你的角色需要送審,按鈕會變成 Submit request,外掛送出的是待審請求而非直接關閉,警報在獲得同意前保持開啟,而且審查發生在 GitHub 網站上,不在外掛裡。

GitHub 也在外掛說明的結尾自己補了但書:安全發現與產生的修補都需要人工審查,它們不保證一個倉庫沒有漏洞。這句話把外掛的定位說得很誠實,它是縮短定位與修改往返的工具,不是安全保證。

/security-review 是開 PR 前的自查,不是掃描的替代品

處理既有警報之外,外掛加了第二條入口:/security-review 指令。前提是工作階段裡有進行中的程式變更,此時在 Security 畫布首頁點 Start review,或在輸入框直接打 /security-review,AI 會針對這個工作階段目前的變更做一次安全審查,結果與既有警報並列在同一片畫布上,同樣可以勾選後 Explain 或 Fix。

GitHub 對這個功能的定位寫得相當節制,原文值得逐字看:這是針對你的變更的聚焦審查(focused review),不是完整的倉庫安全稽核,也不是程式碼掃描的替代品。文件的另一句話再補一刀:本機審查結果與 GitHub 上的掃描警報是分開存放的,跑本機審查不會啟用程式碼掃描。

實際使用節奏是這樣:改完一輪程式、跑一次審查、修掉找到的問題;之後如果程式又有變動,畫布會提示自上次審查後已有變更,該重跑了。想回看上一輪結果,畫布首頁有 Last review results 入口。

對已經有掃描與審查流程的團隊,這條入口的價值是把「開 PR 前快速自查」變便宜了;對還沒有掃描的倉庫,它不會讓你憑空獲得持續掃描能力,該開的程式碼掃描還是要另外開啟。

裝得起來,不代表看得到警報

能不能用這個外掛,要拆成三層條件看,而且三層彼此獨立。

最底下的一層是安裝與本機審查。任何 Copilot 方案都能安裝外掛,並對自己本機的變更跑 /security-review,這一層不需要程式碼掃描,也不需要 GitHub Code Security 授權。也就是說,最低門檻的使用今天就能開始。

往上一層是企業政策。使用 Copilot Business 或 Copilot Enterprise 的組織,管理員要先啟用 GitHub Copilot app 政策,開發者才用得到 App;企業管理設定(enterprise managed settings)還能進一步限制可安裝哪些外掛。個人看得到安裝入口,不代表公司已經允許使用。導入前先找管理員確認政策狀態,會比安裝失敗後再回頭查省事。

最上面那層才是既有警報。要看到、修復與解除倉庫裡的掃描警報,條件是倉庫已啟用程式碼掃描,且你的帳號有檢視警報的權限;私人倉庫還需要 GitHub Code Security。外掛 repo 的要求段把這條寫成「GitHub Advanced Security 或 GitHub Code Security」,文件層則明確指向私人倉庫需要 Code Security,兩處並讀,私人倉庫的採購判斷以 Code Security 為準。

環境限制也有明文:外掛支援 github.com 與採資料落地區域(data residency)設定的 GitHub Enterprise Cloud,GitHub Enterprise Server 不支援。就原文語法看,「資料落地區域」修飾的是企業雲端方案,github.com 上的倉庫不在這條限制內;資料落地的具體區域清單,公告與文件都沒有附。另外它需要完整的 Copilot App,單獨的 Copilot CLI 跑不起來;要把既有警報載入畫布,App 版本還要支援外掛的 GitHub 登入驗證,本機安全審查則沒有這個前提。自架 Server 環境的團隊,原本的警報處理流程得繼續用。

GitHub 官方文件的 Prerequisites 段落,列出使用安全外掛的前置條件與企業方案政策要求Pin
官方文件的 Prerequisites 段:安裝、企業政策與既有警報的檢視權限是三層獨立條件

三個動作計費,五個工具逐一徵求同意

費用面單獨拉出來看,因為邊界畫得清楚。會耗用 AI 額度(AI credits)的只有三個動作:Explain、Fix 與 /security-review,它們使用你在 App 裡選定的模型,計費方式與一般 prompt 相同。瀏覽警報與解除警報不用 AI。對團隊的含義是:把清單當成免費的分流面板,每天掃一遍排優先序,只把需要深入理解或動手修的警報交給模型,成本才可控。

企業評估外掛風險時,外掛 repo 公開的兩份資訊比功能表更有用。一份是工具清單:外掛向 Copilot 註冊五個工具,fetchGhasFindings 載入掃描警報、loadLocalFindings 載入本機審查結果、runFindingWorkflow 執行解釋、修補與複查、reportFindingStatus 回報修補後狀態、getExtensionState 讀取畫布狀態。repo 說明明文保證,每次工具呼叫都走 Copilot 正常的逐次同意流程,外掛不繞過任何工具權限提示(The extension never bypasses tool permission prompts)。代理操作的審核還有另一套機制,可搭配我們先前的介紹看:GitHub Copilot 輔助權限正式上線。

github-security 外掛 README 的 Agent tools 表格,列出 fetchGhasFindings 等五個工具與各自用途Pin
官方 repo 的 Agent tools 表格節錄,列出五個工具與各自用途

另一份是資料面:畫布跑在本機 loopback 伺服器上,靜態資源不需要驗證,狀態、指令與程式碼片段端點要求每個實例專屬的權杖;外掛以你登入 App 的 GitHub 帳號認證,不要求、也不儲存權杖;解釋、修補與複查都在既有的 Copilot 工作階段與模型內執行,不另外呼叫其他 AI 服務。

現在就裝得到,還沒說清楚的三件事

安裝有兩條路。終端機派可以跑 copilot plugin install github-security@awesome-copilot,更新用 copilot plugin update github-security@awesome-copilot;介面派在 App 側欄的 Customize 裡搜 github-security,到 Plugins 分頁按 Install,這裡也能打開自動更新。裝完後外掛自動啟用,但說明提醒要重新載入外掛,有時還得開新工作階段,Security 畫布才會出現。截稿查詢時的版本是 0.2.2(10 月 27 日提交),公開預覽的內容官方明言可能變動。

順帶一提安裝來源的性質:awesome-copilot 是 GitHub 官方維護的套件庫,自我定位是收錄社群貢獻的指示、代理、技能與設定,截稿查詢時累積超過四萬個星標。指令裡的 @awesome-copilot 指的就是這個來源,不是第三方市集。

還沒說清楚、或本篇無法替你確認的有三件。資料落地區域的具體範圍是其中之一:文件只寫「採 data residency 的 Enterprise Cloud」,各區域清單與台灣企業對應哪個區域,官方兩邊都沒有提供,需要向 GitHub 或帳務洽詢對象確認。私人倉庫要價的 Code Security 是另一件,它屬於另外的計費結構,不在這次公告範圍。最後是 AI 修補的實際品質,本篇接觸層級停在官方文件與 repo,沒有實測;官方自己都要求每個修補經人工審查,導入時先把「AI 提出修補、掃描判定結案」的責任分界寫進團隊流程,比期待它全自動更穩。至於什麼時候脫離預覽轉正式版,公告未列時程,這條線適合一兩週後回頭查。

對已經在跑程式碼掃描的團隊,這個外掛縮短的是警報與程式碼之間的往返,可以挑一則有負責人的警報試走完整流程:解釋、本機修補、測試、送審,讓掃描重跑來關警報。Copilot App 這半年把代理、自動化與安全工作一件件接進來,工作入口持續往同一個 App 集中,自動化與額度計費的那條線可以接著看:GitHub Copilot 自動化開放共享。另一個可以對照的邊界設計是 ChatGPT 的企業資料代理,同樣把管理員核定與權限沿用畫在前面:ChatGPT 企業資料查詢代理。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 2172

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...