Skip to main content

Enterprise Server 3.22 目前作为发布候选版本提供。

设置和使用 GitHub Copilot CLI

为 GitHub Enterprise Server 实例配置模型提供程序,然后将客户端连接到 Copilot CLI 实例。

注意

此功能目前处于技术预览版,可能会发生更改。

您可以将 Copilot CLI 配置为在断连或物理隔离环境中与 GitHub Enterprise Server 配合使用,而无需连接到 GitHub Cloud。 管理员为实例配置模型提供程序,用户使用其Copilot CLI凭据进行连接GitHub Enterprise Server。

设置此功能涉及两个角色:

  • 管理员:使用 ghe-config 配置实例上的GitHub Enterprise Server模型提供程序。 这是一次性设置,需要管理 SSH 访问权限。
  • 最终用户:设置本地计算机上的环境变量以连接到 Copilot CLI 实例。

先决条件

  • 你拥有对 GitHub Enterprise Server 实例的 SSH 管理访问权限。
  • 你拥有受支持 LLM 提供程序的 API 密钥。
  • Copilot CLI 安装在客户端计算机上。 请参阅“安装 GitHub Copilot CLI”。
  • GitHub CLI(gh)安装在客户端计算机上。 请参阅GitHub CLI文档中的GitHub CLI手册

有关支持的提供程序和模型要求的信息,请参阅 在 GitHub Copilot CLI 中使用自己的 LLM 模型

配置您的 GitHub Enterprise Server 实例

此步骤适用于实例的 GitHub Enterprise Server 操作员或管理员。

通过管理 SSH 访问 GitHub Enterprise Server 实例,使用以下 ghe-config 值配置模型提供程序。 配置后,运行 ghe-config-apply 以应用更改。

