Skip to main content
Skip to content

配置本地沙盒设置

/sandbox 中使用 Copilot CLI 斜杠命令,以控制本地沙盒对文件系统访问、网络连接能力和系统能力的限制方式。

注意

本地沙盒 GitHub Copilot 位于 公开预览 且可能会更改。

重要

Windows上的本地沙盒需要Windows预览体验成员版本。

关于本地沙盒配置

可以使用 /sandbox 斜杠命令授予额外的路径、调整网络访问权限或打开或关闭沙盒。

有关云和本地沙盒 Copilot 的概念概述,请参阅 关于云端和本地沙盒 GitHub Copilot

打开沙盒配置

  1. 启动Copilot CLI会话。

  2. 输入/sandbox斜杠命令。

    这会打开包含四个选项卡的交互式配置接口: 常规身份验证文件系统网络。 使用 Tab 在选项卡之间切换。 按 Esc 保存更改并关闭配置。

配置常规设置

常规 ”选项卡控制顶级沙盒行为。 当企业托管设置强制实施值时,对话框会将该设置 (managed) 标记为阻止你更改它。

设置Description
启用沙盒在沙盒中运行 shell 命令。 您还可以通过 /sandbox enable/sandbox disable 切换此设置。
允许绕过沙盒让模型请求单个命令在沙盒外部运行,但需要批准。 绕过提示还可以让你在当前会话的剩余时间内禁用沙盒。 默认情况下处于打开状态。 有关详细信息,请参阅 “允许绕过沙盒”。
沙盒 MCP 服务器在沙盒中运行 MCP 服务器。 默认情况下处于打开状态。
沙盒 LSP 服务器在沙盒中运行语言服务器(LSP 服务器)。 默认情况下处于打开状态。

允许绕过沙盒

“允许沙盒绕过”设置控制当无法在沙盒中成功运行命令时Copilot会发生什么情况。

  • 在 (默认值) 上:如果某个命令在沙盒中失败,系统会提示你允许 Copilot 在沙盒外部运行命令。 你对此提示的响应仅适用于此次运行该命令的尝试。 您也可以选择在本次会话的剩余时间内禁用沙盒(如果您的企业允许),或者改为输入一条让 Copilot 处理的指令。
  • 关闭:如果 Copilot 无法在沙盒中成功运行命令,它将停止处理任务并报告失败。

如果企业管理设置将sandbox.allowBypass设为false,则您无法批准单个命令在沙盒外运行,也无法在本次会话的剩余时间内禁用沙盒。 如果受管理设置要求启用沙盒,而有效策略允许绕过,则你只能通过当前活动的绕过权限提示禁用沙盒,而不能通过普通设置或 /sandbox disable

配置身份验证设置

认证选项卡控制是否向在沙盒中运行的命令提供您的凭据。 与其他选项卡一样,由企业管理的值会显示为 (managed),且无法更改。

设置Description
对 git 进行身份验证注入一个GitHub令牌,从而使已通过身份验证的 HTTPS git 能够在沙盒内运行,而无需凭据助手。 对于非GitHub主机,可改为向沙盒git命令提供自己的存储凭据。 默认情况下处于打开状态。
身份验证 gh导出 GH_TOKEN 以便 GitHub CLI (注意: gh CLI,而不是 copilot)在沙盒中工作,而无需访问其存储的凭据(配置目录或 OS 密钥链),沙盒会阻止该密钥链。 默认情况下处于打开状态。
允许密钥链访问仅在 macOS 上可用。 允许沙盒命令使用 macOS 钥匙串,例如访问由 gitgh 凭据帮助程序使用的凭据。 默认情况下已关闭。

配置文件系统设置

文件系统选项卡控制沙盒进程可以访问的目录和文件。

默认情况下, Copilot 向当前工作目录中和下方的所有内容授予读/写权限。 如果位于 Git 存储库中, Copilot 则还被授予以下权限:

  • 对存储库的 .git 目录及其下级目录中所有内容的读/写权限。
  • 对当前工作目录上方的存储库中所有其他内容的读取权限。 工作目录本身仍保持可读写,因为在两者重叠的部分,更具体的授权规则优先。
