code-review-graph: локальная система для построения графа знаний о коде
code-review-graph — это локальная система для построения графа знаний о коде, которая помогает AI-инструментам для код-ревью получать важный контекст из вашего репозитория.
Этот проект ориентирован на разработчиков, которые сталкиваются с большими кодовыми базами и хотят упростить процесс анализа изменений. Он создает постоянную структуру данных, которая позволяет инструментам на основе ИИ сосредотачиваться на ключевых элементах, что особенно полезно при работе с множеством файлов и историей изменений. В отличие от большинства традиционных подходов, тут акцент на локальное хранение данных, что улучшает производительность.
Проект написан на Python (3.10+) и использует Model Context Protocol (MCP) для интеграции. Запустить его можно через pip: pip install code-review-graph. Обрати внимание, что пока проект находится на ранней стадии разработки, это может повлиять на стабильность и функциональность.
Проект code-review-graph представляет собой локальный граф знаний о коде, который помогает инструментам ИИ, занимающимся код-ревью, точно ориентироваться в контексте изменений в коде. Основная идея состоит в том, чтобы создать структурированную карту кода с помощью библиотеки Tree-sitter, которая обновляется по мере внесения изменений, позволяя ассистентам обращаться только к тем файлам, которые затрагиваются изменениями.
Установка и запуск
Установка проекта включает несколько простых шагов:
pip install code-review-graph # или: pipx install code-review-graph
code-review-graph install # детектирует установленные инструменты ИИ и настраивает их
code-review-graph build # парсит кодовую базу
Команда install автоматически обнаруживает доступные инструменты ИИ и создает необходимые настройки. После этого, для начала работы, можешь открыть проект и запустить команду:
Build the code review graph for this project
Имей в виду, что время сборки графа зависит от размера репозитория. Например, полная сборка репозитория из ~3000 файлов может занять около 40 секунд.
Как это работает
При помощи Tree-sitter репозиторий парсится в абстрактные синтаксические деревья (ASTs), которые затем хранятся в виде графа, где узлы представляют собой функции, классы и импорты, а связи между ними — вызовы, наследование и покрытия тестами. При ревью граф запрашивается для определения минимально необходимого набора файлов, которые нужно прочитать для понимания изменений.
Когда изменяется файл, граф отслеживает всех вызывающих его функций и зависимостей, что позволяет избежать полной проверки всего проекта.
Ограничения
- Сложности с анализом маленьких изменений в одном файле. В некоторых случаях использование графа может быть менее эффективным, чем простое чтение файла.
- Поиск результатов может не всегда выдавать релевантные ответы. Выборка результатов требует дальнейшего улучшения.
- Детектирование потока управления выполняется наиболее эффективно для Python и PHP, в других языках возможны трудности.
- Как правило, отказоустойчивость подхода основана на развитии графа, что означает возможность ложных срабатываний в больших зависимостях.
Функции
Некоторые ключевые возможности code-review-graph включают:
- Инкрементальные обновления, при которых происходит повторный анализ только изменённых файлов.
- Широкая поддержка языков программирования и работа с Jupyter и Databricks ноутбуками.
- Анализ "взрывоопасной" области, позволяющий определить, какие функции, классы и файлы могут быть затронуты изменениями.
- Автоматические хуки, которые обновляют граф в процессе работы.
- Семантический поиск (опционально) с возможностью векторных встраиваний для улучшения поиска.
В целом, code-review-graph представляет интерес для разработчиков, использующих ИИ в процессе ревью кода, особенно в средах с большим количеством файлов и сложной структурой зависимостей.
Открыть на GitHub: tirth8205/code-review-graph →
RepoRadar