Код‑ревью — важная часть жизненного цикла разработки продукта, но давайте честно: никто не любит просматривать чужой код. Часто, разработчики делают ревью спустя рукава, но даже если это не так — человеческий фактор может сыграть злую шутку и уязвимость в коде может быть упущена. Пропущенные ошибки, уязвимости и нестабильный код могут привести к задержкам в релизе и росту технического долга. Более того, зачастую, компании имеют свои гайдлайны по оформлению code review, которые также необходимо проверять вручную.
Что если эту рутинную задачу можно ускорить с помощью ИИ? Нет, мы не говорим о замене человека в процессе code review, а всего лишь о дополнительной помощи со стороны языковых моделей. Сегодня разберём, как настроить AI‑код‑ревью на GitHub используя только open source инструменты.
Зачем нужно AI код ревью? Гипотеза
В данной статье я предлагаю следующую гипотезу. Ревью кода с помощью ИИ помогает командам ускорить процесс разработки, улучшить качество кода и быстрее находить потенциальные баги. Со стороны бизнес‑метрик мы получаем ускоренный процесс доставки обновлений и реализации фичей. Это особенно полезно для больших команд и проектов, где ревью без ИИ может быть медленным и субъективным.
Большие языковые модели (LLM), дотренированные на задачах анализа и генерации кода (напр. Qwen 2.5 Coder, DeepSeek Coder) способны «понимать» код, выявлять уязвимости, следить за стилем написания и даже давать рекомендации по архитектуре на довольно высоком уровне, иногда превосходя людской потенциал [1]. Именно LLM предоставляют нам сегодня технологическую возможность для помощи разработчикам в проверке кода.
Настраиваем AI Code Review на Github
Архитектура решения
Архитектура предлагаемого решения состоит из двух основных частей и реализована с применением open‑source инструментов.

В качестве ядра для анализа кода используется большая языковая модель (LLM), запущенная на GPU сервере через платформу vLLM, либо же установленная локально с помощью фреймворка Ollama с открытыми портами (подробнее о деплое LLM я писал тут). Интерфейс соединения между LLM и GitHub осуществляется по OpenAI‑совместимому API, благодаря чему достигается совместимость платформы с необходимыми схемами взаимодействия и стандартизация запросов.
GitHub Actions используется для организации процесса автоматического запуска AI Code Review при каждом внесении изменений в репозиторий, обеспечивая эффективное включение проверки кода в существующий процесс CI/CD. В рамках Actions мы используем опенсорсный Code Review GPT, который я немножечко допилил для данного туториала. Ниже приведён .yml файл для Github Actions.
name: Code Review GPT Test on: pull_request: branches: [main] permissions: pull-requests: write contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install code-review-gpt run: bun install -g code-review-llm-perevalov - name: Run code review script run: code-review-llm-perevalov review --ci=github --model=Qwen/Qwen2.5-Coder-14B-Instruct env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} BASE_SHA: ${{ github.event.pull_request.base.sha }} GITHUB_SHA: ${{ github.sha }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
Если упростить, то Code Review GPT это утилита, которая забирает изменения из Pull Request'a, отправляет их на анализ к LLM, получает фидбек от языковой модели и записывает его в комментарии к PR. Чуть ниже увидим, как это работает в реальности.
Настройка Github репозитория
Создайте новый или используйте уже существующий Github репозиторий для настройки AI Code Review. Как вы видели в .yml файле, нам потребуются инициализировать несколько Github Secrets.
Открыв репозиторий в браузере, переходим в Settings → Secrets and variables → Actions и добавляем три секрета:
GH_TOKEN— персональный токен GitHub (генерируется в Developer settings → Personal access tokens).OPENAI_BASE_URL— URL, где развернута языковая модель (тут подробнее про то, как деплоить).OPENAI_API_KEY— API-ключ модели (может быть фиктивным, если модель не требует авторизации).
Не забудьте запушить .yml файл. Теперь, всё готово к проверке.
Тестируем AI Code Review
Для тестирования я написал довольно простой фрагмент кода, в котором явно содержится захардкоженный API ключ. В качестве LLM, я использовал Qwen2.5 14B Instruct, развёрнутую с помощью vLLM на GPU сервере (тут я писал подробнее). А вот и фрагмент кода:
from openai import OpenAI # import openai client = OpenAI( api_key="iupihpi", # api key base_url="https://your.proxy.url.net/v1", # base url ) # call the chat endpoint chat_response = client.chat.completions.create( model="Qwen/Qwen2.5-Coder-14B-Instruct", messages=[ {"role": "system", "content": """You are a Named Entity Recognition Tool. Recognize named entities and output the structured data as a JSON. **Output ONLY the structured data.** Below is a text for you to analyze."""}, {"role": "user", "content": "I live in London and work for Google. I am a software engineer."}, ] ) print(chat_response)
После добавления изменений, пушим их в бранч, отличный от main и создаём Pull Request в main. Если вы всё сделали верно, то нужный нам Github Action стриггерится и через некоторое время Code Review GPT сгенерирует нам фидбек по предлагаемым изменениям. Вот пример того, что получилось у меня:

Как можно видеть из скриншота выше, AI Code Review действительно работает (я бы сказал: в рамках proof of concept). Мы видим, что LLM действительно могут помочь разработчикам с идентификацией, как минимум, базовых уязвимостей и несоответствий по стилю. Это может минимизировать человеческий фактор при проверках кода, однако, мы не говорим о полном замещении людей в рамках код ревью, а всего лишь о дополнении и помощи.
Вместо заключения
В данной статье мы рассмотрели базовый пример внедрения AI code review и показали на примере простой уязвимости, как это работает и может помочь командам разработки.
Если вам интересно более глубокое погружение в AI code review (например, интеграция в Gitlab) или же в AI Coding Assistants, я подготовил курс для разработчиков и тимлидов, который так и называется «AI DevTools». Доступ можно получить тут, для моих читателей — специальный промокод: HABRHABR50
Если вам интересна моя деятельность, милости прошу сюда.
