Назад
Alexander Kozhevin

Alexander Kozhevin

Автоматическое ревью Merge Request-ов в закрытом контуре с LLM: GitLab + n8n + neuralhub.ru

Автоматическое ревью Merge Request-ов в закрытом контуре с LLM: GitLab + n8n + neuralhub.ru

Ручное ревью кода — дорогое узкое место. LLM может подготовить черновик комментариев, избавив инженеров от рутинного скроллинга diff’ов и ускорив финальное ревью. Ниже — полный туториал: от «пустого» GitLab-репозитория до работающего workflow, который за минуту после открытия MR оставляет структурированный отзыв по каждому изменённому файлу.

КомпонентРоль
GitLabИсточник события Merge Request Hook
n8nLow-/no-code оркестратор, собирает файлы, вызывает LLM и постит комментарий
neuralhub.ruСерверлесс-платформа ⟶ модель Qwen3-32B (или любая 32B)

Что нужно подготовить?

  1. GitLab, Project access token. Scopes : api (webhook и возможность создавать комментарии к MR)

  2. n8n

  3. Аккаунт neuralhub.ru и API-ключ. Достаточно просто зарегистрироваться и получить ключ.

Общая схема работы

GitLab (MR Webhook)
        ↓
     n8n workflow
        ↓
  Получить список изменений из GitLab
        ↓
      Для каждого файла:
          ├─ Получить diff
          ├─ Получить полный текст файла
          └─ Отправить diff+файл в LLM (NeuralHub)
        ↓
  Собрать все ответы LLM
        ↓
  Сформировать комментарий
        ↓
  Отправить комментарий в GitLab (MR)

Workflow схема

Как настроить автоматическое ревью: шаг за шагом

Вот как можно дописать и структурировать твою статью: добавлены подробные шаги настройки, кратко раскрыто что такое NeuralHub, а также добавлен блок "Итог" (всё — в стиле твоего шаблона, чтобы сразу вставлять):


Как настроить автоматическое ревью: шаг за шагом

1. Создайте Project Access Token в GitLab

Workflow схема
  • Зайдите в настройки проекта → Access Tokens.
  • Задайте название, выберите срок действия.
  • Поставьте галочку api (этого достаточно для webhooks и комментариев к MR)
  • Select a role -> Maintainer
  • Скопируйте токен — после этого GitLab больше не покажет его.

2. Зарегистрируйтесь на neuralhub.ru и получите API-ключ

  • Перейдите на neuralhub.ru и зарегистрируйтесь.
  • Откройте личный кабинет.
  • В разделе Агенты найдите Qwen3-32B и нажмите на кнопку API
  • Workflow схема
    API-ключ можно скопировать в один клик

3. Импортируйте workflow в n8n

  • Скачайте файл autocomment_PR.json
  • В блонке "constants" укажите: "gitlab_token" - токен из GitLab "gitlab_api_base" - адрес вашего GitLab-сервера "neuralhub_api_key" - API-ключ из neuralhub.ru

Этот блок служит для хранения констант, которые будут использоваться в workflow.

Workflow схема

4. Запустите тест и проверьте результат

  • Создайте или обновите Merge Request в тестовом проекте.
  • Через 1-2 минуты в MR появится AI-комментарий с обзорами по каждому файлу.
  • Если что-то не работает — смотрите Execution Log в n8n, проверьте токены и логику в узлах.

5. Изменений промпта к LLM

Для этого измените содержимое 👉 блок-кода под названием "формируем запрос к LLM". То есть в нашем случае используется демо-проект на nodejs. Вы можете использовать любой другой проект, например, на python, java, c++, etc и использовать соответствующий промпт.

// Function Node (Run For Each Item)

const fileText = Buffer
    .from($input.first().json.content, 'base64')
    .toString('utf8');

const codeDiff = $('void block').first().json.diff;
const fileName = $input.first().json.filePath;

// Системное и пользовательское сообщения
const systemMsg = {
    role: "system",
    content: "You are a senior software engineer and code reviewer, specialized in Node.js. Верни результат на русском языке. "
};
const userMsg = {
    role: "user",
    content: `
Please do two things:
1) Briefly summarise what changed in the diff.
2) Review only the code sections shown in the diff (including a few lines of surrounding context) for best practices 
   in the context of Node.js scripts: readability, error handling, naming, security, performance, and style consistency.
   If the diff is too small or not tied to a specific function, just check those changes for general code quality 
   and common Node.js pitfalls.

   Верни результат на русском языке.

File: ${fileName}

Diff:
\`\`\`
${codeDiff}
\`\`\`

Full file content:
\`\`\`js
${fileText}
\`\`\`
`.trim()
};
const messages = JSON.stringify([systemMsg, userMsg]);
let obj = {
    "agent": "36",
    "input_params": {
        "messages": messages,
        "temperature": 0.0,
        "top_p": 1.0,
        "max_tokens": -1
    }
}
return obj

Что такое NeuralHub?

Workflow схема

NeuralHub — это облачная serverless-платформа для запуска различных нейросетей (LLM, diffusion, speech-to-text и др.). Её преимущества:

  • 📈 Большой выбор моделей, включая Qwen3-32B, T-pro-it-2.0, Gemini3 и другие.
  • 🔒 Безопасность: Подобную систему можно развернуть во внутреннем контуре к кампании
  • ⚡️ Serverless-архитектура — не нужно арендовать отдельный сервер для каждой нейронки. Архитектура позволяет запускать множество моделей на одном сервере..
  • 💡 Удобный API — можно быстро интегрировать в любой pipeline или workflow.

Итог

Теперь у вас есть полностью автоматизированный pipeline для ревью Merge Request-ов: GitLab инициирует процесс, n8n организует сбор изменений и общение с LLM, а NeuralHub предоставляет гибкий API для работы с различными языковыми моделями.

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

Если остались вопросы — пишите на hello@neuralhub.ru

neuralhub