变量名称必需选项Description
app.copilot-proxy.enabled是的
truefalse启用或禁用该功能。
app.copilot-proxy.endpoint-url是的URI完整的上游基础 URL,包括任何版本前缀(例如,https://api.openai.com/v1)。
secrets.copilot-proxy.endpoint-key是的String上游服务提供商的 API 密钥。
app.copilot-proxy.provider-model-id是的String
Copilot CLI 在内部查找模型时使用的提供程序模型 ID。
app.copilot-proxy.provider-type是的
openaiazureanthropic提供程序类型。 OpenAI 包括 OpenAI、Ollama、vLLM、Foundry Local,以及任何其他兼容 OpenAI Chat Completions API 的端点。
app.copilot-proxy.upstream-timeout整数,以秒为单位上游请求的读取/发送超时时间(秒)。 如果未设置,请回退到默认超时。
app.copilot-proxy.provider-wire-api
completionsresponses提供方的线传输 API 格式。
app.copilot-proxy.provider-wire-modelString如果发送给上游提供方的模型标识符与内部模型 ID 不同,则覆盖该模型标识符。
app.copilot-proxy.enable-upstream-probe
truefalse启用或禁用启动上游探测。 默认为启用。 禁用时,将跳过启动探测。

例如,以下命令配置 OpenAI 提供程序。

ghe-config app.copilot-proxy.enabled true
ghe-config app.copilot-proxy.endpoint-url 'https://api.openai.com/v1'
ghe-config secrets.copilot-proxy.endpoint-key 'YOUR-API-KEY'
ghe-config app.copilot-proxy.provider-model-id 'gpt-5.5'
ghe-config app.copilot-proxy.provider-wire-model 'gpt-5.5'
ghe-config app.copilot-proxy.provider-type openai
ghe-config app.copilot-proxy.upstream-timeout 300
ghe-config app.copilot-proxy.enable-upstream-probe false
ghe-config-apply

在应用该配置之前,请将 YOUR-API-KEY 替换为真实的 API 密钥。

配置您的 Copilot CLI 客户端(终端用户)

在启动Copilot CLI之前,请设置以下环境变量,将GitHub Enterprise Server配置为连接到您的Copilot CLI实例。

环境变量必需Description
COPILOT_PROVIDER_GHES_HOST是的实例的 GitHub Enterprise Server 主机名。
COPILOT_PROVIDER_GHES_TOKEN是的用于 personal access token 实例的 GitHub Enterprise Server。 此令牌用于对发送到该实例的请求进行身份验证。
COPILOT_OFFLINE是的启用脱机模式。 仅当启用脱机模式时,提供程序 GitHub Enterprise Server 才处于活动状态。

了解客户端(最终用户)令牌

Copilot CLI 需要访问 LLM 推理,因此 COPILOT_PROVIDER_GHES_TOKEN 始终是必需的。 你可能也非常希望 Copilot CLI 执行 GitHub 诸如创建问题、拉取请求和搜索存储库等操作。 此类操作可以通过 GitHub CLI 进行。

建议优先运行 gh auth login --hostname YOUR-GHES-HOSTNAME。 成功后,下一步是将 COPILOT_PROVIDER_GHES_TOKEN 设置为在 gh auth login --hostname YOUR-GHES-HOSTNAME 中生成的令牌。 动态获取令牌比从 ~/.config/gh/hosts.yml 复制令牌更安全。 您可以通过使用COPILOT_PROVIDER_GHES_TOKEN="$(gh auth token --hostname YOUR-GHES-HOSTNAME)"来实现。

或者,您可以在 personal access token 实例上生成一个 GitHub Enterprise Server,将该令牌设为 COPILOT_PROVIDER_GHES_TOKEN,并在运行 gh auth login --hostname YOUR-GHES-HOSTNAME 时使用同一个令牌。

在以交互方式使用 Copilot CLI 时,上述方法有效。 对于自动化,需要以不同的方式执行一些操作:

  • GITHUB_ENTERPRISE_TOKEN(或GH_ENTERPRISE_TOKEN)设为personal access token。
  • GH_HOST 设置为您的服务器主机名。
  • 当针对同一主机同时存在 GH_ENTERPRISE_TOKEN 凭据和 gh auth login 凭据时,环境变量具有更高的优先级。
  1. 进行身份验证GitHub CLI。

    gh auth login --hostname YOUR-GHES-HOSTNAME
    
  2. 设置 Copilot CLI 所需的环境变量。

    export COPILOT_PROVIDER_GHES_HOST=YOUR-GHES-HOSTNAME
    export COPILOT_PROVIDER_GHES_TOKEN="$(gh auth token --hostname YOUR-GHES-HOSTNAME)"
    export COPILOT_OFFLINE=true
    

    如果你已使用 gh auth login 通过多个帐户完成身份验证,则可以将 GH_HOST 设置为你的服务器主机名,并将 GH_ENTERPRISE_TOKEN(或 "$(gh auth token --hostname YOUR-GHES-HOSTNAME)")设置为 GITHUB_ENTERPRISE_TOKEN。 这样可确保 GitHub CLI 以 GitHub Enterprise Server 实例为目标。

    export GH_HOST=YOUR-GHES-HOSTNAME
    export GH_ENTERPRISE_TOKEN="$(gh auth token --hostname YOUR-GHES-HOSTNAME)"
    
  3. 启动 Copilot CLI。

copilot

可以将整个设置作为脚本运行。

Examples

如果 GitHub Enterprise Server 和你的 Copilot CLI 配置都正确,那么你应该会在 Copilot CLI 会话中看到如下所示的响应。

     • fabric-core-mcp — disabled
     • powerbi-mcp — disabled
     • slack — connected

 ● Current model: gpt-5.5

 ❯ Hello                                                                   13:31

 ● Hello!

 ❯ what is going on in github/codeql-action repo?                          13:33

 ● I’ll check recent repository activity on the GHES host: repo metadata, open 
   PRs/issues, and latest commits.

 $ Shell Fetch repo metadata 2 lines…                                         5s
   gh api --hostname "$GH_HOST" repos/github/codeql-action --jq '{name_with_own…

GitHub Enterprise Server 支持的功能

有关 Copilot CLI 功能的最新信息,请参阅 GitHub Copilot CLI,以其作为主要准确信息来源。 通常,在 GitHub 离线配置中,任何依赖于连接到 GitHub Enterprise Server 云服务的功能均不可用。

下表对 GitHub Enterprise Server 产品/服务中可提供的内容作了方向性概览。

能力GitHub / GitHub Enterprise CloudGitHub Enterprise Server
AI 辅助编码(提示、代码生成、调试)
Shell 命令和文件操作
GitHub 操作(问题、PR、存储库)通过 gh CLI
(需要已通过该实例身份验证的 gh CLI)
GitHub MCP 服务器工具
Web 搜索和 Web 提取
Copilot 模型选择(由 GitHub 托管的模型)
遥测和使用情况报告
自动更新