GitHub Copilot CLIの「このリポジトリでは許可」を放置しない。保存済み権限を戻す
GitHub Copilot CLIは、ファイルの読み取りや検索などの読み取り専用操作を自動で許可する一方、ファイル編集、破壊的なシェルコマンド、URLアクセスなどは明示的な許可を求めます。作業中に「このリポジトリでは今後確認しない」などを選ぶと、許可は既定でpermissions-config.jsonに保存され、リポジトリのルートまたは作業フォルダに適用されます。URLの恒久許可はsettings.jsonに保存され、全セッションに適用されます。GitHubは、すべてを許可する--allow-allや--yoloを隔離環境以外で使わないよう強く勧めています。AIに任せる作業の終了時に、残った許可をリセットする運用を扱う記事です。
- GitHub Copilot CLIでコード作成や調査をする人
- AIエージェントにシェル実行・ファイル編集・URLアクセスを許可する開発者
確認を省いた権限は作業後にリセットし、リポジトリ単位と全セッションのURL許可を分けて見直しましょう。
身近な事例を知る
急ぎの開発でCopilot CLIの確認を省いたが、そのリポジトリで後から何が許可されたか心配
AIに繰り返し同じ確認をさせないため、シェル操作やファイル編集を『このリポジトリでは常に許可』にしました。作業は終わりましたが、次のセッションでも同じ権限が残るのか、どこまで戻すべきかを知りたい状況です。
あなたならどうする?
まず一つ以上選んでから確認してみてください。
推奨される行動- 保存された許可の範囲を確認し、/reset-allowed-toolsで作業中の許可を既定状態へ戻す
選んだカードの表示を見ながら、今回はどの行動が安心につながるか確認できます。
Copilot CLIの許可は保存される場合があり、/reset-allowed-toolsは現在の対話中に付与した許可を既定状態または起動時オプションの状態へ戻します。永続のURL許可は別のsettings.jsonに保存されるため、範囲を分けて確認します。
確認ポイント
書込み・シェル・URLの許可
編集、破壊的コマンド、URLアクセスは明示的許可が必要な操作です。何を許可したかを確認します。
リポジトリ単位の保存
作業場所で許可したツール・パスは、既定でpermissions-config.jsonに保存され、リポジトリルートまたは作業フォルダに適用されます。
全セッションに効くURL許可
URLを恒久許可すると、allowedUrlsとしてsettings.jsonに保存され、場所に限られず適用されます。
全許可オプション
--allow-allや--yoloはすべてのツール・パス・URLを許可します。GitHubは隔離環境以外での常用を勧めていません。
現時点での見立て
Copilot CLIでは、一部の許可がファイルに保存され、次の作業にも適用されます。書込みやシェル操作を安全に使うには、必要な作業にだけ限定して許可し、終了時に/reset-allowed-toolsと保存済み設定を確認する運用が重要です。
安全な対処方法
安心につながる行動
- 危険性のある操作は、必要な時だけ一回限りで許可するCopilot CLIは編集、破壊的シェル操作、URLアクセスに明示承認を求めます。
- 作業後に/reset-allowed-toolsで対話中の許可を戻すこのコマンドは、対話中に許可したツールと保存済みの場所単位の許可をリセットします。
- permissions-config.jsonとsettings.jsonの対象を分けて確認するリポジトリ・作業場所の許可と、全セッションに効くURL許可は保存先と適用範囲が異なります。
- 広い許可が必要な作業は、可能なら隔離環境で行うGitHubは全許可オプションを隔離環境以外で使わないよう案内しています。
避けたい行動
- 『このリポジトリでは常に許可』を、内容を確認せず選ぶ許可はリポジトリまたは作業フォルダに保存され、後のセッションにも影響します。
- --allow-allや--yoloを通常の開発環境で常用する全ツール・パス・URLが許可され、意図しない操作の範囲が広がります。
- URLの恒久許可をリポジトリだけに効く設定だと考える恒久URL許可はsettings.jsonに保存され、全セッションに適用されます。
AIの前向きな活用
最小限の許可で、Copilot CLIを定型作業の補助に使う
読み取り中心の調査や、対象ファイルを限定した編集に絞れば、Copilot CLIの支援を活かしながら、アカウントで実行できる範囲を必要以上に広げずに済みます。
- 読み取り専用の調査から始める
- 書込み許可は対象ファイルを限定する
- pushは自分で最終実行する
- 作業終了時に許可をリセットする
今回、覚えておきたいこと
Copilot CLIの保存済み権限は、作業後にリセットして適用範囲を確認する。
情報源
- Allowing and denying tool use(外部リンク) GitHub Docs その他
誠主任からひとこと