用途:面向 VS Code 贡献者,指导配置策略(Policy)的完整生命周期,供企业管理员通过 OS 级机制(Windows 组策略、macOS 托管偏好、Linux 配置文件)或 Copilot 账户级策略数据锁定配置项。适用于新增策略字段、修改已有策略、审查涉及策略注册的 PR、添加基于账户的策略、配置托管设置及用一个策略管理多个设置。
主要能力与用法:在配置注册处(通常是 *.contribution.ts)为属性添加 policy 对象,需提供 name(PascalCase 且全局唯一)、category(来自 PolicyCategory 枚举)、minimumVersion(取根 package.json 的 major.minor,不硬编码旧版本)和 localization。基于账户的策略可加 value 函数,接收 IPolicyData,返回具体值覆盖用户设置,返回 undefined 则不覆盖。枚举/字符串策略必须提供与 enum 等长的 enumDescriptions,否则 npm run export-policy-data 会报错。
关键命令:npm run typecheck-client 校验编译;npm run export-policy-data 重新生成 build/lib/policies/policyData.jsonc,该文件不可手动编辑,需 codeowner 审查才能合入 main。
扩展设置策略:扩展作者无法直接添加 policy 字段,需在 vscode-distro 的 product.json 的 extensionConfigurationPolicy 中定义,并更新 package.json 中的 distro 提交哈希及测试夹具。
托管设置:原生 MDM 与 GitHub 服务端设置汇合到 IPolicyData.managedSettings,通过 policy.value(policyData) 消费。GitHub 预览功能需检查 policyData.chat_preview_features_enabled === false。
限制:资料未提供相关收费、价格及具体平台支持范围等信息;策略架构与多通道优先级细节以资料所述为准。