Перейти к содержанию

Применение patch от LLM в Запросах на Слияние


LLM (Large Language Model) может анализировать изменения в запросе на слияние и автоматически генерировать patch-файлы с предложениями по исправлению, улучшению кода или исправлению ошибок. Патчи сохраняются как артефакты CI/CD и могут быть применены к ветке-источнику через веб-интерфейс GitFlic.

Настройка генерации патчей

Для использования LLM-патчей добавьте в файл gitflic-ci.yaml задание (job). Внутри задания необходимо вызвать LLM (через скрипт или API), передать ей контекст запроса на слияние, а полученный patch-файл сохранить как артефакт с типом patch.

Пример конфигурации:

test1:
  stage: patch # Название стадии может быть любым
  script:
    - # вызов LLM и генерация example.patch
  artifacts:
    reports:
      patch:
        paths:
          - example.patch
          - example2.patch

Формат патч-файлов

Патч должен быть совместим с утилитой patch и содержать unified diff (формат diff -u). Только такие файлы могут быть применены через веб-интерфейс.

Применение патча в запросе на слияние

После успешного выполнения задания с артефактом patch в интерфейсе запроса на слияние появляется кнопка Применить патч. Она доступна, если в последнем успешном конвейере есть хотя бы один артефакт типа patch.

Кнопка применения патча

При нажатии открывается форма просмотра изменений. В левой части отображается список всех найденных файлов с изменениями, в правой — различия, которые будут внесены в код.

Форма просмотра патча

Для применения патча: 1. Выберите файл из списка. 2. Проверьте предлагаемые изменения. 3. Нажмите Применить патч — патч будет наложен на текущую ветку-источник. 4. Подтвердите действие кнопкой Коммит (коммит создаётся автоматически).

После этого запрос на слияние обновляется, и изменения становятся видны в запросе на слияние.

Просмотр результатов

Все сгенерированные LLM патчи сохраняются как артефакты конвейера и доступны для скачивания на странице выполнения задания. Это позволяет повторно применить патч или проанализировать предложения модели вне веб-интерфейса.

Дополнительные рекомендации

  • Убедитесь, что LLM настроена на генерацию патчей в корректном формате (например, через git diff).
  • Для сложных сценариев используйте несколько патч-файлов — каждый из них будет отображаться отдельным элементом в интерфейсе.
  • Применение патча не отменяет стандартные проверки CI/CD: после коммита запустятся новые конвейеры.