Интеграция GitLab с ChatGPT и Codex сейчас находится на этапе бета-тестирования.
Обзор
Используйте шаблон приложения GitLab Self-Managed, чтобы создать в своей рабочей области черновик приложения для экземпляра GitLab Self-Managed или GitLab Dedicated. Укажите имя хоста GitLab и учетные данные приложения OAuth, проверьте черновик приложения, а затем опубликуйте его для участников рабочей области с соответствующими правами доступа. После публикации включенные действия приложения станут доступны в беседах ChatGPT и сеансах Codex.
Обзор поддерживаемых возможностей GitLab, доступности, разрешений, использования данных и требований к сети см. в статье «Подключение GitLab к ChatGPT и Codex».
Что вы настраиваете
Вы создаете приложение для своей рабочей области на основе шаблона GitLab Self-Managed. Приложение использует:
Приложение OAuth в GitLab, зарегистрированное на вашем хосте GitLab Self-Managed или GitLab Dedicated.
Идентификатор приложения и секретный ключ OAuth из GitLab для авторизации пользователей.
Обязательные области доступа OAuth: api, write_repository и openid.
Имя вашего хоста GitLab, например gitlab.example.com, для определения конечных точек веб-интерфейса, API, авторизации и получения токенов.
Перед началом
Вам понадобятся:
Права администратора или владельца рабочей области ChatGPT.
Разрешение на создание приложения OAuth в GitLab: права владельца группы для приложения, принадлежащего группе, или права администратора экземпляра для приложения уровня экземпляра.
Только имя хоста GitLab, без https://, порта и пути. Используйте хост GitLab Self-Managed или GitLab Dedicated, а не gitlab.com.
Решение о том, какие действия GitLab должны поддерживаться в ChatGPT и Codex: например, поиск по репозиторию, работа с запросами на слияние и задачами, редактирование файлов или более широкие рабочие процессы Codex.
Держите ChatGPT и GitLab открытыми в отдельных вкладках. Скопируйте URI перенаправления, указанный в ChatGPT, в точности; не создавайте и не изменяйте его.
Чтобы открыть страницу «Приложения» из консоли администратора, выберите нужную рабочую область ChatGPT, откройте раздел «Плагины» и выберите «Управление устаревшими приложениями».
Какие значения нужно подготовить
Имя хоста GitLab: например, gitlab.example.com.
URI перенаправления: скопируйте его при настройке шаблона в ChatGPT.
Идентификатор приложения OAuth в GitLab.
Секретный ключ OAuth в GitLab.
Области доступа OAuth: скопируйте их при настройке шаблона в ChatGPT.
Start the template setup in ChatGPT
In ChatGPT, switch to the workspace where the app should be available.
Go to Workspace settings > Apps.
In Directory, find GitLab, open its GitLab Self-Managed app template, and select Enable.
Enter a clear app name and description.
Enter the GitLab hostname, such as gitlab.example.com.
Copy the Redirect URI shown in ChatGPT, and keep this tab open.
Example: https://chatgpt.com/connector/oauth/<redirect_id>. Do not remove the redirect ID, add a trailing slash, or replace the URI with a generic ChatGPT URL.
Создайте приложение OAuth в GitLab
Выберите, где создать приложение
Откройте свой хост GitLab, например https://gitlab.example.com.
Выберите, какое приложение создать: уровня экземпляра или принадлежащее группе. От этого выбора зависит, кто управляет приложением. Доступ к проектам по-прежнему определяется разрешениями пользователя GitLab, предоставляющего доступ приложению, и выданными областями доступа OAuth.
Для приложения уровня экземпляра перейдите в раздел «Администрирование > Приложения». Для приложения, принадлежащего группе, перейдите в раздел группы «Настройки > Приложения».
Укажите сведения о приложении
Выберите «Новое приложение» или «Добавить новое приложение».
Введите понятное название приложения, например GitLab Self-Managed или GitLab Dedicated.
В поле «URI перенаправления» вставьте URI, скопированный из ChatGPT, без изменений.
Оставьте параметр «Конфиденциальное» включенным для этого серверного приложения OAuth.
Настройте доступ и сохраните приложение
Для приложения уровня экземпляра GitLab рекомендует включить параметр «Доверенное». Тогда пользователю не будет показываться запрос на авторизацию.
Выберите области доступа api, write_repository и openid.
Проверьте, кто может управлять приложением, и убедитесь, что пользователи GitLab, предоставляющие ему доступ, имеют необходимые разрешения в группах и проектах.
Сохраните приложение.
Требования к областям доступа OAuth
Шаблон запрашивает следующие области доступа OAuth для включенных действий GitLab в ChatGPT и Codex:
api: необходима для операций API GitLab, доступных через приложение, включая действия с запросами на слияние, задачами и CI/CD.
write_repository: необходима для операций записи в репозиторий через Git.
openid: необходима для получения через OpenID Connect сведений о личности пользователя и его участии в группах и проектах.
Скопируйте учетные данные OAuth из GitLab
В сохраненном приложении GitLab скопируйте идентификатор приложения и секретный ключ. Защищайте секретный ключ так же, как другие учетные данные. В случае его утечки обновите ключ в GitLab и создайте новое приложение в рабочей области.
Завершите настройку в ChatGPT
Вернитесь на вкладку настройки шаблона в ChatGPT.
Вставьте идентификатор приложения из GitLab в поле «Идентификатор клиента OAuth».
Вставьте секретный ключ из GitLab в поле «Секретный ключ клиента OAuth».
Убедитесь, что в поле имени хоста GitLab указано только имя хоста, например gitlab.example.com.
Выберите «Создать черновик».
Откройте сведения о черновике приложения и проверьте разделы «Доступ по ролям» и «Настройка действий».
Публикация приложения для ChatGPT и Codex и управление им
Создание черновика приложения не делает его автоматически доступным участникам. После проверки черновика:
Выберите «Опубликовать» для черновика приложения.
Перейдите в консоль администратора, выберите нужную рабочую область ChatGPT и откройте раздел «Плагины». Убедитесь, что GitLab доступен пользователям с нужными ролями.
Проверьте раздел «Доступ по ролям» для ролей, которым нужно предоставить доступ к приложению.
В разделе «Настройка действий» проверьте доступные действия чтения и записи.
В разделе «Настройка подтверждений» укажите, в каких случаях пользователи должны подтверждать действие, прежде чем ChatGPT или Codex воспользуется приложением.
Попросите тестового пользователя с доступом открыть GitLab в каталоге плагинов или в разделе «Настройки > Плагины». Убедитесь, что пользователь может установить плагин и подключиться к приложению, созданному на основе шаблона GitLab Self-Managed.
Эти настройки подтверждения действий приложения применяются к беседам ChatGPT и веткам Codex.
Настройте отслеживание активности GitLab для проверки кода с помощью Codex
После публикации приложения настройте отслеживание активности GitLab в Codex, если планируете использовать Codex для проверки кода. При этом будут настроены необходимые события вебхуков.
Откройте настройки коннекторов Codex.
Настройте сервисную учетную запись рабочей области. Разрешите Codex создать учетную запись или укажите персональный токен доступа для существующей сервисной учетной записи.
Включите «Активность GitLab» для проекта или одной из его родительских групп.
Если Codex нужно выполнять задачи программирования или использовать настройки конкретного проекта, создайте окружение проекта.
Приложение GitLab использует OAuth-авторизацию пользователя для чтения данных и выполнения включенных действий в ChatGPT и Codex. При записи результатов проверки Codex в GitLab Self-Managed или GitLab Dedicated токен сервисной учетной записи, управляемой рабочей областью, определяет, от чьего имени и в каких проектах Codex может оставлять комментарии или реакции.
Подробнее: проверка запросов на слияние GitLab с помощью Codex.
Подключите и протестируйте приложение GitLab
Войдя как пользователь с доступом, откройте GitLab в каталоге плагинов или в разделе «Настройки > Плагины». Выберите «Установить плагин», а затем «Подключить».
Если в вашей рабочей области несколько приложений GitLab, выберите приложение для этого хоста GitLab Self-Managed или GitLab Dedicated.
Когда появится запрос, предоставьте доступ приложению OAuth в GitLab.
Сначала выполните простое действие чтения в ChatGPT или Codex, например получите список доступных проектов или сведения об известном запросе на слияние.
Если действия записи включены, перед широким развертыванием протестируйте их в проекте с низким уровнем риска и в каждом продукте, где планируете их использовать.
Имя хоста и особенности работы OAuth
Приложение использует имя хоста для определения конечных точек GitLab. Введите только имя хоста, например gitlab.example.com. Не указывайте https://, путь к API или репозиторию, порт или gitlab.com. Этот шаблон предназначен для GitLab Self-Managed или GitLab Dedicated. Для GitLab.com (SaaS) используйте приложение GitLab.
Устранение неполадок при настройке приложения GitLab Self-Managed
Несоответствие URI перенаправления: убедитесь, что URI перенаправления приложения OAuth в GitLab в точности совпадает с URI перенаправления, указанным в ChatGPT.
ChatGPT не может создать или сохранить черновик приложения: убедитесь, что указаны имя хоста, идентификатор приложения, секретный ключ и URI перенаправления.
Аутентификация проходит успешно, но запросы к проекту завершаются ошибкой: убедитесь, что пользователь GitLab, предоставляющий доступ приложению, имеет доступ к проекту, а у приложения OAuth настроены области доступа, предусмотренные шаблоном.
API возвращает код 403 или сообщает о недостаточных разрешениях: убедитесь, что подключенная учетная запись GitLab имеет необходимые разрешения в проекте или группе, а у приложения OAuth настроены обязательные области доступа, предусмотренные шаблоном.
Нет доступных проектов: убедитесь, что у пользователя есть доступ к проектам, он подключен к нужному экземпляру GitLab и выбрал правильное приложение GitLab в ChatGPT или Codex.
