OpenAI
页面内容为机器翻译。查看英文原文。

在 ChatGPT 中设置 GitHub Enterprise 应用模板

了解工作空间管理员如何使用其组织自己的 GitHub App,在 ChatGPT 中配置 GitHub Enterprise 应用模板。

更新于:21 days ago

概述

如果你是 ChatGPT 工作空间管理员,正在为组织设置 GitHub Enterprise 应用模板,请参阅本指南。模板并不是成员最终使用的应用。模板提供一套设置流程:你提供所需的 GitHub Enterprise 配置后,它会创建专属于该工作空间的应用草稿。

对于 GitHub Enterprise,设置过程会将 ChatGPT 连接到你组织的 GitHub Enterprise 主机。你需要创建一个 GitHub 应用、注册 ChatGPT 回调 URL 并生成凭据,然后将这些值粘贴到 ChatGPT 模板设置流程中。ChatGPT 创建应用草稿后,你可以将其发布,并像其他工作空间应用一样进行管理。

有关工作空间导航和应用访问权限的信息,请参阅:插件和应用的管理控制、安全与合规。

你要设置的内容

你将在 ChatGPT 中创建一个专属于该工作空间的 GitHub Enterprise 应用。此应用会使用:

  • 在你的 GitHub Enterprise 主机上注册的 GitHub 应用。

  • GitHub 应用的客户端 ID 和客户端密钥,用于用户 OAuth 授权。

  • GitHub 应用的私钥,让 ChatGPT 能够生成用于代码仓库操作的安装令牌。

  • Webhook 密钥和 Webhook URL,让 GitHub Enterprise 能够将安装和代码仓库事件发送回 ChatGPT。

  • 你的 GitHub Enterprise 主机名,例如 github.example.com。

请创建 GitHub 应用,而不是独立的 GitHub OAuth 应用。ChatGPT 模板设置需要 GitHub 应用的凭据、私钥和 Webhook 设置。

开始之前

你需要:

  • ChatGPT 工作空间管理员或所有者权限。

  • 能够创建和安装 GitHub 应用的 GitHub Enterprise 管理员或组织所有者权限。

  • 仅包含主机名的 GitHub Enterprise 地址,不含 https:// 或路径。

  • 确定 ChatGPT 应支持哪些代码仓库操作,例如只读代码仓库搜索、pull request 工作流、议题工作流、文件编辑、GitHub Actions 或范围更广的 Codex 工作流。

  • 用于处理 GitHub 应用私钥和客户端密钥的安全环境。

在不同的标签页中打开 ChatGPT 和 GitHub Enterprise,并保持打开状态。请勿自行编写回调 URL。请原样复制 ChatGPT 中显示的回调 URL。

需要准备的值

  • GitHub Enterprise 主机名:例如 github.example.com。

  • 回调 URL:从 ChatGPT 模板设置流程中复制。

  • GitHub 应用的客户端 ID。

  • GitHub 应用的客户端密钥。

  • GitHub 应用的 PEM 格式私钥。

  • ChatGPT 生成的 Webhook 密钥。

  • 在 ChatGPT 中创建应用草稿后生成的 Webhook URL。

在 ChatGPT 中开始设置模板

  1. 在 ChatGPT 中,切换到要提供此应用的工作空间。

  2. 打开工作空间设置 > 应用。你也可以前往管理控制台,选择目标 ChatGPT 工作空间,然后打开插件。选择管理旧版应用,打开保留的应用页面。

  3. 选择目录。

  4. 搜索 GitHub Enterprise。

  5. 选择 GitHub Enterprise 应用模板并开始设置。

  6. 输入清晰的应用名称和描述,例如 GitHub Enterprise 或 GitHub Enterprise - 工程团队。

  7. 输入 GitHub Enterprise 主机名,例如 github.example.com。

  8. 复制 ChatGPT 中显示的回调 URL。保持此标签页打开。

  9. 如果设置过程中显示了生成的 Webhook 密钥,请将其复制。

回调 URL 示例:https://chatgpt.com/connector/oauth/<callback_id>

请勿删除回调 ID、在末尾添加斜杠,或将其替换为通用的 ChatGPT URL。

在 GitHub Enterprise 中创建 GitHub 应用

  1. 打开你的 GitHub Enterprise 主机地址,例如 https://github.example.com。

  2. 进入应拥有该应用的组织或账号。

  3. 打开“设置 > 开发者设置 > GitHub 应用”。

  4. 选择新建 GitHub 应用。

  5. 输入一个清晰易懂的应用名称,例如 ChatGPT GitHub Enterprise。

  6. 输入主页 URL。如果没有专用的内部页面,请使用 GitHub Enterprise 组织的 URL。

  7. 在“回调 URL”中,原样粘贴从 ChatGPT 复制的回调 URL。

  8. 保持“用户授权令牌到期失效”处于启用状态,除非你的安全团队有明确理由更改此设置。

  9. 启用“安装期间请求用户授权”,以便用户在安装或连接过程中为应用授权。

  10. 在“此 GitHub 应用可以安装在哪些位置?”下,选择能满足部署需求且范围最小的选项。

  11. 创建 GitHub 应用。

配置权限和事件

根据你计划启用的 ChatGPT 操作,选择所需的最低权限。

对于只读的代码仓库查找和问答功能,可先配置以下读取权限:

  • 元数据:只读。GitHub 要求 GitHub 应用具备元数据访问权限。

  • 内容:只读,用于访问文件和代码仓库内容。

  • 议题:只读,适用于需要搜索或阅读议题的情况。

  • Pull requests:只读,适用于需要搜索 pull request 或获取审查上下文的情况。

  • Actions:只读,适用于需要获取工作流运行状态、作业、日志或构件的情况。

