如果您遵循了 企业管理设置入门,您已将受管设置托管在 GitHub 上。 这是服务器管理的部署。 还可以选择使用移动设备管理或基于文件的传送将设置直接部署到用户的计算机上。
可以组合多个不同的部署方法。 例如,您可以将 MDM 用于由 IT 部门统一管理的不可协商的安全策略,而将由服务器管理的设置用于更容易变动的内容,例如插件设置。 但是,请记住,这可能使你更难以确切地了解哪些设置适用于你的用户。 如果打算执行此操作,请参阅 部署方法的优先级。
选择部署方法
可通过多种方式部署企业托管设置。 使用以下准则为你选择合适的方法。
- 由服务器管理(.github-private 存储库):
- 大多数企业默认,最适合查看工作流和审核历史记录。
- 适用于所有客户端,包括 Copilot cloud agent。
- 仅适用于从企业接收 GitHub Copilot 许可证的用户。
- 允许企业团队执行替代。
- 移动设备管理:
- 最适用于 IT 团队需要通过 macOS 和 Windows 上现有的 MDM 工具面向设备组进行定向的场景。
- 仅限本地客户端。
- 无论用户在何处获得其 GitHub Copilot 许可证,均适用。
- 基于文件:
- 在所有平台上都可用,当服务器托管部署和 MDM 托管部署不可用时非常有用,包括容器和 Codespaces 等开发人员环境。
- 仅限本地客户端。
- 无论用户在何处获得其 GitHub Copilot 许可证,都适用于该用户。
由 MDM 管理的设置和基于文件的设置从设备中加载,因此可在登录前或与服务器完成一次往返通信前生效,并在用户切换账户时保持生效。 服务器管理的设置与用户的登录帐户相关联。
在中 Copilot CLI,如果服务器托管设置的请求失败,并且没有可用的缓存响应,则服务器托管策略不适用于该会话。 对于在没有服务器响应时仍必须可用的限制,请使用 MDM 管理的设置或基于文件的设置。
如果您为 Copilot Business 使用专用企业,还需要考虑其他事项。 请参阅“在没有组织机构的情况下使用企业管理设置”。
部署由服务器管理的设置
- 创建和配置
.github-private存储库。 请参阅“创建 .github-private 存储库”。 - 在存储库中,创建或更新
copilot/managed-settings.json。 - 以 JSON 格式添加企业策略密钥和值。
- 提交更改并将其推送到默认分支。
- 确认企业用户正在运行受支持的客户端。 更新的设置在大约一小时内自动应用。 重启客户端或再次登录会触发即时刷新。
部署由 MDM 管理的设置
原生 MDM 下发使用与服务器管理设置相同的逻辑键和值,但不会下发 managed-settings.json 文件。 相反,MDM 平台会将各项设置部署为由操作系统管理的字符串值。
Windows 和 macOS 支持原生 MDM 交付:
| 操作系统 | 本地策略位置 |
|---|---|
| Windows | |
HKEY_LOCAL_MACHINE\ 下的字符串(REG_SZ)值 | |
| macOS | com.github.copilot 首选项域的强制托管首选项中的字符串值 |
| Linux | 不支持原生 MDM 交付。 请改用基于文件的设置。 |
所有原生 MDM 值都必须是字符串。 对于嵌套设置,请使用点分隔的键,例如 permissions.disableBypassPermissionsMode 或 sandbox.enabled。 直接存储普通字符串值。 将布尔值、数组和对象存储为字符串值中的 JSON 文本。
例如:
| Key | 原生字符串值 |
|---|---|
permissions.disable | disable |
sandbox.enabled | true |
enabledPlugins | {"PLUGIN-NAME@MARKETPLACE-NAME":true} |
-
选择要强制执行的设置。 请参阅“企业管理设置”。
-
将每个设置转换为本机键和字符串值表示形式。
-
使用企业 MDM 平台和标准部署流程,将这些设置部署到本地策略位置。
-
将策略分配给目标设备组。
客户端无需重启,并且会每小时检查一次是否有更新的策略。 在 VS Code 中,管理员可以通过运行
Developer: Sync Account Policy命令来强制执行一次检查,以进行测试。
部署基于文件的设置
将 managed-settings.json 放置在以下位置:
| 操作系统 | 文件位置 |
|---|---|
| macOS | / |
| Windows | %Program |
| Linux | / |
- 使用要强制执行的策略密钥和值创建或更新
managed-settings.json文件。 - 使用标准设备管理过程将文件分发到特定于平台的位置。 不接收文件的计算机不受此策略的限制。
- 对于 macOS 和 Linux 上的 Copilot CLI,将该文件设为由
root拥有的普通文件,并确保该文件不可被所属组或其他用户写入。 请勿使用符号链接。 CLI 拒绝不符合这些要求的文件。 - 要求用户重启受支持的客户端,以便在启动时加载更新的策略。
部署方法的优先级
当存在多个设置源时,此列表中的前面设置优先于列表中的设置:
- 受 MDM 管理的设置
- 由服务器管理的设置
- 基于文件的配置
- 用户级设置
作为例外,以下键在不同交付方式之间按照限制最严格的方式进行组合:
sandboxpermissions.deny、permissions.ask和permissions.allow