跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

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 实例一键创建应用;环境阻止重定向流程时有手动设置的备选方案。

  1. 打开 claude.ai/admin-settings/claude-code,找到 GitHub Enterprise Server 一节
  2. 点 Connect,输入最多 20 个字符的连接显示名和 GHES 主机名(如 github.example.com);如果实例使用自签名或私有 CA,在可选字段里粘贴 CA 证书
  3. 点 Continue to GitHub Enterprise,浏览器带着预填的应用清单重定向到你的 GHES 实例,检查配置后点 Create GitHub App,GHES 会带着自动存储的应用凭据重定向回 Claude
  4. 在 GHES 实例的 GitHub App 页面,把应用安装到你想让 Claude 访问的仓库或组织(可以先装一部分,之后再加)
  5. 回到 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.git

SSH 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 主机的 gh CLI:运行 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 支持仅限这些套餐)