GitHub Enterprise Server
把自托管的 GitHub Enterprise Server(GHES)接入 Claude Code,用于云端会话、代码评审和插件市场:支持范围、管理员设置、GitHub App 权限、开发者工作流、插件市场与排障。
GHES 支持让你的组织把 Claude Code 用在托管于自管 GitHub 实例(而非 github.com)上的仓库。Owner 连接好你的 GHES 实例后,开发者无需逐仓库配置,就可以运行云端会话和获得自动代码评审;托管在你实例上的插件市场也受支持。此功能适用于 Team 和 Enterprise 套餐。github.com 上的仓库见云端会话和代码评审页面,在自己的 CI 基础设施里运行 Claude 见 GitHub Actions。
支持哪些功能
| 功能 | GHES 支持 | 说明 |
|---|---|---|
| 云端会话 | ✅ | Owner 一次性连接 GHES 实例,开发者照常用 claude --cloud 或 claude.ai/code |
| 代码评审 | ✅ | 与 github.com 上相同的自动 PR 评审 |
| Claude Security | ✅ | 在 claude.ai/security 对 Enterprise 套餐公开 beta |
| Teleport 会话 | ✅ | 用 --teleport 在云端与终端之间移动会话 |
| 插件市场 | ✅ | 各入口的凭据要求不同 |
| 贡献指标 | ✅ | 通过 webhook 送入分析仪表盘 |
| GitHub Actions | ✅ | 需要手动设置 workflow;/install-github-app 仅限 github.com |
| GitHub MCP 服务器 | ❌ | 不支持 GHES 实例 |
管理员设置
Owner 把 GHES 实例一次性连接到 Claude Code,之后组织里的开发者无需额外配置就能使用 GHES 仓库。需要 Claude 组织的 Owner 或 Primary Owner 角色,以及在 GHES 实例上创建 GitHub App 的权限。引导式设置会生成 GitHub App 清单(manifest)并把你重定向到 GHES 实例一键创建应用;环境阻止重定向流程时有手动设置的备选方案。
- 打开 claude.ai/admin-settings/claude-code,找到 GitHub Enterprise Server 一节
- 点 Connect,输入最多 20 个字符的连接显示名和 GHES 主机名(如
github.example.com);如果实例使用自签名或私有 CA,在可选字段里粘贴 CA 证书 - 点 Continue to GitHub Enterprise,浏览器带着预填的应用清单重定向到你的 GHES 实例,检查配置后点 Create GitHub App,GHES 会带着自动存储的应用凭据重定向回 Claude
- 在 GHES 实例的 GitHub App 页面,把应用安装到你想让 Claude 访问的仓库或组织(可以先装一部分,之后再加)
- 回到 claude.ai/admin-settings/claude-code,为你的 GHES 仓库启用代码评审、Claude Security 和贡献指标,配置与 github.com 相同
GitHub App 权限
清单为应用配置了以下权限和 webhook 事件,合起来覆盖云端会话、代码评审、Claude Security、插件市场和贡献指标:
| 权限 | 访问 | 用途 |
|---|---|---|
| Contents | 读写 | 克隆仓库、推送分支 |
| Pull requests | 读写 | 创建 PR、发布评审评论 |
| Issues | 读写 | 回应 issue 提及 |
| Checks | 读写 | 发布代码评审 check run |
| Actions | 读 | 读取 CI 状态以自动修复 |
| Commit statuses | 读 | 读取报告 commit status 而非 check run 的提供商的 CI 状态 |
| Repository hooks | 读写 | 在 Organization settings > Plugins & skills 里为某个市场打开 Sync automatically 时,在插件市场仓库上创建 webhook |
| Metadata | 读 | GitHub 对所有应用的要求 |
| Organization members | 读 | 与 github.com 上的 Claude GitHub 应用对齐,用于在关联安装时检查连接用户的组织角色 |
应用订阅 pull_request、issue_comment、pull_request_review_comment、pull_request_review、check_run 和 status 事件。GitHub 只在创建应用时应用清单,所以用旧版清单创建的应用保留创建时的权限和事件;如果缺少,在 GHES 实例的应用设置里添加,GitHub 会请每个安装的所有者批准新权限。
手动设置
引导式重定向被网络配置阻止时,点 Add manually:在 GHES 实例上用上述权限和事件创建 GitHub App,然后在表单里填连接详情:显示名、GHES 主机名和可选端口、应用 ID、客户端 ID、客户端密钥、webhook 密钥和私钥。保存连接后 Claude 会生成应用的 webhook URL;点 Add configuration 后,打开连接的 More options 菜单选 Copy webhook URL,粘贴到 GHES 实例上应用的 webhook 设置里,使用与表单里相同的 webhook 密钥。
网络要求
对 Anthropic 托管的会话,你的 GHES 实例必须能从 Anthropic 基础设施访问,这样 Claude 才能克隆仓库并发布评审评论;如果实例在防火墙后,把 Anthropic 的出站 IP 地址加入允许列表。自托管环境里的会话从你网络内部克隆(除非运行器选择使用 Anthropic git 代理)。会话开始前在 Anthropic 一侧运行的托管流程(如仓库选择器),即使会话在自托管环境里运行,也需要你的 GHES 实例能从 Anthropic 基础设施访问;SCM 连接器不可用,所以这些流程无法触及只在内部可路由的 GHES 主机。
开发者工作流
Owner 连接好 GHES 实例后,开发者一侧无需配置:Claude Code 从你工作目录的 git remote 自动检测 GHES 主机名。像平常一样从 GHES 克隆仓库,然后启动云端会话:
git clone git@github.example.com:platform/api-service.git
cd api-service
claude --cloud "Add retry logic to the payment webhook handler"Claude 从 git remote 检测 GHES 主机,并通过你组织配置的实例路由会话;会话从 GHES 克隆仓库并把改动推送到一个分支,在 claude.ai/code 监控进度。用 claude --teleport 把云端会话拉到本地终端:Teleport 会先验证你在同一个 GHES 仓库的检出里,再获取分支并加载会话历史。
GHES 上的插件市场
在 GHES 实例上托管插件市场,在组织里分发内部工具。市场结构与 github.com 托管的相同,但安装方式因添加位置而异,各入口的凭据也不同:
| 入口 | 安装方式 | 每个用户需要 |
|---|---|---|
| Claude Code CLI 和桌面版 | 用机器上现有的 git 凭据克隆市场仓库 | 从其机器访问你的 GHES 主机的 git 权限 |
托管设置(extraKnownMarketplaces) | 注册条目并用机器上现有的 git 凭据克隆 | 同上 |
| claude.ai 组织插件设置 | Owner 选择 GHES 实例作为来源;Anthropic 后端用管理员设置里的 GitHub App 获取并同步仓库 | 添加后每用户无需任何东西;添加它的 Owner 需要连接自己的 GitHub Enterprise 账号作为访问检查,且 GitHub App 必须安装在市场仓库上 |
| claude.ai 用户设置 | Anthropic 后端用提交用户的 GitHub Enterprise 连接获取仓库 | 他们自己连接到 Claude 的 GitHub Enterprise 账号 |
| 云端会话 | 在会话沙箱内克隆市场;沙箱只有在会话的仓库在同一实例时才能访问你的 GHES 实例,且 git 凭据限于会话的仓库 | 对 GHES 托管的市场不可靠 |
注意:从用户设置添加市场时,claude.ai 上的 GitHub Enterprise 连接是按用户的。管理员设置把 GHES 实例连接到组织,但不会连接各个用户账号:每个从自己设置添加 GHES 市场的用户必须先连接自己的 GitHub Enterprise 账号。
添加 GHES 市场
owner/repo 简写总是解析到 github.com。GHES 托管的市场要用完整 git URL,推荐 HTTPS:
/plugin marketplace add https://github.example.com/platform/claude-plugins.gitSSH URL 在机器已信任你的 GHES 主机时可用(Claude Code 以非交互方式运行 git,会拒绝连接不在机器 known_hosts 文件里的主机;用带 git 凭据助手的 HTTPS URL 可以避免这个要求):
/plugin marketplace add git@github.example.com:platform/claude-plugins.git用托管设置预注册 GHES 市场
extraKnownMarketplaces 设置预注册市场,让开发者无需手动设置就拥有它;它可用于任何设置文件,托管设置可在组织范围下发:
{
"extraKnownMarketplaces": {
"internal-tools": {
"source": { "source": "git", "url": "https://github.example.com/platform/claude-plugins.git" }
}
}
}这条路径不经过 claude.ai,所以不需要按用户的 GitHub Enterprise 连接。要顺利推行:用完整 git URL(简写总是解析到 github.com);优先用 HTTPS URL(SSH 克隆在没有信任你 GHES 主机密钥的机器上会失败);确认每台机器都能从你的 GHES 主机克隆(缺凭据的机器上市场被注册却从不安装,其插件会报告找不到而不是提示输入凭据);确认设置到达每台机器(托管设置文件只在部署到的机器上生效,例如通过设备管理系统)。
在托管设置里允许 GHES 市场
如果你的组织用托管设置限制开发者能添加哪些市场,用 hostPattern 来源类型允许来自你 GHES 实例的所有市场,而不必列举每个仓库:
{
"strictKnownMarketplaces": [
{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }
]
}限制
/install-github-app命令:改用 claude.ai 上的管理员设置流程;如果你还想要 GHES 上的 GitHub Actions workflow,手动改写示例 workflow- GitHub MCP 服务器:改用配置为你 GHES 主机的
ghCLI:运行gh auth login --hostname github.example.com认证,之后 Claude 就能在会话里使用gh命令
排障
- 云端会话克隆仓库失败:确认 Owner 已为你的 GHES 实例完成设置、GitHub App 已安装在你工作的仓库上,并让连接实例的 Owner 确认 Claude 设置里登记的主机名与你的 git remote 里的主机名一致
- 添加市场时出现策略错误:
/plugin marketplace add被阻止,说明你的组织限制了市场来源,请管理员在托管设置里为你的 GHES 主机名添加hostPattern条目 - 在 claude.ai 上添加市场出现 GitHub 访问错误:如果从用户设置添加 GHES 市场失败并出现「Marketplace couldn't be added」这样的通用错误,先检查你的 GitHub Enterprise 连接(即使组织的实例已配置、别的用户已连接,只要你自己的账号没连接就会如此)。连接办法:claude.ai/code 的仓库选择器为每个已配置的 GHES 实例提供连接选项,Owner 也可以从 Claude Code 管理设置的 GitHub Enterprise 一节连接;然后重新添加。或者请 Owner 在组织插件设置里添加。在其他 claude.ai 入口,GHES 市场出现「Repository not found. If it's private, GitHub access is required」通常说明同样缺少连接
- GHES 实例不可达:评审或 Anthropic 托管的云端会话超时,可能是实例无法从 Anthropic 基础设施访问,确认防火墙允许来自 Anthropic 出站 IP 地址的入站连接;自托管环境里的会话从你的网络内部访问 GHES,它们无法克隆时检查运行器自己的网络路径
- 会话启动失败并提示
Unable to get organization UUID:Claude Code 无法从你的凭据读出 claude.ai 组织,用你 Team 或 Enterprise 组织里的账号/login(GHES 支持仅限这些套餐)