Сценарий 09: Код-ревью

Сценарий 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

Связанные сценарии