1804 字
9 分鐘

GitHub Copilot Code Review 核准怎麼開?安全設定與檔案範圍

GitHub Copilot code review 現在不只會在 pull request 留下建議,也能在符合條件時提交 approving review。不過「Copilot 的 approval assessment 判定可以核准」和「GitHub 收到一個會計入 merge requirement 的 approval」是兩件事;中間還隔著管理員設定、檔案範圍和 branch protection。

這項能力在 2026 年 9 月 1 日進入 public preview,預設是關閉。若你只是想先觀察 review 品質,可以先開啟自動 review;若要讓 Copilot approval 滿足分支所需的審查數,必須另外打開計入 merge requirements 的設定。

先分清楚 assessment、approval 與 merge requirement#

可以把一次 Copilot code review 拆成三層:

層次代表什麼是否足以通過分支規則
Review overview 的 approval assessmentCopilot 對這次變更是否適合核准的判定不一定,assessment 本身不算 approval
Copilot approving reviewCopilot 實際送出的 approving review仍要看 repository 是否允許它計入
Merge requirementbranch protection/ruleset 是否接受這個 approval只有符合開關、path scope 和其他規則才可能通過

GitHub 的新流程會在每次 review overview comment 顯示 approval assessment,但 assessment 單獨不會變成 required approval。管理員應把「讓 Copilot 產生評估」和「讓 Copilot 影響 merge gate」當成不同風險決策。

Repository 層的兩組設定#

Repository 需要分別處理「何時自動 review」和「approval 是否有合併權限」。

讓 Copilot 自動檢查 pull request#

要在 branch ruleset 中啟用:

  1. 進入 repository 的 Settings
  2. Code and automationRulesets,建立 New branch ruleset
  3. 將 Enforcement Status 設成 Active,選定 target branches。
  4. 在 Branch rules 勾選 Automatically request Copilot code review
  5. 依需求開啟 Review new pushes,讓新的 push 重新觸發 review。
  6. 若要在 draft 階段提早找問題,再開啟 Review draft pull requests
  7. 儲存 ruleset。

若沒有勾選 Review new pushes,GitHub 文件說明 Copilot 只會 review 一次;這和後面「新 commit 會讓舊 approval 失效」是兩個不同事件。前者是是否自動產生下一次 review,後者是 GitHub 對既有 approval 的有效性處理。

開啟 Copilot approval#

在 repository 的 Settings,進入 Code, planning, and automation → Copilot → Code review,找到 Auto-approval

  1. 開啟 Allow Copilot to approve pull requests,允許 Copilot 送出 approving review。
  2. 若要讓它滿足分支的審查數,再開啟 Allow Copilot approvals to count toward merge requirements
  3. 若只想讓低風險範圍使用,於 File paths 每行填一個 glob。
  4. 儲存後用測試 repository 或低風險 pull request 驗證,而不是直接在所有 production 分支打開。

兩個 toggle 要分開看:第一個是「Copilot 可以送 approval」,第二個是「這個 approval 可以對 merge requirement 有效」。只開第一個,不代表 branch protection 會接受它;只看 review comment 也不能推導第二個已開啟。

File paths 是 approval 範圍,不是 review 範圍#

Auto-approval 的 File paths 可以限制哪些 pull request 的 Copilot approval 能計入 merge requirements。規則有三個重點:

  • 每行一個 file glob。
  • 最多支援 15 個 glob。
  • pull request 的所有 changed files 都必須符合其中一個 glob,approval 才能依這個範圍計入。

例如只想讓文件變更使用 Copilot approval,可以先從這種範圍開始:

docs/**
**/*.md

這不是說 docs/guide.md 會被 review、而 src/app.ts 不會被 review;它控制的是 approval 是否能被當成 merge gate 的一部分。如果一個 pull request 同時修改 docs/guide.md 和 src/app.ts,因為不是所有 changed files 都符合上面的 glob,這次 approval 就不應依該範圍計入。

若 repository 的路徑規則很複雜,先用一個預期會通過的純文件 PR 和一個混合路徑 PR 做對照。不要把 glob 內容只放在管理員筆記;它本身就是 approval policy 的一部分,應和 branch ruleset 名稱、owner 和審核日期一起留存。

Organization 與 Enterprise 要先決定治理邊界#

