Обзор
Это руководство предназначено для администраторов рабочих областей ChatGPT, которые настраивают шаблон приложения GitHub Enterprise для своей организации. Шаблон — это не готовое приложение, которым пользуются участники. Это процедура настройки, которая создаёт черновик приложения для конкретной рабочей области после того, как вы укажете необходимые параметры GitHub Enterprise.
При настройке GitHub Enterprise ChatGPT подключается к хосту GitHub Enterprise вашей организации. Вы создаёте GitHub App, регистрируете URL обратного вызова ChatGPT, генерируете учётные данные, а затем вставляете эти значения при настройке шаблона в ChatGPT. После того как ChatGPT создаст черновик приложения, вы сможете опубликовать его и управлять им так же, как другими приложениями рабочей области.
О навигации в рабочей области и доступе к приложениям см. статью Административное управление, безопасность и соответствие требованиям для плагинов и приложений.
Что вы настраиваете
Вы создаёте в ChatGPT приложение GitHub Enterprise для конкретной рабочей области. Приложение использует:
GitHub App, зарегистрированное на вашем хосте GitHub Enterprise.
Идентификатор и секрет клиента GitHub App для авторизации пользователей через OAuth.
Закрытый ключ GitHub App, позволяющий ChatGPT выпускать токены установки для операций с репозиториями.
Секрет и URL вебхука, позволяющие GitHub Enterprise отправлять в ChatGPT события установок и репозиториев.
Имя вашего хоста GitHub Enterprise, например
github.example.com.
Создайте GitHub App, а не отдельное приложение GitHub OAuth App. Для настройки шаблона в ChatGPT нужны учётные данные GitHub App, закрытый ключ и параметры вебхука.
Перед началом
Вам понадобятся:
Права администратора или владельца рабочей области ChatGPT.
Права администратора GitHub Enterprise или владельца организации, позволяющие создавать и устанавливать GitHub Apps.
Только имя хоста GitHub Enterprise, без
https://и пути.Решение о том, какие действия с репозиториями должен поддерживать ChatGPT: например, поиск по репозиториям без внесения изменений, работа с pull request и задачами, редактирование файлов, GitHub Actions или более широкие рабочие процессы Codex.
Безопасное место для работы с закрытым ключом и секретом клиента GitHub App.
Держите ChatGPT и GitHub Enterprise открытыми в отдельных вкладках. Не составляйте URL обратного вызова самостоятельно. Скопируйте точный URL обратного вызова, указанный в ChatGPT.
Какие данные нужно подготовить
Имя хоста GitHub Enterprise, например
github.example.com.URL обратного вызова: скопируйте его при настройке шаблона в ChatGPT.
Идентификатор клиента GitHub App.
Секрет клиента GitHub App.
Закрытый ключ GitHub App в формате PEM.
Секрет вебхука, сгенерированный ChatGPT.
URL вебхука, сгенерированный после создания черновика приложения в ChatGPT.
Начните настройку шаблона в ChatGPT
В ChatGPT переключитесь на рабочую область, в которой должно быть доступно приложение.
Откройте Настройки рабочей области > Приложения. Также можно перейти в Консоль администратора, выбрать нужную рабочую область ChatGPT и открыть раздел Плагины. Выберите Управление устаревшими приложениями, чтобы открыть сохранённую страницу Приложения.
Выберите Каталог.
Найдите GitHub Enterprise.
Выберите шаблон приложения GitHub Enterprise и начните настройку.
Укажите понятное название и описание приложения, например GitHub Enterprise или GitHub Enterprise — Разработка.
Введите имя хоста GitHub Enterprise, например
github.example.com.Скопируйте URL обратного вызова, указанный в ChatGPT. Не закрывайте эту вкладку.
Скопируйте сгенерированный секрет вебхука, если он отображается при настройке.
Пример URL обратного вызова: https://chatgpt.com/connector/oauth/<callback_id>
Не удаляйте идентификатор обратного вызова, не добавляйте косую черту в конце и не заменяйте этот адрес общим URL ChatGPT.
Создайте GitHub App в GitHub Enterprise
Откройте свой хост GitHub Enterprise, например
https://github.example.com.Перейдите в организацию или учётную запись, которой должно принадлежать приложение.
Откройте Настройки > Настройки разработчика > GitHub Apps.
Выберите Новое приложение GitHub App.
Укажите понятное название приложения, например «Коннектор ChatGPT для GitHub Enterprise».
Введите URL домашней страницы. Если отдельной внутренней страницы нет, используйте URL организации в GitHub Enterprise.
В поле «URL обратного вызова» вставьте точный URL обратного вызова, скопированный из ChatGPT.
Оставьте параметр «Ограничивать срок действия токенов авторизации пользователей» включённым, если у вашей команды безопасности нет особой причины его изменить.
Включите «Запрашивать авторизацию пользователя при установке», чтобы пользователи могли авторизовать приложение в процессе установки или подключения.
В разделе «Где можно установить это приложение GitHub App?» выберите наиболее ограниченный вариант, подходящий для вашего плана внедрения.
Создайте GitHub App.
Настройте разрешения и события
Выберите минимальные разрешения, необходимые для действий ChatGPT, которые вы планируете включить.
Для поиска репозиториев и ответов на вопросы без внесения изменений начните с разрешений на чтение, например:
Метаданные: только чтение. GitHub требует предоставлять приложениям GitHub Apps доступ к метаданным.
Содержимое: только чтение — для доступа к файлам и содержимому репозиториев.
Задачи: только чтение — если нужен поиск или просмотр задач.
Pull requests: только чтение — если нужен поиск pull request или контекст для проверки кода.
Действия: только чтение — если нужны статусы запусков рабочих процессов, задания, журналы или артефакты.
Для рабочих процессов с записью добавляйте разрешения на запись только там, где они нужны, например в разделах «Содержимое», «Pull requests», «Задачи», «Действия» или «Рабочие процессы». Предоставляйте лишь те разрешения, которые необходимы для запланированных действий ChatGPT.
События вебхуков должны соответствовать поддерживаемым рабочим процессам. Часто используются события «Установка», «Репозитории установки», «Отправка изменений», «Pull request», «Задачи», «Комментарий к задаче», «Запуск рабочего процесса» и «Задание рабочего процесса».
Сгенерируйте и скопируйте учётные данные GitHub App
В настройках GitHub App скопируйте Идентификатор клиента.
Сгенерируйте Секрет клиента и сразу скопируйте его.
В разделе Закрытые ключи сгенерируйте закрытый ключ.
Скачайте файл .pem и сохраните его в безопасном месте.
Откройте файл .pem на своём устройстве и скопируйте весь текст PEM, включая начальную и конечную строки.
Закрытый ключ — конфиденциальная информация. Защищайте его так же, как другие учётные данные. В случае утечки сгенерируйте новый закрытый ключ, обновите настройки приложения в ChatGPT и удалите скомпрометированный ключ в GitHub Enterprise.
Завершите настройку в ChatGPT
Вернитесь на вкладку настройки шаблона в ChatGPT.
Вставьте идентификатор клиента GitHub App в поле Идентификатор клиента OAuth.
Вставьте секрет клиента GitHub App в поле Секрет клиента OAuth.
Не меняйте Области доступа, если вашей организации не требуется переопределить настройки шаблона по умолчанию.
Убедитесь, что в поле имени хоста GitHub Enterprise указано только имя хоста, например
github.example.com.Вставьте или загрузите закрытый ключ GitHub App в формате PEM в поле «Закрытый ключ GitHub App».
Убедитесь, что сгенерированный секрет вебхука указан.
Создайте черновик приложения.
Откройте сведения о созданном черновике приложения в ChatGPT и скопируйте сгенерированный URL вебхука.
URL вебхука должен иметь вид: https://connectors.api.openai.org/connectors/<connector_id>/webhook
Завершите настройку вебхука в GitHub Enterprise
Вернитесь к настройкам GitHub App в GitHub Enterprise.
Откройте раздел «Общие» в настройках GitHub App.
Включите «Активные вебхуки», если они ещё не включены.
Вставьте URL вебхука из ChatGPT в поле «URL вебхука».
Вставьте секрет вебхука из ChatGPT в поле «Секрет вебхука».
Оставьте проверку SSL включённой.
Убедитесь, что события, на которые подписан вебхук, соответствуют включённым разрешениям и действиям.
Сохраните изменения.
Опубликуйте приложение и управляйте им в ChatGPT
Создание черновика приложения не делает его автоматически доступным участникам. После проверки черновика:
Опубликуйте черновик приложения.
В настройках рабочей области откройте страницу Приложения, перейдите в раздел Включённые и убедитесь, что приложение отображается. Также можно открыть страницу «Приложения», выбрав «Управление устаревшими приложениями» в разделе «Консоль администратора > Плагины».
Настройте Доступ пользователей для ролей, которым нужно разрешить использование приложения.
Проверьте настройки в разделе Управление действиями для операций чтения и записи.
Проверьте Разрешения приложения и выберите, когда ChatGPT должен запрашивать согласие участников перед использованием приложения.
Попросите тестового пользователя с разрешённым доступом открыть Приложения в ChatGPT и убедиться, что приложение отображается.
Эти разрешения приложения действуют в беседах ChatGPT. Для агентов рабочей области действуют индивидуальные настройки, заданные создателем каждого агента. Они определяют, какие действия приложения доступны и когда у конечных пользователей запрашивается их одобрение. О работе агентов см. статью Агенты рабочей области ChatGPT для Enterprise и Business.
Установите и проверьте GitHub App
В GitHub Enterprise установите приложение GitHub для организации или учётной записи.
Выберите все репозитории или отдельные репозитории в соответствии с политикой рабочей области.
Начните подключение из ChatGPT под учётной записью пользователя с разрешённым доступом.
При появлении запроса авторизуйте приложение GitHub.
Сначала выполните простую операцию чтения, например получите список доступных репозиториев или данные известного pull request.
Если включены операции записи, перед широким внедрением проверьте их на репозитории, изменения в котором не несут значительных рисков.
Имя хоста и работа OAuth
ChatGPT использует имя хоста для определения конечных точек GitHub Enterprise. Введите только имя хоста, например github.example.com или octocorp.ghe.com.
Не вводите путь API или репозитория. Не указывайте github.com, если это не точное имя хоста GitHub Enterprise для данного приложения.
Устранение неполадок
Несоответствие URI перенаправления: убедитесь, что URL обратного вызова GitHub App в точности совпадает с URL обратного вызова, указанным в ChatGPT.
ChatGPT не может создать или сохранить черновик приложения: убедитесь, что заполнены все обязательные поля, включая имя хоста, Идентификатор клиента OAuth, Секрет клиента OAuth, закрытый ключ и секрет вебхука.
Аутентификация проходит успешно, но запросы к репозиторию завершаются ошибкой: убедитесь, что GitHub App установлено и имеет доступ к репозиторию.
API возвращает код 403 или ошибку недостаточных разрешений: добавьте недостающее разрешение GitHub App и при появлении запроса попросите владельца установки одобрить обновлённые разрешения.
Репозитории не отображаются: убедитесь, что при установке приложения выбраны нужные репозитории и у пользователя, выполняющего авторизацию в ChatGPT, есть к ним доступ.
Сбой доставки вебхуков: убедитесь, что URL и секрет вебхука совпадают со значениями из ChatGPT, проверка SSL включена, а хост GitHub Enterprise может подключиться к
connectors.api.openai.org.Ошибки закрытого ключа: убедитесь, что скопировано всё содержимое PEM, включая начальную и конечную строки.
