Skip to main content

配置企业管理设置

配置企业托管设置,以通过服务器管理、MDM 管理或基于文件的部署方式,在整个企业范围内集中控制 Copilot 客户端的行为。

谁可以使用此功能?

Enterprise owners

借助企业托管设置,企业所有者可以集中定义配置设置并将其分发给企业 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 企业的指南

部署由服务器管理的设置

  1. 创建和配置 .github-private 存储库。 请参阅“创建 .github-private 存储库”。
  2. 在存储库中,创建或更新 copilot/managed-settings.json
  3. 以 JSON 格式添加企业策略密钥和值。
  4. 提交更改并将其推送到默认分支。
  5. 确认企业用户正在运行受支持的客户端。 更新的设置在大约一小时内自动应用。 重启客户端或再次登录会触发即时刷新。

覆盖特定团队的设置

对于由服务器管理的部署,当一个或多个企业团队需要使用与默认的 copilot/team-mappings.json 值不同的设置时,请使用 copilot/teams/copilot/managed-settings.json 目录。 enabledPluginsextraKnownMarketplaces 以累加方式起作用。 企业 managed-settings.json 设定了基准,而企业团队文件可以在此基础上添加更多插件和应用市场。

  1. 在企业 copilot/managed-settings.json 文件中,标记想要使用 { "overridable": <VALUE> } 语法进行替代的每个密钥。 json映射到团队的文件只能为标记为可重写的密钥发送不同的值。 overridable当团队文件不为给定密钥声明其他值时,你提供managed-settings.json的值是默认值。 例如,要同时延迟 modeldisableBypassPermissionsMode

    {
      "model": { "overridable": "auto" },
      "permissions": {
        "disableBypassPermissionsMode": { "overridable": "disable" }
      },
      "allowedMcpServers": {
        "overridable": [
          { "serverUrl": "https://mcp.company.com/*" }
        ]
      }
    }
    
  2. 在企业的存储库.github-private中创建copilot/team-mappings.json。 将每个团队设置文件映射到一个或多个企业团队标识符。 键是设置文件名,值是由团队 slug 组成的数组,因此你可以将同一个文件应用于多个团队。

    {
      "devs.json": ["developers-all", "finops-dev"],
      "ai-users.json": ["ai-baseline-trained"],
      "frontier.json": ["ai-pioneers"]
    }
    
  3. copilot/teams/ 下创建团队设置文件。 可以包括标记为可重写的任何键,以及累加键 enabledPluginsextraKnownMarketplaces。 其他每个密钥都受企业默认值的约束。

    {
      "model": "unmanaged",
      "permissions": {
        "disableBypassPermissionsMode": "unmanaged"
      },
      "allowedMcpServers": [
        { "serverUrl": "https://team-specific-mcp.company.com/*" }
      ]
    }
    
  4. 提交更改并将其推送到默认分支。

GitHub 评估企业团队成员身份并为每个人应用匹配设置。 如果用户属于多个团队,则会针对每个键采用限制最少的值合并其团队文件,然后在企业设置之下应用,其中平台决策始终具有优先权。

部署由 MDM 管理的设置

原生 MDM 下发使用与服务器管理设置相同的逻辑键和值,但不会下发 managed-settings.json 文件。 相反,MDM 平台会将各项设置部署为由操作系统管理的字符串值。

Windows 和 macOS 支持原生 MDM 交付:

操作系统本地策略位置
Windows
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\GitHubCopilot 下的字符串(REG_SZ)值
macOS
com.github.copilot 偏好设置域中强制管理的偏好设置里的字符串值
Linux不支持原生 MDM 交付。 请改用基于文件的设置。

所有原生 MDM 值都必须是字符串。 对于嵌套设置,请使用点分隔的键,例如 permissions.disableBypassPermissionsModesandbox.enabled。 直接存储普通字符串值。 将布尔值、数组和对象存储为字符串值中的 JSON 文本。

例如:

Key原生字符串值
permissions.disableBypassPermissionsModedisable
sandbox.enabledtrue
enabledPlugins{"PLUGIN-NAME@MARKETPLACE-NAME":true}
  1. 选择要强制执行的设置。 请参阅“企业管理设置”。

  2. 将每个设置转换为本机键和字符串值表示形式。

  3. 使用企业 MDM 平台和标准部署流程,将这些设置部署到本地策略位置。

  4. 将策略分配给目标设备组。

    客户端无需重启,并且会每小时检查一次是否有更新的策略。 在 VS Code 中,管理员可以通过运行 Developer: Sync Account Policy 命令来强制执行一次检查,以进行测试。

  5. 确认设置生效。 请参阅 “验证配置是否已应用”。

部署基于文件的设置

managed-settings.json 放置在以下位置:

操作系统文件位置
macOS/Library/Application Support/GitHubCopilot/managed-settings.json
Windows%ProgramFiles%\GitHubCopilot\managed-settings.json
Linux/etc/github-copilot/managed-settings.json
  1. 使用要强制执行的策略密钥和值创建或更新 managed-settings.json 文件。
  2. 使用标准设备管理过程将文件分发到特定于平台的位置。 不接收文件的计算机不受此策略的限制。
  3. 在 macOS 和 Linux 上,对于 Copilot CLI,将该文件设为由 root 拥有的普通文件,并确保其不具有组写权限或其他用户写权限。 请勿使用符号链接。 CLI 拒绝不符合这些要求的文件。
  4. 要求用户重启受支持的客户端,以便在启动时加载更新的策略。
  5. 确认设置生效。 请参阅 “验证配置是否已应用”。

验证配置是否已应用

对于服务器管理的部署,支持的客户端上的用户将在大约一小时内看到指定的设置。 这包括 copilot/managed-settings.jsoncopilot/team-mappings.json 以及 copilot/teams/ 中的文件。 重启客户端或再次登录会触发即时刷新。

对于由 MDM 管理的部署,客户端每小时检查一次是否有策略更新。 对于基于文件的部署,请重启客户端以加载更新的文件。

如果用户看不到这些设置,请确保他们已通过您的企业或其下属某个组织获得对 Copilot 的访问权限。 如果用户从多个计费实体收到许可证,请确保他们在 个人 Copilot 设置的“按使用情况计费”下拉列表中选择了你的企业。

专属 Copilot Business 企业指南

如果你拥有用于 Copilot Business 的专属企业(有时称为 Copilot 独立版),你仍然可以使用企业管理设置。 你选择的部署方法决定了你首先需要设置什么。

使用由服务器管理的设置

由服务器管理的设置需要一个组织和一个 .github-private 存储库。 若要创建这些内容,贵企业中的一名用户需要拥有 GitHub Enterprise 许可证。 使用该许可证,用户可以:

  1. 创建组织和 .github-private 存储库。 请参阅“创建 .github-private 存储库”。
  2. copilot/managed-settings.json 文件中向仓库添加设置。
  3. 将该组织设置为企业 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中,则用户需要该存储库的授权,这可能需要许可证。