Краткое руководство по CodeGraph

Краткое руководство по CodeGraph

Шпаргалка на одной странице для повседневного использования


Основные команды

Команда Пример Описание
/help /help review Показать справку
/scenarios /scenarios security Список сценариев
/select /select 02 Сменить сценарий
/stat /stat Показать статистику БД
/query /query SELECT * FROM nodes_method LIMIT 5 Выполнить SQL
/review /review git Проверка кода
/config /config llm temperature 0.5 Изменить настройки
/exit /exit Сохранить и выйти

Сценарии по ролям

Разработчик

/select 01  → Онбординг       "Где определена функция X?"
/select 04  → Разработка фич  "Куда добавить хук?"
/select 05  → Рефакторинг     "Найти мёртвый код"
/select 15  → Отладка         "Проследить путь выполнения"

QA / Тестировщик

/select 07  → Покрытие тестами "Что не покрыто тестами?"
/select 09  → Код-ревью       "Проверить этот патч"
/select 12  → Технический долг "Оценить объём долга"

Безопасность

/select 02  → Аудит безопасности "Найти SQL-инъекции"
/select 08  → Соответствие стандартам "Проверить по OWASP Top 10"
/select 14  → Инцидент        "Проследить вектор атаки"
/select 16  → Точки входа     "Список API-эндпоинтов"

Технический писатель

/select 03  → Документирование "Описать функцию X"
/select 11  → Архитектура     "Объяснить структуру модуля"

Частые запросы

Поиск функций

> Где определена palloc?
> Показать вызывающие heap_insert
> Что вызывает ExecProcNode?

Анализ безопасности

> Найти уязвимости к SQL-инъекциям
> Проследить путь данных от пользовательского ввода до запроса
> Показать функции без валидации входных данных

Понимание кода

> Объясните подсистему исполнителя
> Как работает выделение памяти?
> Показать зависимости модуля X

Код-ревью

/review git              # Локальные изменения
/review github 123       # GitHub PR
/review gitlab 456       # GitLab MR
/review file patch.diff  # Файл патча

# С опциями
/review git --format json --inline

SQL-запросы

-- Подсчёт функций
/query SELECT COUNT(*) FROM nodes_method

-- Поиск функций по имени
/query SELECT name, filename FROM nodes_method
       WHERE name LIKE 'heap%' LIMIT 10

-- Поиск вызывающих функций
/query SELECT caller.name FROM edges_call e
       JOIN nodes_method caller ON e.src = caller.id
       WHERE e.dst = (SELECT id FROM nodes_method WHERE name='palloc')
       LIMIT 5

Конфигурация

# Просмотр всех настроек
/config

# Изменение параметров LLM
/config llm provider gigachat
/config llm temperature 0.7

# Переменные окружения
export GIGACHAT_AUTH_KEY="..."
export OPENAI_API_KEY="..."

Быстрые рабочие процессы

Утренняя проверка безопасности

/select 02
> Найти уязвимости в последних коммитах
/review git

Начало работы нового разработчика

/select 01
> Какова основная архитектура?
> С какого места начать читать код?

Аудит перед релизом

/select 08
> Сгенерировать отчёт по соответствию OWASP
/review git --format json > audit.json

Устранение неполадок

Проблема Решение
“Нет результатов” Проверьте/stat, убедитесь, что CPG загружена
Медленный отклик Уменьшитеn_ctxв настройках
Подключение отклонено Перезапустите сервер Joern
Таймаут API Увеличьтеtimeoutв настройках

Полная документация: Руководство пользователя TUI