Skip to main 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 无法在沙盒中成功运行命令,它将停止处理任务并报告失败。

配置身份验证设置

“身份验证”选项卡控制凭据是否可用于沙盒中运行的命令。 与其他选项卡上一样,企业管理的值为 (managed) 无法更改的值。

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

配置文件系统设置

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

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

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

重要

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

添加文件系统路径规则

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

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

  2. 键入文件或目录路径。 使用绝对路径-例如,/Users/octocat/projects/app在 macOS 或 Linux 上,或在C:\Users\octocat\projects\appWindows上使用。 然后,按 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”。

延伸阅读