безопасность

Код не покидает
ваш контур.

ReviewGate ставится on-prem в вашем контуре. Вендор никогда не получает ваш код или дифф. Единственное исходящее соединение — к модели, которую выбрали вы; с локальной моделью наружу не уходит вообще ничего. Всё исходящее перечислено ниже.

on-prem · ваш контуртолько метаданныеair-gapped возможен
остаётся в контуре
  • Исходный код и дифф MR/PR
  • Содержимое файлов репозитория
  • Токен GitLab или GitHub и секрет вебхука
  • Имена веток, авторы, история
покидает контур
  • Промпт ревью (дифф + ваши правила; при включённых опциях код-контекста — также изменённые файлы целиком и версии стека) — только к LLM, которую выбрали вы, по вашему ключу
  • С локальной LLM (Ollama, vLLM) наружу не уходит вообще ничего
как идут данные

Один контур, одно исходящее по умолчанию

Схема потоков данных ReviewGateВ контуре клиента платформа и ReviewGate обмениваются вебхуком и комментариями; метаданные — в Redis и PostgreSQL. Единственное исходящее соединение по умолчанию — промпт ревью к выбранной LLM.КОНТУР КЛИЕНТА GitLab self-hosted ReviewGate ревью-движоквебхуккомментарии Redis + PostgreSQL только метаданныеВаша LLMваш ключ / локальнопромпт

Дифф и правила уходят только к выбранной вами LLM. Облачная — туда идёт промпт ревью по вашему ключу; локальная (Ollama, vLLM) — из контура не выходит ничего. ReviewGate-вендор в этой схеме не участвует и кода не видит.

хранение

Что хранится, а что — никогда

хранится (метаданные)
  • Число замечаний и их severity
  • Статусы ревью и severity gate
  • Израсходованные токены LLM
  • Всё — в вашей БД, автоочистка через 90 дней
никогда не хранится
  • Исходный код и дифф
  • Содержимое файлов
  • Тексты замечаний с фрагментами кода
проверяется в коде«Хранятся только метаданные ревью» — свойство архитектуры: бот физически не пишет код или дифф ни в логи, ни в базу. Верить на слово не нужно: база ваша, логи на вашем хосте, а исходящий трафик контейнера вы видите сами.
исходящие соединения

Полный перечень — и как свести к нулю

Выбранная вами LLM

Единственное исходящее соединение — и только если LLM облачная. Endpoint и ключ — ваши. Локальная модель убирает и его.

Реестр образов (только при обновлении)

Pull нового образа — только по инициативе вашего девопса. В рантайме ревью не используется; для закрытого контура возможна поставка файлом.

Лицензия — офлайн

Проверяется вшитым публичным ключом локально. Никаких обращений «домой» — работает и в air-gapped-контуре.

ноль исходящихЛокальная LLM + офлайн-лицензия = полностью air-gapped-инсталляция без единого исходящего соединения. Настройка — в разделе «LLM и свой ключ».
защита канала
  • Вебхук подписан секретом; токен сверяется сравнением постоянного времени.
  • Токен GitLab или GitHub и ключ LLM живут в вашем .env в вашем контуре.
  • Лицензия проверяется офлайн вшитым публичным ключом — без звонков домой.
что это значит для ваших ревью
  • Никакого нового субобработчика: код не уходит никому, кроме провайдера модели, которого вы выбрали сами и с которым у вас уже есть договор.
  • Ни телеметрии, ни звонков домой — в сторону вендора нечего вносить в allow-лист.
  • Air-gapped целиком: с локальной моделью инсталляция работает при запрещающем правиле на исходящий трафик.
faq безопасника

Частые вопросы

Уходит ли наш код к вам, вендору?

Нет. ReviewGate работает on-prem в вашем контуре и не получает ваш код или дифф. Мы видим только метаданные ревью, если вы сами их пришлёте для поддержки.

А в облако LLM?

Дифф уходит только к той LLM, которую выбрали вы, и по вашему ключу. Хотите ноль исходящих — поднимите локальную модель (Ollama или vLLM), бот это поддерживает.

Что вы храните?

Только метаданные: число замечаний, severity, статусы, израсходованные токены — в вашем же Postgres, с автоочисткой через 90 дней (по этим метрикам удобно смотреть пользу бота и то, что отбрасывает судья). Код и дифф — никогда: бот не пишет их ни в логи, ни в базу, и это видно в исходниках.

Можно ли работать полностью офлайн?

Да: локальная LLM + офлайн-проверка лицензии дают air-gapped-инсталляцию без единого исходящего соединения.

Что будет, если сломается судья или БД?

Ревью доедет всё равно — движок сквозной fail-open: сбой судьи публикует находки первого прохода, ошибки БД метрик дают только предупреждение в логах, недоступный код-контекст откатывает на дифф, неопубликованный статус проверки игнорируется. Ни одна побочная подсистема не валит ревью.

Кто имеет доступ к токену GitLab или GitHub?

Токен живёт в вашем .env в вашем контуре. Мы его не видим и не получаем.

Насколько изолирован контейнер бота?

Образ запускается от non-root, с файловой системой только на чтение, снятыми Linux-капабилити (cap_drop ALL) и no-new-privileges. Внутрь штатно не залезть, а при компрометации зависимости — не закрепиться и не записать на диск. Полностью закрыть контейнер от root-администратора самого хоста нельзя (это устройство Docker, а не наша недоработка) — но всё нужное наблюдается снаружи, заходить внутрь не требуется.

Как получить логи для диагностики, не вскрывая контейнер?

Логи пишутся на хост и читаются снаружи: docker compose logs -f app (или выгрузка в файл одной командой). В них только метаданные ревью — модели, severity, токены; кода и диффа там нет. Логи остаются у вас и нам не уходят.

Проверьте сами

Всё, что описано выше, проверяется на вашей же инсталляции: поднимите бот в своём контуре и посмотрите, что уходит наружу, а что остаётся внутри.