Код‑ревью — важная часть жизненного цикла разработки продукта, но давайте честно: никто не любит просматривать чужой код. Часто, разработчики делают ревью спустя рукава, но даже если это не так — человеческий фактор может сыграть злую шутку и уязвимость в коде может быть упущена. Пропущенные ошибки, уязвимости и нестабильный код могут привести к задержкам в релизе и росту технического долга. Более того, зачастую, компании имеют свои гайдлайны по оформлению 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
Если вам интересна моя деятельность, милости прошу сюда.
Автор: perevalov_a