Настройка Code Review процесса для команды разработки
Code Review без чётко описанного процесса превращается в узкое место: PR висит по 3 дня, ревьюеры пишут субъективные комментарии, автор не понимает что срочно, что нет. Результат — накопленный WIP и демотивация команды.
Элементы процесса
PR template — структурированное описание изменений, которое автор заполняет при открытии PR:
<!-- .github/pull_request_template.md -->
## Что сделано
<!-- Краткое описание изменений -->
## Почему
<!-- Ссылка на задачу или контекст -->
Closes #ISSUE_NUMBER
## Как протестировать
<!-- Шаги для проверки -->
1.
2.
## Чеклист
- [ ] Тесты добавлены / обновлены
- [ ] Документация обновлена
- [ ] Нет console.log и отладочного кода
- [ ] Нет hardcoded секретов
CODEOWNERS — автоматическое назначение ревьюеров по файлам:
# .github/CODEOWNERS
# Глобальный ревьюер
* @tech-lead
# Backend — только backend-разработчики
/src/api/ @backend-team
/database/ @backend-team
# Инфраструктура — только DevOps
/.github/ @devops-team
/docker/ @devops-team
Правила для ревьюеров
Уровни комментариев — чтобы автор понимал приоритет:
-
[blocker]— мерж невозможен до исправления. Баг, уязвимость, нарушение архитектуры. -
[suggestion]— улучшение, но не обязательно. Автор решает. -
[question]— просьба объяснить решение. Не требует изменений. -
[nit]— мелочь (опечатка, форматирование). Не блокирует.
Временной договор: ревьюер должен обработать PR в течение 1 рабочего дня. Если не успевает — пишет когда сможет или просит другого. PR не должен висеть без ответа больше суток.
Автоматические проверки перед ревью
Ревьюеры не должны тратить время на то, что автоматизируется:
# .github/workflows/pr-checks.yml
name: PR Checks
on: [pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run lint
- run: npm run type-check
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm test
Линтер ловит стиль, тесты ловят регрессии — ревьюер фокусируется на архитектуре и логике.
Метрики процесса
Отслеживать через GitHub Insights или LinearB:
- Time to first review — сколько PR ждёт первого комментария
- Time to merge — от открытия до мержа
- PR size — большие PR (>400 строк) ревьюируются хуже
Цель: среднее time to merge < 24 часов, 80% PR < 200 строк.
Сроки
Написание PR template, настройка CODEOWNERS, автоматических проверок и документирование процесса для команды — 1–2 дня.







