Обсяг коду, згенерованого ШІ, зростає з кожним спринтом. Розробники випускають фічі швидше. Але є незручне питання: хто ревʼює весь цей код?
Ручне code review не масштабувалось роками — а тепер обсяг ще більший. AI code review — це вже не nice-to-have. Це необхідність для контролю якості.
Що нам насправді потрібно від AI review інструменту
Після місяців експериментів ми сформували чіткий список вимог:
- Якість коду, безпека, складність, продуктивність — базові речі, але інструмент має ловити їх стабільно, а не час від часу
- Стандарти конкретного проєкту — загальних правил недостатньо. Інструмент повинен знати ваші code conventions, UI-патерни та архітектурні рішення. “Це порушує вашу naming convention” — корисно. “Можливо, варто перейменувати цю змінну” — шум
- Перевірка вимог — інструмент має читати Jira-тікет, перевіряти кожен acceptance criterion і позначати, що відсутнє або відхиляється. Саме тут більшість інструментів не справляються
- Контроль бюджету токенів — виклики LLM коштують грошей. Денний ліміт токенів дозволяє тримати витрати передбачуваними без втрати якості ревʼю
- Inline-коментарі, а не підсумковий звіт — 500 слів у кінці MR легко проскролити. Inline-коментар, що вказує на конкретний рядок? Його читають і виправляють
Що ми спробували
Ми тестували CodeRabbit, Qodo Merge (ex PR-Agent) та GitHub Copilot code review. Всі — якісні продукти, що добре справляються із загальною якістю коду. Але жоден із них не міг перевіряти вимоги з наших Jira-тікетів, застосовувати специфічні для проєкту правила чи контролювати бюджет токенів.
Що ми створили
Тому ми побудували власний AI-ревʼюер всередині нашого внутрішнього DevOps-інструменту — до речі, з допомогою генеративного ШІ. Він автоматично запускається на кожному merge request, отримує diff, резолвить referenced symbols по всій кодовій базі для повного контексту та підтягує привʼязаний Jira-тікет з acceptance criteria. Для великих MR він розбиває файли на логічні групи і ревʼює їх паралельно. Він залишає inline-коментарі до конкретних рядків у GitLab — а не стіну тексту внизу. Він відстежує денний бюджет токенів по всіх ревʼю. І вчиться на зворотному звʼязку від розробників: кожен 👍 або 👎 на AI-коментар впливає на наступне ревʼю.
Іронія? Ми використали ШІ, щоб створити інструмент, який ревʼює код, написаний ШІ. І це працює.