Сценарий 09: Код-ревью¶
Автоматическое код-ревью для запросов на слияние (pull requests), патчей и локальных изменений.
Быстрый старт¶
# Выберите сценарий код-ревью
/select 09
Источники для ревью¶
Pull Request в GitHub¶
/review github 123
Merge Request в GitLab¶
/review gitlab 456
Локальные изменения в Git¶
/review git
Файл патча¶
/review file path/to/changes.patch
Понимание результатов ревью¶
╭─────────────── Результаты ревью ────────────────────────────╮
│ │
│ Оценка: 72/100 Рекомендация: ТРЕБУЮТСЯ ИЗМЕНЕНИЯ │
│ │
│ Найденные проблемы: │
│ │
│ 🔴 КРИТИЧЕСКИЙ Риск SQL-инъекции │
│ Расположение: src/api/user_query.c:45 │
│ Причина: Ввод пользователя вставляется напрямую в запрос│
│ Исправление: Используйте параметризованные запросы │
│ │
│ 🟡 СРЕДНИЙ Цикломатическая сложность │
│ Расположение: src/parser/gram.y:1234 │
│ Значение: 47 (порог: 10) │
│ Исправление: Вынесите вспомогательные функции │
│ │
│ 🟢 НИЗКИЙ Отсутствует проверка на NULL │
│ Расположение: src/utils/string.c:89 │
│ Исправление: Добавьте проверку указателя на NULL │
│ │
╰───────────────────────────────────────────────────────────╯
Ревью с встроенными комментариями¶
/review git --format md --inline
╭─────────────── Встроенные комментарии ────────────────────╮
│ │
│ src/api/user_query.c │
│ │
│ Строка 45: │
│ sprintf(query, "SELECT * FROM users WHERE id=%s", id); │
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^│
│ 🔴 SQL-инъекция: Используйте snprintf с экранированием │
│ │
│ Строка 67: │
│ char *result = malloc(len); │
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ │
│ 🟡 Память: Проверяйте возвращаемое значение malloc на NULL│
│ │
╰───────────────────────────────────────────────────────────╯
Форматы вывода¶
| Формат | Описание | Применение |
|---|---|---|
| –format md | Markdown | Документация, GitHub |
| –format json | JSON | Интеграция с CI/CD |
| –format yaml | YAML | Конфигурация |
Опции ревью¶
# Базовое ревью
/review git
# С указанием формата
/review git --format json
# С встроенными комментариями
/review git --inline
# Комбинированный вариант
/review github 123 --format md --inline
Связанные сценарии¶
- Аудит безопасности — Глубокий анализ безопасности
- Покрытие тестами — Анализ покрытия кода тестами
- Рефакторинг — Качество кода