# 设置和使用 GitHub Copilot CLI

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

> \[!NOTE]
> 此功能目前处于技术预览版，可能会发生更改。

您可以将 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](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli)”。
* GitHub CLI（`gh`）安装在客户端计算机上。 请参阅GitHub CLI文档中的[GitHub CLI手册](https://cli.github.com/manual/)。

有关支持的提供程序和模型要求的信息，请参阅 [在 GitHub Copilot CLI 中使用自己的 LLM 模型](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models)。

## 配置您的 GitHub Enterprise Server 实例

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

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

| 变量名称                                      | 必需                                                                                           | 选项       | Description                                           |
| ----------------------------------------- | -------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------------- |
| `app.copilot-proxy.enabled`               | 是的                                                                                           |          |                                                       |
| `true`、`false`                            | 启用或禁用该功能。                                                                                    |          |                                                       |
| `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`         | 是的                                                                                           |          |                                                       |
| `openai`、`azure`、`anthropic`              | 提供程序类型。 OpenAI 包括 OpenAI、Ollama、vLLM、Foundry Local，以及任何其他兼容 OpenAI Chat Completions API 的端点。 |          |                                                       |
| `app.copilot-proxy.upstream-timeout`      | 否                                                                                            | 整数，以秒为单位 | 上游请求的读取/发送超时时间（秒）。 如果未设置，请回退到默认超时。                    |
| `app.copilot-proxy.provider-wire-api`     | 否                                                                                            |          |                                                       |
| `completions`、`responses`                 | 提供方的线传输 API 格式。                                                                              |          |                                                       |
| `app.copilot-proxy.provider-wire-model`   | 否                                                                                            | String   | 如果发送给上游提供方的模型标识符与内部模型 ID 不同，则覆盖该模型标识符。                |
| `app.copilot-proxy.enable-upstream-probe` | 否                                                                                            |          |                                                       |
| `true`、`false`                            | 启用或禁用启动上游探测。 默认为启用。 禁用时，将跳过启动探测。                                                             |          |                                                       |

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

```shell
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。

   ```shell
   gh auth login --hostname YOUR-GHES-HOSTNAME
   ```

2. 设置 Copilot CLI 所需的环境变量。

   ```shell
   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 实例为目标。

   ```shell
   export GH_HOST=YOUR-GHES-HOSTNAME
   export GH_ENTERPRISE_TOKEN="$(gh auth token --hostname YOUR-GHES-HOSTNAME)"
   ```

3. 启动 Copilot CLI。

```bash
copilot
```

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

## Examples

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

```shell
     • 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](/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli)，以其作为主要准确信息来源。 通常，在 GitHub 离线配置中，任何依赖于连接到 GitHub Enterprise Server 云服务的功能均不可用。

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

| 能力                                                                                                                                                                                                                                                                                                                                               |                                                                                                                                             GitHub / GitHub Enterprise Cloud                                                                                                                                             |                                                                                                                                                                                                       GitHub Enterprise Server                                                                                                                                                                                                      |
| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| AI 辅助编码（提示、代码生成、调试）                                                                                                                                                                                                                                                                                                                              | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> |                                                       <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                      |
| Shell 命令和文件操作                                                                                                                                                                                                                                                                                                                                    | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> |                                                       <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>                                                      |
| GitHub 操作（问题、PR、存储库）通过 `gh` CLI                                                                                                                                                                                                                                                                                                                  | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> |                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg>（需要已通过该实例身份验证的 `gh` CLI） |                                                                                                                                                                                                                                                                                                                          |                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| GitHub MCP 服务器工具                                                                                                                                                                                                                                                                                                                                 | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Not available" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |
| Web 搜索和 Web 提取                                                                                                                                                                                                                                                                                                                                   | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Not available" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |
| Copilot 模型选择（由 GitHub 托管的模型）                                                                                                                                                                                                                                                                                                                     | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Not available" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |
| 遥测和使用情况报告                                                                                                                                                                                                                                                                                                                                        | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Not available" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |
| 自动更新                                                                                                                                                                                                                                                                                                                                             | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Available" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Not available" role="img"><path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path></svg> |