设置Description
包含工作目录默认情况下处于打开状态。 当前工作目录(以及封闭存储库的 .git 目录(如果有)会自动添加到读/写路径列表中。 如果不希望自动授予工作目录读/写访问权限,然后手动允许访问特定路径,请取消选中此选项。
允许开发工具访问默认情况下处于打开状态。 授予沙盒命令对开发人员工具配置和缓存(包括包管理器注册表及其存储的令牌)的读取访问权限,以及对共享生成缓存的读/写访问权限,因此安装和生成可在沙盒内工作。 这在**** 报告中显示为/sandbox policy。 将其关闭,以便必须明确授予这些位置信息的访问权限。

重要

取消选择 “包括工作目录 ”会删除对 Git 存储库目录中和目录下 .git 的所有内容的访问权限。 因此,Git 操作(例如 statusaddcommitdiff)将会失败,除非你手动为此目录添加访问权限。

添加文件系统路径规则

可以指定要添加到沙盒的路径。 这样,就可以授予对工作目录外部的目录和文件的只读或读/写访问权限。 还可以拒绝访问,以从沙盒中排除目录和文件。

  1. “文件系统 ”选项卡中,按 A 添加新的路径规则。

  2. 键入文件或目录路径。 使用绝对路径,例如,在 macOS 或 Linux 上使用 /Users/octocat/projects/app,或在 Windows 上使用 C:\Users\octocat\projects\app。 然后,按 Enter。

    注意

    添加目录时,将包括其整个子树。 不支持通配符。

  3. 使用键盘上的向左键和向右键在权限选项之间导航: 读/写只读拒绝。 然后按 Enter 选择一个选项。

添加文件系统路径后,可以编辑或删除它们。

  1. 使用向上键和向下键选择路径。
  2. Enter 编辑路径,或 D 将其删除。

配置网络设置

网络 ”选项卡控制沙盒进程是否可以建立网络连接。

设置Description
允许出站连接默认情况下处于打开状态。 启用后,沙盒进程可以访问 Internet 上的外部主机。 请将其关闭以完全隔离沙盒与网络。
允许本地网络默认情况下处于打开状态。 启用后,沙盒进程可以访问本地网络上的主机(例如, localhost LAN 上的其他设备)。 关闭此选项可阻止沙盒访问本地或专用网络服务。
HTTP 代理将沙盒的出站流量通过 HTTP 代理转发。 请参阅 通过 HTTP 代理传输流量

通过 HTTP 代理路由流量

在“网络”选项卡上选择 “HTTP 代理”,通过代理服务器发送沙盒的出站流量。 输入代理 URL,并可选择输入 用户名密码。 若要删除代理,请清除 URL。

请记住以下几点:

  • 仅当启用 “允许出站连接” 时,代理才适用。 如果关闭出站连接,代理将保留在设置中,但保持非活动状态。
  • 密码安全地存储在操作系统的凭据存储中。 还可以输入 ${VAR} 环境变量引用,而不是文本密码。
  • 在 Linux 和 macOS 上,代理采用协作式方式:它通过标准的代理环境变量生效,并且取决于各个工具是否遵循这些变量。 在 Windows 上,沙盒会强制使用代理。
  • 贵组织可以通过托管设置强制执行代理 URL。 这样做时,URL 会显示为 (managed),但仍可以提供自己的凭据,这些凭据存储在用户设置中。

快速启用和禁用沙盒

可以打开或关闭沙盒,而无需打开完整的配置界面:

  • 启用:在/sandbox enable会话中输入Copilot CLI。
  • 禁用:在/sandbox disable会话中输入Copilot CLI。

这些命令更改“常规”选项卡上的 “启用沙盒”设置。

查看当前的沙盒设置

设置存储在您的 settings.json 配置目录中 sandbox 下的 Copilot CLI 键中。 有关配置目录的详细信息,请参阅 GitHub Copilot CLI 配置目录

您可以在 Copilot CLI 会话中查看当前的沙盒设置。

  1. 输入 /settings
  2. / 搜索设置。
  3. 键入 sandbox 以筛选设置列表。

上述步骤显示了已保存的设置。 若要查看有效文件系统策略(即合并您的设置、自动授予和任何托管策略后得到的读写、只读和拒绝访问路径),请输入 /sandbox policy。 有关详细信息,请参阅“了解 GitHub Copilot CLI 中用于本地沙盒的文件系统策略”。

延伸阅读