GitLab 15.10: обновляем CE на on-premise - что реально работает без облака
GitLab 15.10 вышел с AI-ассистентом и улучшенным SAST. Обновляем CE на on-premise: разбираем что доступно без cloud-лицензии и что из этого стоит внимания.
GitLab 15.10 (апрель 2023) - AI-assisted code suggestions, новый SAST-движок, улучшенный container scanning
GitLab 15.10 вышел на прошлой неделе, и пресс-релиз был предсказуемо про AI. Code suggestions, ML-ассистент в MR, интеллектуальные подсказки - звучит красиво. Мы пощупали обновление на нескольких on-premise инсталляциях клиентов на CE-редакции и можем сказать: AI-история там не про нас. Но кое-что действительно интересное под шумихой нашлось.
AI-фичи: честный ответ
Да, GitLab интегрировал code suggestions на базе Vertex AI и собственных моделей. Работает это через облачное соединение с GitLab.com и требует SaaS или Self-Managed с активной Premium/Ultimate cloud-лицензией, где включён feature flag.
На CE-инсталляции без коммерческой cloud-подписки это не включается. Никаких workaround, никакого «просто включи в конфиге». Функционал завязан на API-ключи GitLab-а, которые выдаются платным клиентам.
Для наших клиентов, которые держат GitLab в закрытом контуре именно потому что не хотят отправлять код в облако - это вопрос не цены, а принципа. Code suggestions означает, что фрагменты кода уходят во внешний сервис для инференса. В регулируемых средах (КИИ, финансы) это сразу нет.
Так что AI-блок честно обозначаем: не для on-premise CE без cloud-подписки, не для закрытых контуров. Дальше про то, что работает.
Новый SAST-движок
Это реально интересно. В 15.10 GitLab завершил переход на обновлённый анализатор для ряда языков. Конкретно - Semgrep-based анализатор теперь покрывает больше правил для Python, Go и Java, а движок стал работать заметно быстрее на крупных репозиториях.
На практике это означает несколько вещей.
Меньше false positive. Обновлённые правила лучше понимают контекст. Классическая ситуация: код использует subprocess в Python, старый анализатор бил тревогу почти на любой вызов. Новый смотрит на то, откуда приходят данные - и число ложных срабатываний по нашим прогонам упало ощутимо.
Скорость. На репозиториях среднего размера (несколько сотен тысяч строк) анализ стал быстрее. Это важно для CI-пайплайнов с tight-бюджетом по времени - SAST нередко съедал несколько минут и превращался в кандидата на «запускать только по расписанию».
Конфигурация осталась прежней. Если уже используете gl-sast-report.json и кастомные правила - ничего ломать не придётся. Переход прозрачный.
SAST в GitLab CE доступен без ограничений - это принципиальная позиция GitLab, которую они держат несколько лет. Что включить в .gitlab-ci.yml:
include:
- template: Security/SAST.gitlab-ci.yml
Минимальный вход. Для Go-проектов обновление особенно заметно - там правила по работе с криптографией и работе с указателями стали значительно точнее.
Container scanning
Второй апдейт, который стоит внимания - улучшения в container scanning. GitLab использует Trivy под капотом и в 15.10 подтянул его до актуальной версии с улучшенной детекцией уязвимостей в OS-пакетах.
Что изменилось: сканер теперь корректно обрабатывает дистро-специфичные backport-патчи. Это давняя боль - Debian и Ubuntu часто патчат CVE не через bump версии пакета, а через backport. Trivy исторически это плохо понимал и давал false positive на пропатченных пакетах. В новой версии это стало работать заметно лучше.
Для on-premise это значит, что при использовании образов на базе Debian (что типично для большинства Python и Java сервисов) отчёты стали чище. Меньше «критических» CVE, которые на деле уже закрыты в дистрибутиве.
Про обновление
Обновление с 15.9 на 15.10 прошло штатно - миграции БД небольшие, даунтайм в пределах обычного окна. На нескольких инсталляциях клиентов обновляли последовательно: gitlab-rake db:migrate до остановки сервиса, потом пакет, потом запуск. Никаких сюрпризов.
Стандартное напоминание для тех, кто пропустил несколько релизов: GitLab требует апгрейд через каждый minor-релиз, перепрыгивать нельзя. Если сидите на 15.7, дорога до 15.10 - это три шага.
Итог
GitLab 15.10 - не тот релиз, который меняет жизнь on-premise пользователям CE. AI-история - это про платный SaaS, честно признаем. Но обновлённый SAST и подтянутый container scanning - это реальная польза для DevSecOps-пайплайнов без каких-либо доплат и внешних зависимостей.
Для клиентов, которых мы сопровождаем в рамках managed-услуги, обновление планируем в стандартном цикле. Те, кто уже строил DevSecOps-пайплайн с нами, получат улучшенный SAST автоматически - менять конфигурацию пайплайна не нужно.