-
Notifications
You must be signed in to change notification settings - Fork 135
Description
目前 GitHub Copilot 有 4 個與 autoApprove 有關的設定:
-
chat.tools.edits.autoApprove
控制是否自動批准聊天所做的編輯。預設情況下,所有編輯都會被批准,除了那些對特定文件做出的改動,這些改動可能會導致立即的非預期副作用,例如 **/.vscode/*.json。
建議維持預設值就好,不用額外調整。
-
chat.tools.terminal.enableAutoApprove
控制是否允許在終端工具中自動批准執行。
這個設定預設就是啟用的,並且會搭配
chat.tools.terminal.autoApprove設定一起運作,只有在清單中被允許的命令才能自動核准。 -
chat.tools.terminal.autoApprove
一個命令或正則表達式的列表,用來控制在終端工具命令中執行是否需要顯式批准。這些將與命令的開始部分進行匹配。可以透過將字符串封裝在 / 字符中,並可以選擇性地加上如 i 表示不區分大小寫標誌,來提供正則表達式。
設置為 true 會自動批准命令,false 則總是要求顯式批准,或設為 null 來解除設定值。
注意,這些命令和正則表達式會在完整的命令行中的每個子命令被評估,例如 foo && bar 需要 foo 和 bar 都匹配 true 項且不能匹配 false 項以自動批准。內嵌命令如 $(foo)(命令替換)或 <(foo)(進程替換)目前被默認的廣泛規則屏蔽住這些模式。
可以使用一個物件來匹配完整的命令行而不是匹配子命令和內嵌命令,例如 { approve: false, matchCommandLine: true }。為了自動批准,子命令和命令行必須都沒有被顯式拒絕,然後需不論是所有子命令還是命令行都要被批准。
這個組態會有一份預設隨著 VS Code 一起發佈的清單,第一次設定的時候會自動被填入
settings.json -
chat.tools.global.autoApprove
全域自動核准(也稱為"YOLO模式")完全停用所有工作區中所有工具的手動核准,允許代理完全自主行動。這是極其危險的,絕不建議使用,即使是如Codespaces和Dev Containers這樣的容器化環境,使用者金鑰也會轉發到容器中,可能會被入侵。
此功能會停用關鍵的安全防護,並使攻擊者更容易侵入機器。
注意: 當你在 Remote WSL 環境,從
User的設定會找不到該選項,要到Remote的設定才找的到此選項。