对于涉及写入操作的工作流,仅在需要时添加写入权限,例如内容、Pull requests、议题、Actions 或工作流的写入权限。在能够支持预期 ChatGPT 操作的前提下,尽量缩小权限范围。

Webhook 事件应与你要支持的工作流相匹配。常见事件包括安装、安装关联的代码仓库、推送、Pull request、议题、议题评论、工作流运行和工作流作业。

生成并复制 GitHub 应用凭据

  1. 在 GitHub 应用设置中,复制客户端 ID。

  2. 生成客户端密钥并立即复制。

  3. 在私钥下生成一个私钥。

  4. 下载 .pem 文件并妥善保管。

  5. 在本地打开 .pem 文件,复制完整的 PEM 文本,包括起始行和结束行。

私钥属于敏感信息。请像保护凭据一样保护私钥。如果私钥泄露,请生成新私钥,更新 ChatGPT 应用设置,并在 GitHub Enterprise 中删除已泄露的密钥。

在 ChatGPT 中完成设置

  1. 返回 ChatGPT 模板设置标签页。

  2. 将 GitHub 应用的客户端 ID 粘贴到 OAuth 客户端 ID 中。

  3. 将 GitHub 应用的客户端密钥粘贴到 OAuth 客户端密钥中。

  4. 保持权限范围不变,除非你的组织明确需要覆盖模板的默认设置。

  5. 确认 GitHub Enterprise 主机名字段中仅包含主机名,例如 github.example.com。

  6. 将 GitHub 应用的 PEM 格式私钥粘贴或上传到“GitHub 应用私钥”中。

  7. 确认已填入生成的 Webhook 密钥。

  8. 创建应用草稿。

  9. 在 ChatGPT 中打开已创建的应用草稿详情,并复制生成的 Webhook URL。

Webhook URL 应类似于:https://connectors.api.openai.org/connectors/<connector_id>/webhook

在 GitHub Enterprise 中完成 Webhook 设置

  1. 返回 GitHub Enterprise 中的 GitHub 应用设置。

  2. 打开 GitHub 应用的常规设置。

  3. 如果尚未启用 Webhook,请启用“激活 Webhook”选项。

  4. 将 ChatGPT 提供的 Webhook URL 粘贴到“Webhook URL”中。

  5. 将 ChatGPT 提供的 Webhook 密钥粘贴到“Webhook 密钥”中。

  6. 保持 SSL 验证启用。

  7. 确认订阅的 Webhook 事件与你启用的权限和操作相匹配。

  8. 保存更改。

在 ChatGPT 中发布和管理应用

创建应用草稿后,成员并不会自动获得该应用的使用权限。审查草稿后:

  1. 发布应用草稿。

  2. 在工作空间设置中,打开应用页面,再打开已启用,确认该应用已显示在其中。你也可以通过“管理控制台 > 插件”中的“管理旧版应用”打开应用页面。

  3. 在 Enterprise 和 Edu 中,使用用户访问权限选择哪些角色可以使用该应用。在 Business 中,统一管理整个工作空间的应用可用性。

  4. 检查读取和写入操作的操作控制设置。

  5. 检查应用权限设置,选择 ChatGPT 在哪些情况下使用该应用前需要征求成员同意。

  6. 请一位具有使用权限的测试用户打开 ChatGPT 中的应用,确认该应用已显示在其中。

这些应用权限适用于 ChatGPT 对话。工作空间智能体依据其构建者为各个智能体设置的控制规则,确定哪些应用操作可用,以及何时需要请求最终用户批准这些操作。有关智能体行为的详情,请参阅:适用于 Enterprise 和 Business 的 ChatGPT 工作空间智能体。

安装并测试 GitHub 应用

  1. 在 GitHub Enterprise 中,将 GitHub 应用安装到组织或账户。

  2. 根据工作空间策略,选择所有代码仓库或指定的代码仓库。

  3. 以拥有访问权限的用户身份,在 ChatGPT 中启动连接流程。

  4. 按提示授权 GitHub 应用。

  5. 先执行一项简单的读取操作,例如列出可访问的代码仓库,或获取一个已知的 pull request。

  6. 如果启用了写入操作,请先使用低风险的代码仓库进行测试,再扩大使用范围。

主机名与 OAuth 的工作方式

ChatGPT 根据主机名确定 GitHub Enterprise 端点。仅输入主机名,例如 github.example.com 或 octocorp.ghe.com。

请勿输入 API 路径或代码仓库路径;也不要输入 github.com,除非它确实是此应用所用的 GitHub Enterprise 主机。

故障排除

  • 重定向 URI 不匹配:确认 GitHub 应用的回调 URL 与 ChatGPT 中显示的回调 URL 完全一致。

  • ChatGPT 无法创建或保存应用草稿:确认已填写所有必填字段,包括主机名、OAuth 客户端 ID、OAuth 客户端密钥、私钥和 Webhook 密钥。

  • 身份验证成功,但代码仓库调用失败:确认 GitHub 应用已安装,并且拥有该代码仓库的访问权限。

  • API 返回 403 或提示权限不足:为 GitHub 应用添加缺失的权限,并在出现提示时,让安装所有者批准更新后的权限。

  • 未显示任何代码仓库:确认应用的安装范围包含预期的代码仓库,并且在 ChatGPT 中进行授权的用户有权访问这些代码仓库。

  • Webhook 投递失败:确认 Webhook URL 和 Webhook 密钥与 ChatGPT 提供的值一致,保持 SSL 验证启用,并确保 GitHub Enterprise 主机能够访问 connectors.api.openai.org。

  • 私钥错误:确认已复制完整的 PEM 内容,包括起始行和结束行。

这篇文章对你有帮助吗?