Organization 可以替多個 repository 設定自動 code review,也可以透過 repository scope 選擇哪些 repository 套用。Enterprise 則可以把管理範圍再往上收斂;實際 UI 會依你使用的方案和權限顯示可用選項。

建議採用以下順序:

  1. Enterprise/organization 先決定是否允許 Copilot approval 進入治理政策。
  2. Repository 再決定是否啟用 auto-approval,以及是否限制 File paths。
  3. Branch ruleset 明確指定哪些分支需要 review、CI 與人類審查。
  4. 由 repository owner 建立測試 PR,確認 assessment、approval 和 merge requirement 的結果。

Copilot code review 的 effort level 也在同一個 repository 設定頁面,但它是 review 深度選擇,不是 approval 權限。若想先調整檢查深度,可參考 Copilot code review 的 Lite 與 Balanced;不要把 effort level 的變更當成已開啟 auto-approval。

新 commit 會讓 approval 失效#

GitHub Changelog 特別說明,pull request 有新 commit 時,Copilot approval 會像人類 review 一樣被 dismiss。這是合理的安全邊界:approval 只對被 review 的 commit snapshot 有效。

因此 rollout 時應測試:

  1. 建立一個符合 File paths 的純文件 PR。
  2. 等待 Copilot 完成 review,確認 overview 有 approval assessment。
  3. 在 repository policy 允許時,確認是否出現 Copilot approving review。
  4. 檢查 branch ruleset 是否把它計入 required approvals。
  5. 再 push 一個小修改,確認舊 approval 被 dismiss,並要求新的 Copilot review。
  6. 在新 review 完成前,確認 PR 不會因舊 approval 仍留在畫面上就錯誤合併。

如果團隊把 required approvals 當作唯一 gate,還要同時確認 CI、CODEOWNERS、人類 review 和其他規則沒有被這項 preview 功能意外繞過。Copilot approval 只能是既有治理設計中的一個明確節點。

建議的漸進式開放順序#

對多數團隊來說,下面的 rollout 風險較容易控制:

  • 第一階段只開自動 review,觀察一到兩個迭代的 false positive、漏報和回應時間。
  • 第二階段只在文件、測試或已定義的低風險目錄設定 File paths,保留人類 review。
  • 第三階段才評估是否讓 Copilot approvals count toward merge requirements。
  • 每次變更都用一個新增 commit 的 PR 測試 dismiss/re-review 行為。
  • 對高風險、權限、付款和資料庫 migration 目錄,保留更嚴格的人類或 CODEOWNERS 審查。

這些是治理建議,不是 GitHub 的強制規則。真正要記錄的是團隊願意讓 Copilot 在哪一種變更上影響 merge decision,以及誰負責回溯 preview 行為。

結論:先把 approval 當成可控的額外 reviewer#

Copilot code review 的 approval 功能可以減少低風險 pull request 的等待時間,但它不應被簡化成「AI 說沒問題就能 merge」。先分清 assessment、approving review 和 merge requirement,再於正確層級開啟 toggle,並用 File paths 限制可計入的變更範圍。最後一定要測新 commit dismiss 舊 approval 的流程,讓 branch protection 看到的是最新 snapshot 的結果。

常見問題#

Q: 有 approval assessment 就等於 PR 已通過嗎?#

A: 不等於。Assessment 是 review overview 中的判定;是否送出 approving review,以及該 approval 是否能滿足 merge requirement,還要看兩個 Auto-approval 設定與 File paths。

Q: File paths 會讓 Copilot 不 review 其他目錄嗎?#

A: 不會。File paths 是限制哪些 PR 的 approval 可以計入 merge requirements;它不是自動 code review 的 path filter。若要改變 review 觸發範圍,應調整 branch ruleset、repository scope 或 organization policy。

Q: 新 commit 後還能沿用 Copilot 的舊 approval 嗎?#

A: 不能把它視為有效。GitHub 說明新 commit 會 dismiss Copilot approval,應要求新的 review,並重新確認 required approvals 和 CI 狀態。

參考資料:

GitHub Changelog:Copilot code review can now approve pull requests

GitHub Docs:Configuring code review by GitHub Copilot

GitHub Copilot Code Review 核准怎麼開?安全設定與檔案範圍
https://laplusda.com/posts/github-copilot-code-review-approvals/
作者
Zero
發佈於
2026-09-03
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。