Відкритий лист страховому ринку України — Ознайомитись

    Зворотній зв'язок

    AI Code Review: що шукати в інструменті і чому ми створили свій

    Обсяг коду, згенерованого ШІ, зростає з кожним спринтом. Розробники випускають фічі швидше. Але є незручне питання: хто ревʼює весь цей код?

    Ручне 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-коментар впливає на наступне ревʼю.

    Іронія? Ми використали ШІ, щоб створити інструмент, який ревʼює код, написаний ШІ. І це працює.