设备与托管配置
选择 MDM 或文件部署位置,理解逐键优先级、刷新、身份准入与默认模型。
CLI 支持设备管理和服务器下发的 managed settings。适用入口包括交互、-p、ACP、AHP host 和 server 模式,不能仅通过换启动方式绕过已适用策略。
平台位置
| 平台 | 原生管理来源 | 文件来源 |
|---|---|---|
| macOS | com.github.copilot MDM plist | /Library/Application Support/GitHubCopilot/managed-settings.json |
| Windows | HKLM\SOFTWARE\Policies\GitHubCopilot | %ProgramFiles%\GitHubCopilot\managed-settings.json |
| Linux | 文件部署 | /etc/github-copilot/managed-settings.json |
POSIX 上拒绝符号链接、非 root 所有或其他用户可写的托管文件。这里是 managed settings 路径,与Policy Hooks的 policy.d 位置不同。
最小示例
{
"model": "auto",
"permissions": {
"disableBypassPermissionsMode": "disable"
}
}model 是顶层键。旧 permissions.model 在顶层缺失时仍有兼容回退,新配置应使用顶层形式。
MDM 与服务器值按键合并:设备设置了该键时设备优先,未设置时服务器填补。CLI 专门参考说明长期运行会话每小时重新获取并应用托管设置;通用部署指南则要求本地文件更新后重启加载,不把刷新说明无条件扩展到每条渠道。
forceRemoteSettingsRefresh 要求启动时重新拉取,即使缓存仍新鲜;拉取失败时缓存仍可后备。它不是保证每次启动都一定取得新策略的网络承诺。
可覆盖性按键判断
配置参考的总顺序把 MDM 描述为可被用户覆盖的基线,而 MDM 专门章节又说明多数托管键锁定。应按具体键的定义处理,不能只用全局顺序推导。
model 通常设新会话默认,可由会话模型选择覆盖。autoTier 的普通字符串锁定 tier;{ "overridable": "balance" } 提供可覆盖默认。支持 efficiency、balance、intelligence,旧 fast 会警告并回退 balance。
插件和市场映射按条目锁定,而非把整张用户映射删除;沙箱则按更严格方向合并。/settings 中的 managed 标记有助于定位实际限制。
限制账号归属
forceLoginOrgs 接受组织 login 数组,忽略大小写,用户需属于至少一个指定组织。只有其他企业组织身份或仅提供 BYOK API key 都会被拒绝;空数组关闭此限定。
该键应通过设备渠道部署,才能在首次登录前约束身份。已知受管理设备的策略无法读取,或该值不可用时,准入失败关闭,需管理员修复,不能靠换账号绕过。
尚未执行的 helper
policyHelper 支持 path,以及可选 args、timeoutMs、refreshIntervalMs;path 可为绝对路径、~/ 路径或 PATH 程序名,其他相对路径被拒绝。当前参考明确说明只接受和校验注册,运行时尚不调用 helper,不能依赖它提供实际策略。
原生 MDM 的点分键与字符串编码、服务器/文件渠道优先级及团队映射,见完整部署流程。