Обзор
Используйте это руководство, если вы администратор рабочей области ChatGPT и настраиваете шаблон приложения GitHub Enterprise для своей организации. Шаблон — это не итоговое приложение, которым пользуются участники. Это процесс настройки, который создает черновик приложения для конкретной рабочей области после того, как вы предоставите необходимую конфигурацию GitHub Enterprise.
Для GitHub Enterprise настройка подключает ChatGPT к хосту GitHub Enterprise вашей организации. Вы создаете приложение GitHub, регистрируете URL обратного вызова ChatGPT, генерируете учетные данные, а затем вставляете эти значения в процесс настройки шаблона ChatGPT. После того как ChatGPT создаст черновик приложения, вы сможете опубликовать его и управлять им как другими приложениями рабочей области.
Что вы настраиваете
Вы создаете в ChatGPT приложение GitHub Enterprise для конкретной рабочей области. Приложение использует:
Приложение GitHub, зарегистрированное на вашем хосте GitHub Enterprise.
Client ID и client secret приложения GitHub для авторизации пользователей через OAuth.
Закрытый ключ приложения GitHub, чтобы ChatGPT мог создавать токены установки для операций с репозиториями.
Секрет вебхука и URL вебхука, чтобы GitHub Enterprise мог отправлять события установки и репозиториев обратно в ChatGPT.
Имя хоста GitHub Enterprise, например
github.example.com.
Создайте приложение GitHub, а не отдельное приложение GitHub OAuth. Для настройки шаблона ChatGPT требуются учетные данные приложения GitHub, закрытый ключ и настройки вебхука.
Перед началом
Вам потребуется:
Доступ администратора или владельца рабочей области ChatGPT.
Доступ администратора GitHub Enterprise или владельца организации, позволяющий создавать и устанавливать приложения GitHub.
Только имя хоста GitHub Enterprise, без
https://или пути.Решение о том, какие действия с репозиториями должен поддерживать ChatGPT: например, поиск репозиториев только для чтения, рабочие процессы пулл-реквестов, рабочие процессы задач, редактирование файлов, GitHub Actions или более широкие рабочие процессы Codex.
Безопасное место для работы с закрытым ключом и client secret приложения GitHub.
Держите ChatGPT и GitHub Enterprise открытыми в отдельных вкладках. Не придумывайте URL обратного вызова. Скопируйте точный URL обратного вызова, показанный в ChatGPT.
Значения для подготовки
Имя хоста GitHub Enterprise: например,
github.example.com.URL обратного вызова: скопируйте его из процесса настройки шаблона ChatGPT.
Client ID приложения GitHub.
Client secret приложения GitHub.
Закрытый ключ PEM приложения GitHub.
Секрет вебхука, сгенерированный ChatGPT.
URL вебхука, сгенерированный после создания черновика приложения в ChatGPT.
Начните настройку шаблона в ChatGPT
В ChatGPT переключитесь на рабочую область, где должно быть доступно приложение.
Откройте Настройки рабочей области > Приложения.
Выберите Каталог.
Найдите GitHub Enterprise.
Выберите шаблон приложения GitHub Enterprise и начните настройку.
Введите понятное название и описание приложения, например GitHub Enterprise или GitHub Enterprise - Engineering.
Введите имя хоста GitHub Enterprise, например
github.example.com.Скопируйте URL обратного вызова, показанный в ChatGPT. Оставьте эту вкладку открытой.
Скопируйте сгенерированный секрет вебхука, если он показан во время настройки.
Пример URL обратного вызова: https://chatgpt.com/connector/oauth/<callback_id>
Не удаляйте идентификатор обратного вызова, не добавляйте завершающую косую черту и не заменяйте его общим URL ChatGPT.
Создайте приложение GitHub в GitHub Enterprise
Откройте свой хост GitHub Enterprise, например
https://github.example.com.Перейдите в организацию или учетную запись, которой должно принадлежать приложение.
Откройте Settings > Developer settings > GitHub Apps.
Выберите New GitHub App.
Введите понятное название приложения, например ChatGPT GitHub Enterprise Connector.
Введите URL домашней страницы. Если отдельной внутренней страницы нет, используйте URL организации GitHub Enterprise.
В поле Callback URL вставьте точный URL обратного вызова, скопированный из ChatGPT.
Оставьте включенным параметр Expire user authorization tokens, если у вашей службы безопасности нет конкретной причины изменить его.
Включите Request user authorization during installation, чтобы пользователи могли авторизовать приложение во время установки или подключения.
В разделе Where can this GitHub App be installed?, выберите самый узкий вариант, подходящий для вашего развертывания.
Создайте приложение GitHub.
Настройте разрешения и события
Выберите минимальные разрешения, необходимые для действий ChatGPT, которые вы планируете включить.
Для поиска репозиториев и вопросов и ответов в режиме только чтения начните с разрешений на чтение, например:
Metadata: только чтение. GitHub требует metadata для приложений GitHub.
Contents: только чтение, для доступа к содержимому файлов и репозиториев.
Issues: только чтение, если нужен поиск или чтение задач.
Pull requests: только чтение, если нужен поиск пулл-реквестов или контекст проверки.
Actions: только чтение, если нужны статус запусков рабочих процессов, задания, журналы или артефакты.
Для рабочих процессов с записью добавьте разрешения на запись только там, где нужно, например Contents, Pull requests, Issues, Actions или Workflows. Используйте самые узкие разрешения, поддерживающие нужные действия ChatGPT.
События вебхуков должны соответствовать поддерживаемым вами рабочим процессам. К распространенным событиям относятся Installation, Installation repositories, Push, Pull request, Issues, Issue comment, Workflow run и Workflow job.
Сгенерируйте и скопируйте учетные данные приложения GitHub
В настройках приложения GitHub скопируйте Client ID.
Сгенерируйте Client secret и сразу скопируйте его.
В разделе Private keys сгенерируйте закрытый ключ.
Скачайте файл .pem и надежно сохраните его.
Откройте файл .pem локально и скопируйте полный текст PEM, включая начальную и конечную строки.
Закрытый ключ является конфиденциальным. Обращайтесь с ним как с учетными данными. Если он раскрыт, сгенерируйте новый закрытый ключ, обновите настройку приложения ChatGPT и удалите скомпрометированный ключ в GitHub Enterprise.
Завершите настройку в ChatGPT
Вернитесь на вкладку настройки шаблона ChatGPT.
Вставьте Client ID приложения GitHub в OAuth client ID.
Вставьте Client secret приложения GitHub в OAuth client secret.
Оставьте Scopes без изменений, если вашей организации не нужно намеренно переопределить значения шаблона по умолчанию.
Убедитесь, что имя хоста GitHub Enterprise указано только как хост, например
github.example.com.Вставьте или загрузите закрытый ключ PEM приложения GitHub в поле GitHub App private key.
Убедитесь, что сгенерированный секрет вебхука присутствует.
Создайте черновик приложения.
Откройте сведения о созданном черновике приложения в ChatGPT и скопируйте сгенерированный URL вебхука.
URL вебхука должен выглядеть так: https://connectors.api.openai.org/connectors/<connector_id>/webhook
Завершите настройку вебхука в GitHub Enterprise
Вернитесь к настройкам приложения GitHub в GitHub Enterprise.
Откройте общие настройки приложения GitHub.
Включите Active webhooks, если они еще не включены.
Вставьте URL вебхука ChatGPT в поле Webhook URL.
Вставьте секрет вебхука ChatGPT в поле Webhook secret.
Оставьте проверку SSL включенной.
Убедитесь, что подписанные события вебхуков соответствуют разрешениям и действиям, которые вы включили.
Сохраните изменения.
Опубликуйте приложение в ChatGPT и управляйте им
Создание черновика приложения не делает его автоматически доступным участникам. После проверки черновика:
Опубликуйте черновик приложения.
Убедитесь, что приложение отображается в Настройки рабочей области > Приложения > Включено.
Настройте Доступ пользователей для ролей, которые должны использовать приложение.
Проверьте Управление действиями для действий чтения и записи.
Проверьте Разрешения приложения, чтобы выбрать, когда ChatGPT будет спрашивать участников перед использованием приложения.
Попросите разрешенного тестового пользователя открыть Приложения в ChatGPT и убедиться, что приложение отображается.
Эти разрешения приложения применяются к беседам ChatGPT. Агенты рабочей области используют поагентные элементы управления, заданные создателем агента, чтобы определить, какие действия приложения доступны и когда у конечных пользователей запрашивается их одобрение. О поведении агентов см.: Агенты рабочей области ChatGPT для Enterprise и Business.
Установите и протестируйте приложение GitHub
В GitHub Enterprise установите приложение GitHub в организации или учетной записи.
Выберите все репозитории или выбранные репозитории согласно политике рабочей области.
Начните процесс подключения из ChatGPT как разрешенный пользователь.
Авторизуйте приложение GitHub при появлении запроса.
Сначала выполните небольшое действие чтения, например вывод списка доступных репозиториев или получение известного пулл-реквеста.
Если действия записи включены, протестируйте их на репозитории с низким риском перед более широким развертыванием.
Имя хоста и поведение OAuth
ChatGPT использует имя хоста для определения конечных точек GitHub Enterprise. Введите только хост, например github.example.com или octocorp.ghe.com.
Не вводите путь API, путь репозитория или github.com, если это не точный хост GitHub Enterprise для этого приложения.
Устранение неполадок
Несоответствие Redirect URI: убедитесь, что URL обратного вызова приложения GitHub точно совпадает с URL обратного вызова, показанным в ChatGPT.
ChatGPT не может создать или сохранить черновик приложения: убедитесь, что все обязательные поля заполнены, включая имя хоста, OAuth client ID, OAuth client secret, закрытый ключ и секрет вебхука.
Аутентификация проходит успешно, но вызовы репозитория завершаются сбоем: убедитесь, что приложение GitHub установлено и имеет доступ к репозиторию.
API возвращает 403 или недостаточно разрешений: добавьте недостающее разрешение приложения GitHub и попросите владельца установки одобрить обновленные разрешения, если появится запрос.
Репозитории не отображаются: убедитесь, что установка приложения включает ожидаемые репозитории и что пользователь, выполняющий авторизацию в ChatGPT, имеет к ним доступ.
Доставки вебхуков завершаются сбоем: убедитесь, что URL вебхука и секрет вебхука совпадают со значениями из ChatGPT, оставьте проверку SSL включенной и убедитесь, что хост GitHub Enterprise может обращаться к
connectors.api.openai.org.Ошибки закрытого ключа: убедитесь, что скопировано полное содержимое PEM, включая начальную и конечную строки.
