借助企业托管设置,企业所有者可以集中定义配置设置并将其分发给企业 Copilot 计划中支持的客户端,确保每个成员在定义的防护栏内工作,同时让团队定制允许的设置。
支持以下客户端,但并非每个客户端都支持每个属性:
-
Copilot CLI
-
VS Code
-
JetBrains IDEs
-
GitHub Copilot app
-
Copilot cloud agent
-
JetBrains IDEs
这些设置适用于企业范围,企业可以自定义企业团队的特定密钥。 对于大多数受支持的键,该值 managed-settings.json 优先于用户在其客户端中设置的任何基于文件的配置。 在 Copilot CLI 中,托管的 sandbox 设置则定义为最低限制,用户可以进一步收紧这些限制,但不能放宽。
由 MDM 管理的设置和基于文件的设置从设备中加载,因此可在登录前或与服务器完成一次往返通信前生效,并在用户切换账户时保持生效。 服务器管理的设置与用户的登录帐户相关联。
定义设置
有关可用属性和语法的详细信息,请参阅 企业管理设置。
如果需要一个或多个企业团队使用与copilot/team-mappings.json中的默认设置不同的设置,请使用copilot/teams/和copilot/managed-settings.json目录。 有关详细信息,请参阅“配置企业管理设置”。
选择部署方法
可通过多种方式部署企业托管设置。 使用以下准则为你选择合适的方法。 对于任何方法,在广泛部署之前先试运行小型设备组。
- 服务器托管:大多数企业默认,最适合查看工作流和审核历史记录。 适用于所有客户端,包括 Copilot cloud agent。
- 由 MDM 管理:最适用于 IT 团队需要通过 macOS 和 Windows 上现有的 MDM 工具按设备组进行定向的情况。 仅限本地客户端。
- 基于文件:在所有平台上都可用,并且在服务器管理的部署和 MDM 管理的部署不可用时很有用,包括容器和 Codespaces 等开发环境。 仅限本地客户端。
在中 Copilot CLI,如果服务器托管设置的请求失败,并且没有可用的缓存响应,则服务器托管策略不适用于该会话。 对于在没有服务器响应时仍必须可用的限制,请使用 MDM 管理的设置或基于文件的设置。
如果您为 Copilot Business 使用专用企业,还需要考虑其他事项。 请参阅 面向专用 Copilot Business 企业的指南。
部署由服务器管理的设置
- 创建和配置
.github-private存储库。 请参阅“创建 .github-private 存储库”。 - 在存储库中,创建或更新
copilot/managed-settings.json。 - 以 JSON 格式添加企业策略密钥和值。
- 提交更改并将其推送到默认分支。
- 确认企业用户正在运行受支持的客户端。 更新的设置在大约一小时内自动应用。 重启客户端或再次登录会触发即时刷新。
覆盖特定团队的设置
对于由服务器管理的部署,当一个或多个企业团队需要使用与默认的 copilot/team-mappings.json 值不同的设置时,请使用 copilot/teams/ 和 copilot/managed-settings.json 目录。
enabledPlugins 和 extraKnownMarketplaces 以累加方式起作用。 企业 managed-settings.json 设定了基准,而企业团队文件可以在此基础上添加更多插件和应用市场。
-
在企业
copilot/managed-settings.json文件中,标记想要使用{ "overridable": <VALUE> }语法进行替代的每个密钥。json映射到团队的文件只能为标记为可重写的密钥发送不同的值。overridable当团队文件不为给定密钥声明其他值时,你提供managed-settings.json的值是默认值。 例如,要同时延迟model和disableBypassPermissionsMode:{ "model": { "overridable": "auto" }, "permissions": { "disableBypassPermissionsMode": { "overridable": "disable" } }, "allowedMcpServers": { "overridable": [ { "serverUrl": "https://mcp.company.com/*" } ] } } -
在企业的存储库
.github-private中创建copilot/team-mappings.json。 将每个团队设置文件映射到一个或多个企业团队标识符。 键是设置文件名,值是由团队 slug 组成的数组,因此你可以将同一个文件应用于多个团队。{ "devs.json": ["developers-all", "finops-dev"], "ai-users.json": ["ai-baseline-trained"], "frontier.json": ["ai-pioneers"] } -
在
copilot/teams/下创建团队设置文件。 可以包括标记为可重写的任何键,以及累加键enabledPlugins和extraKnownMarketplaces。 其他每个密钥都受企业默认值的约束。{ "model": "unmanaged", "permissions": { "disableBypassPermissionsMode": "unmanaged" }, "allowedMcpServers": [ { "serverUrl": "https://team-specific-mcp.company.com/*" } ] } -
提交更改并将其推送到默认分支。
GitHub 评估企业团队成员身份并为每个人应用匹配设置。 如果用户属于多个团队,则会针对每个键采用限制最少的值合并其团队文件,然后在企业设置之下应用,其中平台决策始终具有优先权。
部署由 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 拒绝不符合这些要求的文件。 - 要求用户重启受支持的客户端,以便在启动时加载更新的策略。
- 确认设置生效。 请参阅 “验证配置是否已应用”。
验证配置是否已应用
对于服务器管理的部署,支持的客户端上的用户将在大约一小时内看到指定的设置。 这包括 copilot/managed-settings.json、copilot/team-mappings.json 以及 copilot/teams/ 中的文件。 重启客户端或再次登录会触发即时刷新。
对于由 MDM 管理的部署,客户端每小时检查一次是否有策略更新。 对于基于文件的部署,请重启客户端以加载更新的文件。
如果用户看不到这些设置,请确保他们已通过您的企业或其下属某个组织获得对 Copilot 的访问权限。 如果用户从多个计费实体收到许可证,请确保他们在 个人 Copilot 设置的“按使用情况计费”下拉列表中选择了你的企业。
专属 Copilot Business 企业指南
如果你拥有用于 Copilot Business 的专属企业(有时称为 Copilot 独立版),你仍然可以使用企业管理设置。 你选择的部署方法决定了你首先需要设置什么。
使用由服务器管理的设置
由服务器管理的设置需要一个组织和一个 .github-private 存储库。 若要创建这些内容,贵企业中的一名用户需要拥有 GitHub Enterprise 许可证。 使用该许可证,用户可以:
- 创建组织和
.github-private存储库。 请参阅“创建 .github-private 存储库”。 - 在
copilot/managed-settings.json文件中向仓库添加设置。 - 将该组织设置为企业 AI 标准的治理源。 请参阅“创建 .github-private 存储库”。
从此开始,企业 Copilot 计划中使用 Copilot CLI 或受支持的客户端的任何用户都受这些设置的约束,无论他们是否有权访问 .github-private 存储库。
此方法的主要限制是 GitHub Enterprise 创建组织和存储库的许可证要求。
使用由 MDM 管理的设置或基于文件的设置
如果您不想添加 GitHub Enterprise 许可证或创建组织,则可以通过 MDM(如 Intune 或 Jamf)或基于文件的部署方式来部署相同的逻辑配置。 基于文件的传递直接使用 JSON 架构。 原生 MDM 下发使用扁平键和字符串编码值。 这两种方法都不需要组织或 .github-private 存储库。 请参阅 部署 MDM 管理的设置 和 部署基于文件的设置。 有关VS Code的具体指导,请参阅文档中的VS Code。
插件访问注意事项
用户无需访问 .github-private 存储库,客户端也能拉取受管设置。 但是,如果受管理设置使用 enabledPlugins 定义了某个插件,客户端会自动尝试为每位用户安装该插件。 用户需要访问托管插件文件的位置。 如果插件托管在专用存储库 GitHub中,则用户需要该存储库的授权,这可能需要许可证。