Skip to content
Neuronavt
Go back

Кросс-репозиторное AI-ревью для GitLab

Кейс8/10

Коротко

Автор описывает систему, которая запускает ревью из одного merge request, но собирает контекст всей связанной задачи во всех затронутых репозиториях. По его оценке, агентное ревью сократило личное время на проверку на 80% и помогло выявлять межсервисные несоответствия; решение оставляет окончательное решение за людьми.

Контекст

Автор — разработчик с примерно 20-летним опытом, который автоматизирует рутинную часть работы тимлида. Он столкнулся с тем, что отдельный MR может выглядеть корректно, хотя изменение ломает контракт между несколькими сервисами. Решение предназначено только для GitLab; автор предлагает готовый проект code-review для подключения к группе репозиториев.

Главное

Как сделано

При запуске из MR система извлекает номер issue из имени ветки, затем читает системные заметки issue, чтобы найти репозитории, где есть связанные коммиты. По SHA коммитов GitLab API определяет соответствующие ветки. Репозитории клонируются в общее рабочее пространство; туда же помещаются описание задачи с обсуждением и diff каждого проекта. Агент на базе CLI — например, codex exec, claude или gemini — изучает требования, правила репозиториев, diff и окружающий код, а затем публикует отчёт в MR и голосует 👍 или 👎. Для затронутых соседних проектов он создаёт follower-MR с меткой merge::follower; повторное ревью и голосование там отключены.

Секреты отделены от непроверенного кода: первый пайплайн передаёт запуск во второй, в проекте-ревьюере, где хранятся токен бота и ключи моделей. Вместо pipeline variables используются типизированные inputs GitLab 17.11+, а входящие переменные запрещены настройкой Minimum role to use pipeline variables → No one allowed. Агент запускается без GitLab-токенов и лишних секретов. Merge блокируется через Pipelines must succeed; job verify-approvals проверяет кворум «2 из 3»: при одобрении AI нужен один человеческий 👍, при отклонении или отсутствии голоса AI — два. Модель можно выбрать меткой MR; второе мнение другой модели доступно отдельно и по умолчанию выключено.

Результаты

Автор сообщает, что ранняя схема «diff → модель» давала около 30% ложных замечаний и экономила примерно 20% его времени. После перехода к агенту, который исследует связанные файлы и репозитории, его время на ревью сократилось на 80%. Система прошла более сотни задач; автор утверждает, что не обнаружил ошибок самого AI-ревью и стал спокойнее деплоить. Полное ревью обычно занимает минуты, а в тяжёлых случаях — 10–20 минут; в инструкции для настройки указано, что отдельный запуск может длиться до 45 минут.

Ограничения

Это практический опыт одного автора, а не контролируемое сравнение: не приведены методика измерения экономии времени, независимая оценка качества, статистика ложных срабатываний агентной версии или сравнение моделей. Утверждение об отсутствии ошибок основано на опыте автора. Решение работает только с GitLab 17.11+ и не поддерживает GitHub или Bitbucket. Запуски расходуют токены и CI compute minutes; второе мнение примерно удваивает стоимость. На gitlab.com Free недоступны project access tokens, поэтому используется групповой read-токен с более широкими последствиями утечки. Агенту разрешены инструменты для анализа кода потенциально недоверенных веток, поэтому безопасность строится на ограничении передаваемых ему секретов и окружения, а не на обещании отсутствия prompt injection.

Что взять себе

Читать оригинал, если…

Откройте оригинал, если собираетесь внедрять решение: там есть пошаговая настройка GitLab, CI-конфигурация, команды для токенов и подробности обработки гонок и прав доступа.