Краткое руководство по 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