Вышел релиз GitLab 17.6 с бета-версией Duo Chat с автономным управлением

Сегодня мы рады объявить о релизе GitLab 17.6 с бета-версией Duo Chat с самостоятельным управлением, проверками соответствия для сканеров безопасности SAST и DAST, группированием отчётов об уязвимостях, общедоступным реестром моделей и многим другим!

Это лишь несколько из почти 150 улучшений в этом релизе. Читайте дальше, чтобы узнать обо всех этих замечательных обновлениях.

Спасибо всему огромному сообществу GitLab за 265 вкладов, которые вы внесли в GitLab 17.6! В GitLab каждый может внести свой вклад, мы не смогли бы сделать это без вас!

Чтобы заранее узнать, что запланировано на следующий месяц, посмотрите страницу наших будущих релизов — на ней есть видео, посвящённое релизу 17.7.

GitLab MVP badge

Награда MVP в этом месяце присуждается Joel Gerber

Everyone can nominate GitLab’s community contributors! Show your support for our active candidates or add a new nomination! ????

Номинировать участников сообщества GitLab на награду MVP может каждый. Поддержите активных кандидатов или добавьте новую номинацию ????

Joel был отмечен за неоценимый вклад в разработку наших компонентов CI, за полезный фидбэк по мерж-реквестам и вдумчивые комментарии к сложным обсуждениям. Также он сделал доработку пользовательского интерфейса для каталога CI/CD, внёс очень нужные правки в документацию для поставщика GitLab Terraform, временные метки в логе заданий и фидбэк для команды UI/UX.

Joel — штатный разработчик в HackerOne. Он был номинирован Lee Tickett, штатным фулстек-разработчиком из команды поддержки участников (Contributor Success) в GitLab, за вклад и ценный фидбэк.

Gina Doyle, старший продуктовый дизайнер в GitLab, добавила к номинации: «Внутри было много обсуждений, которые привели к усложнению процесса мерж-реквеста. Но Joel держался активным участником дискуссии и внёс свой вклад в её развитие».

«Joel также внёс вклад в доработку пользовательского интерфейса по проблеме каталога CI/CD», — говорит Sunjung Park, штатный продуктовый дизайнер в GitLab. «Это делает наш пользовательский интерфейс более красивым и согласованным с другими разделами.

Основные улучшения в GitLab 17.6

Использование модели с самостоятельным управлением для GitLab Duo Chat

Теперь вы можете размещать свои большие языковые модели (LLM), использовать и поддерживать их в GitLab Duo Chat, размещённом на своём сервере. Эта фича находится в бета-версии и доступна при наличии подписки Ultimate и Duo Enterprise в GitLab с самостоятельным управлением.

С автономными моделями можно использовать модели, размещённые как локально, так и в приватном облаке, чтобы активировать чат GitLab Duo или автодополнение (эта фича появилась в бета-версии в GitLab 17.5). Что касается автодополнения, то в настоящее время мы поддерживаем опенсорсные модели Mistral на vLLM или AWS Bedrock, Claude 3.5 Sonnet на AWS Bedrock и модели OpenAI на Azure OpenAI. Если нужен чат, в настоящее время мы поддерживаем опенсорсные модели Mistral на vLLM или AWS Bedrock, а также Claude 3.5 Sonnet на AWS Bedrock. Включив модели с самостоятельным размещением, можно использовать возможности генеративного искусственного интеллекта, сохраняя при этом полную независимость и конфиденциальность данных.

Ждём ваших отзывов в тикете 501268.

Use self-hosted model for GitLab Duo Chat

Документация по моделям с самостоятельным размещением и оригинальный тикет.

Улучшенные возможности при назначении ревьюеров для мерж-реквестов

После того, как вы тщательно проработали свои изменения и подготовили мерж-реквест, надо определить ревьюеров, которые могут помочь в его продвижении. Определение правильных ревьюеров для вашего мерж-реквеста подразумевает понимание того, кто может подтвердить мерж-реквест, и кто может быть экспертом в той области (например, CODEOWNER), где вы предлагаете изменения.

Теперь при назначении ревьюеров боковая панель создаёт связь между требованиями подтверждения для вашего мерж-реквеста и ревьюерами. Просмотрите каждое правило подтверждения, затем выберите из тех подтверждающих, которые могут соответствовать этому правилу и будут способствовать продвижению вашего мерж-реквеста. Если вы используете необязательные разделы CODEOWNER, эти правила также отображаются на боковой панели, чтобы помочь вам определить подходящих экспертов по предметной области для ваших изменений.

Расширенные возможности назначения ревьюеров — это следующая эволюция в применении Code intelligence к назначенным ревьюерам в GitLab. Эта итерация основана на том, что мы узнали от предложенных ревьюеров, и о том, как эффективно выявлять лучших ревьюеров для продвижения мерж-реквеста. В следующих версиях заданий для ревьюеров мы продолжим совершенствовать информацию, используемую для рекомендации и ранжирования возможных ревьюеров.

Документация по запросу ревью мерж-реквеста и оригинальный эпик.

Enhanced merge request reviewer assignments

Отображение описания релиза на странице сведений о развёртывании

Вы когда-нибудь задумывались, что может быть внутри развёртывания, которое вас попросили одобрить? В прошлых версиях вы могли создать релиз с подробным описанием его содержимого и инструкциями по тестированию, но в соответствующем развёртывании для конкретного окружения эти данные не отображались. Мы рады сообщить, что GitLab теперь отображает описание релиза на странице сведений о соответствующем развёртывании.

Поскольку релизы GitLab всегда создаются на основе тега Git, описание релиза показывается только в развёртываниях, связанных с конвейером, запущенным соответствующим тегом.

Эту фичу добавил в GitLab Anton Kalmykov. Спасибо!

Документация по просмотру заблокированных развёртываний и оригинальный тикет.

Display release notes on deployment details page

Настройка администратора для принудительного использования белого списка токенов для заданий CI/CD

Ранее мы объявили, что поведение токена задания CI/CD по умолчанию (CI_JOB_TOKEN) изменится в GitLab 18.0, так что вы должны будете явно добавлять отдельные проекты или группы в белый список токена задания вашего проекта, если хотите, чтобы они продолжали иметь доступ к вашему проекту.

Теперь мы предоставляем администраторам самоуправляемых и выделенных инстансов возможность применять эту более безопасную настройку для всех проектов в инстансе. После включения этой настройки каждый проект должен будет использовать свой белый список, если он хочет использовать токены заданий CI/CD для аутентификации. Примечание: мы рекомендуем включить эту настройку как часть строгой политики безопасности.

Документация по настройке токенов доступа и оригинальный тикет.

Admin setting to enforce CI/CD job token allowlist

Отслеживание аутентификации по токенам заданий CI/CD

Ранее было сложно отследить, какие другие проекты использовали для доступа к вашему проекту токены заданий CI/CD. Чтобы упростить вам аудит и контроль доступа к вашему проекту, мы добавили лог аутентификации.

С помощью этого лога можно просматривать список других проектов, которые использовали токен задания для аутентификации в вашем проекте как в пользовательском интерфейсе, так и в виде загружаемого CSV-файла. Эти данные можно использовать для аудита доступа к проекту и помощи в заполнении белого списка для токенов заданий, чтобы обеспечить более строгий контроль над тем, какие проекты могут получить доступ к вашему проекту.

Документация по логированию аутентификации по токенам заданий CI/CD и оригинальный тикет.

Track CI/CD job token authentications

Группирование отчётов об уязвимостях

Пользователям требуется возможность просматривать уязвимости в группах. Это поможет аналитикам безопасности оптимизировать свои задачи по выбору уязвимостей, которыми заняться в первую очередь, используя массовые действия. Кроме того, пользователи смогут видеть, сколько уязвимостей соответствуют их группе. Например, сколько у них уязвимостей из списка OWASP Top 10.

Документация по группировке уязвимостей в отчёте и оригинальный эпик.

Vulnerability report grouping

Реестр моделей стал общедоступным

Теперь стал общедоступным Реестр моделей GitLab — единый центр для управления моделями машинного обучения в рамках вашего существующего рабочего процесса GitLab. Вы можете отслеживать версии моделей, хранить артефакты и метаданные, а также вести полную документацию в карточке модели.

Созданный для бесшовной интеграции, реестр моделей работает с клиентами MLflow и подключается непосредственно к конвейерам CI/CD, обеспечивая автоматизированное развёртывание и тестирование моделей. Дата-сайентисты могут управлять моделями с помощью интуитивно понятного пользовательского интерфейса или существующих рабочих процессов MLflow, а команды MLOps могут использовать семантическое версионирование и интеграцию CI/CD для упрощённых развёртываний в продакшен — всё это в рамках GitLab API.

Не стесняйтесь писать нам в тикете обратной связи, и мы свяжемся с вами! Начните работу с реестром сегодня: перейдите в Deploy > Model registry в вашем инстансе GitLab.

Документация по реестру моделей и оригинальный эпик.

Новые конфигурации клиентской сети для GitLab Dedicated

Как администратор клиента GitLab Dedicated, вы теперь можете использовать Switchboard для настройки исходящих приватных ссылок и приватных размещённых зон. Вы также можете отслеживать свои сетевые подключения, просматривая периодические снэпшоты в Switchboard.

Исходящие приватные ссылки и приватные размещённые зоны обеспечивают безопасное сетевое подключение между ресурсами в вашем аккаунте AWS и в GitLab Dedicated.

Документация по исходящим приватным ссылкам и оригинальный тикет.

New tenant networking configurations for GitLab Dedicated

Новые проверки соответствия для сканеров безопасности SAST и DAST

GitLab предлагает широкий спектр сканеров безопасности, например SAST, обнаружение секретных ключей, сканирование зависимостей, сканирование контейнеров, чтобы вы могли проверять свои приложения на наличие уязвимостей.

У вас должен быть способ показать аудиторам и тем, кто отвечает за обеспечение соответствия, что ваши приложения соответствуют нормативным стандартам, которые требуют установки сканеров безопасности для ваших репозиториев.

Чтобы помочь вам продемонстрировать соблюдение этих стандартов, в этом релизе мы добавили две новые проверки в рамках отчёта о соблюдении стандартов в Центре соответствия. Эти новые проверки проверяют, были ли включены SAST и DAST для проектов в группе. Проверки подтверждают, что сканеры безопасности SAST и DAST были корректно запущены в проекте, а результаты конвейера содержат правильные итоговые артефакты.

Документация по панели соответствия стандартам и оригинальный эпик.

New adherence checks for SAST and DAST security scanners

Другие изменения в 17.6

События проекта для групповых веб-хуков

В этом релизе мы добавили события проекта в групповые веб-хуки. События проекта срабатывают, когда:

  • проект создаётся в группе,

  • проект удаляется в группе.

Эти события срабатывают только для групповых веб-хуков.

Документация по веб-хукам для событий проекта и оригинальный тикет.

Развёртывание сайта GitLab Pages с помощью любого задания CI/CD

Для большей гибкости при проектировании конвейеров вам больше не нужно называть pages задание по развёртыванию GitLab Pages. Теперь можно просто использовать атрибут pages в любом задании CI/CD, чтобы запустить такое развёртывание.

Deploy your Pages site with any CI/CD job

Документация по именованию заданий для GitLab pages и оригинальный тикет.

Запрос метрик использования GitLab Duo Enterprise на уровне пользователя

До этого релиза было невозможно получить данные об использовании GitLab Duo Chat и Code Suggestions для каждого пользователя Duo Enterprise. В релизе 17.6 мы добавили API GraphQL, чтобы было видно количество принятых предложений по коду и взаимодействий Duo Chat для каждого активного пользователя Duo Enterprise. Этот API может помочь вам получить более детальное представление о том, кто использует какие фичи Duo Enterprise и как часто. Это первый шаг к нашей цели предоставления более полных данных об использовании Duo Enterprise в GitLab.

Документация по метрикам в GraphQL и оригинальный тикет.

Поддержка корпоративной сети для GitLab Duo

В последнем обновлении плагина GitLab Duo появилась расширенная прокси-аутентификация. Она позволяет разработчикам легко подключаться в окружениях со строгими корпоративными брандмауэрами. Опираясь на существующую поддержку HTTP-прокси, это улучшение позволяет устанавливать аутентифицированные соединения. Оно обеспечивает безопасный и бесперебойный доступ к фичам Duo в VS Code и во всех IDE от JetBrains.

Это обновление очень полезно для разработчиков, которым требуются безопасные подключения с проверкой подлинности в сетевых окружениях с ограниченным доступом. Оно обеспечивает доступность всех фич Duo без ущерба для безопасности.

Документация по прокси-аутентификации и оригинальный тикет.

Образ задания для macOS Sequoia 15 и Xcode 16

Теперь можно создавать, тестировать и разворачивать приложения для новейших поколений устройств Apple, используя macOS Sequoia 15 и Xcode 16.

Обработчики заданий GitLab, размещённые на macOS, помогают вашим командам разработчиков быстрее создавать и развёртывать приложения macOS в безопасном окружении сборки по требованию, интегрированном с GitLab CI/CD.

Попробуйте это уже сегодня, используя образ macos-15-xcode-16 в файле .gitlab-ci.yml.

Документация по обработчикам заданий GitLab, размещённым на macOS, и оригинальный тикет.

Выбор агента GitLab для окружения в задании CI/CD

Чтобы использовать панель для Kubernetes, вам нужно выбрать агента для подключения Kubernetes из настроек окружения. До сих пор вы могли выбрать агента только из пользовательского интерфейса или (с GitLab 17.5) через API, что затрудняло настройку панели управления из CI/CD. В GitLab 17.6 можно настроить подключение агента с помощью синтаксиса environment.kubernetes.agent. Кроме того, тикет 500164 предлагает добавить поддержку выбора пространства имён и ресурса Flux из конфигурации CI/CD.

Документация по настройке динамического окружения Kubernetes и оригинальный тикет.

Включение защиты от пуша секретных ключей в ваших проектах через API

Теперь стало проще программно включить защиту от пуша секретных ключей. Мы обновили REST API настроек приложения, позволяющий:

  1. Включить такую настройку в вашем инстансе с самостоятельным управлением, чтобы защита могла быть включена для каждого проекта.
  2. Проверить, включена ли она в проекте.
  3. Включить её для указанного проекта.

Документация по защите от пуша секретных ключей и несколько и оригинальных и тикетов.

Поддержка данных лицензии из CycloneDX SBOM

Сканер лицензий теперь может получать лицензию для зависимости из CycloneDX SBOM, где включаются поддерживаемые типы .

В случаях, когда поле licenses в CycloneDX SBOM доступно, пользователи будут видеть данные о лицензиях из своего SBOM. В случаях, когда в SBOM отсутствует информация о лицензии, мы продолжим предоставлять эти данные из нашей базы данных лицензий.

Документация по артефактам в CycloneDX и оригинальный тикет.

События аудита для привилегированных действий

Теперь для действий администратора, связанных с привилегированными настройками, есть дополнительные события аудита. Запись того, когда эти настройки были изменены, может помочь повысить безопасность за счёт предоставления журнала аудита.

Документация по событиям аудита для групп и проектов и оригинальный тикет.

Больше информации в email о входе в систему из новых мест

GitLab может отправлять email при обнаружении входа из нового места. Раньше в нём был только IP-адрес, который трудно соотнести с местоположением. Теперь там появилась информация о городе и стране.

Спасибо Henry Helm за эту фичу!

Документация по информированию о входах из новых мест и оригинальный тикет.

Значок для сервисных аккаунтов

У сервисных аккаунтов теперь есть специальный значок, так что их можно легко заметить в списке пользователей. Раньше у них был только значок bot, что мешало отличать их от токенов доступа к группам и проектам.

Service accounts badge

Документация по сервисным аккаунтам и оригинальный тикет.

Фильтрация пользователей GitLab Duo по тому, назначено ли место

В предыдущих версиях GitLab список пользователей, отображаемый на странице назначения места GitLab Duo, нельзя было отфильтровать, что затрудняло просмотр того, каким пользователям ранее было назначено место GitLab Duo. Теперь можно отфильтровать список пользователей по параметру Assigned seat = Yes или Assigned seat = No, чтобы увидеть, каким пользователям в настоящее время назначено или не назначено место в GitLab Duo, что позволяет легко настраивать распределение мест.

Filter GitLab Duo users by assigned seat

Документация по просмотру назначенных мест в GitLab Duo и оригинальный эпик.

API аналитики влияния AI для GitLab Duo Pro

Клиенты GitLab Duo Pro теперь могут программно получать доступ к метрикам аналитики влияния AI с помощью API GraphQL aiMetrics. Метрики содержат количества назначенных мест в GitLab Duo, пользователей чата Duo и пользователей Code Suggestion. Этот API также предоставляет подробную статистику показанных и принятых предложений по коду. С помощью этих данных можно рассчитать коэффициент принятия предложений по коду и лучше понять, как пользователи Duo Pro используют Duo Chat и Code Suggestions. Вы также можете объединить показатели AI Impact Analytics с показателями аналитики цикла разработки и метриками DORA, чтобы получить более глубокое представление о том, как использование Duo Chat и Code Suggestions влияет на производительность вашей команды.

Документация по метрикам AI и оригинальный тикет.

Управление видимостью закрытых элементов при просмотре

Теперь можно скрывать закрытые элементы в списках связанных и дочерних элементов, выключив переключатель Показывать закрытые элементы (Show closed items). Благодаря этому дополнению вы получаете больше контроля над тем, что видите, и можете сосредоточиться на активной работе, уменьшая визуальный беспорядок в сложных проектах.

Easily remove closed items from your view

Документация по управлению эпиками и оригинальный тикет.

Автоматизированный репозиторий X-Ray

Репозиторий X-Ray расширяет запросы на генерацию кода для GitLab Duo Code Suggestions, добавляя контекст о зависимостях проекта для повышения точности и релевантности рекомендаций по коду. Это повышает качество генерации кода. Раньше репозиторий X-Ray использовал задание CI, которое нужно было настраивать и управлять им.

Теперь, когда новый коммит пушится в основную ветку вашего проекта, репозиторий X-Ray автоматически запускает фоновое задание, которое сканирует и анализирует соответствующие файлы конфигурации в вашем репозитории.

Документация по репозиторию X-Ray и оригинальный эпик.

Мерж в запланированные дату и время

Применение некоторых мерж-реквестов бывает нужно отложить до определённого момента. Когда этот момент наступит, вам придётся найти человека с правами на мерж и надеяться, что он будет доступен и обо всём позаботится. Если это происходит в нерабочее время или сроки очень важны, вам, возможно, придётся заранее подготовить людей к выполнению этой задачи.

Теперь, когда вы создаёте или редактируете мерж-реквест, можно указать дату merge after. Если её указать, то мерж не будет выполняться, пока она не наступит. Использование этой новой фичи с нашими ранее выпущенными улучшениями для автоматического мержа даёт вам гибкость в планировании мерж-реквестов с мержем в будущем.

Большое спасибо Niklas van Schrick за потрясающий вклад!

Merge at a scheduled date and time

Документация по задержке мержа до заданной даты и оригинальный тикет.

Визуализация тестового покрытия JaCoCo стала общедоступной

Теперь можно видеть результаты тестового покрытия JaCoCo сразу при просмотре диффа вашего мерж-реквеста. Эта визуализация позволяет быстро определить, какие строки покрыты тестами, а какие ещё надо покрыть перед мержем.

Документация по тестовому покрытию с помощью JaCoCo и оригинальный тикет.

Поддержка значений в команде glab agent bootstrap

В последнем релизе мы добавили поддержку простой загрузки агентов в инструмент GitLab CLI. В GitLab 17.6 команда glab cluster agent bootstrap была усовершенствована и теперь поддерживает кастомные значения Helm. Можно использовать флаги --helm-release-values и --helm-release-values-from для настройки генерируемого ресурса HelmRelease.

Документация по настройке команды glab agent bootstrap и оригинальный тикет.

Эффективная приоритизация рисков с помощью EPSS

В GitLab 17.6 мы добавили поддержку системы оценки вероятности срабатывания уязвимостей (Exploit Prediction Scoring System, EPSS). Она присваивает каждой уязвимости оценку от 0 до 1, которая указывает на вероятность её использования в течение следующих 30 дней. Вы можете использовать EPSS для определения приоритетности результатов сканирования и оценки потенциального воздействия, которое уязвимость может оказать на ваше окружение.

Эти данные входят в общую аналитику и доступны её пользователям через GraphQL.

Документация по оценке вероятности использования уязвимостей и оригинальный эпик.

События аудита защиты от пуша секретных ключей для применённых исключений

Теперь регистрируются события аудита, когда применяется исключение для защиты от пуша секретных ключей. Это позволяет командам безопасности проводить аудит и отслеживать все случаи, когда секретный ключ, находящийся в списке исключений проекта, разрешён к пушу.

Документация по исключениям при обнаружении секретных ключей и оригинальный тикет.

Предотвращение изменения защищённых групповых веток

Когда политика подтверждения мерж-реквеста настроена на предотвращение изменения групповой ветки, политики теперь учитывают защищённые ветки, настроенные для группы. Эта настройка гарантирует, что защита веток на уровне группы не может быть снята. Защищённые ветки ограничивают определённые действия, например, удаление ветки и push --force в неё. Вы можете переопределить это поведение и объявить исключения для определённых групп верхнего уровня с помощью нового свойства approval_settings.block_group_branch_modification, чтобы позволить владельцам групп временно изменять защищённые ветки при необходимости.

Эта новая настройка переопределения для проекта при включении гарантирует, что что нельзя будет изменить настройки защищённых групповых веток для обхода требований безопасности и соответствия, что обеспечивает более стабильное применение защищённых веток.

Prevent modification of group protected branches

Документация по политикам безопасности и оригинальный эпик.

Отключение OTP-аутентификатора и устройств WebAuthn независимо друг от друга

Теперь можно отключать OTP-аутентификатор и устройства WebAuthn по отдельности или одновременно. Раньше, если вы отключали OTP-аутентификатор, устройства WebAuthn также отключались. Теперь они работают независимо друг от друга, что позволяет более детально контролировать эти методы аутентификации.

Документация по отключениям 2FA и оригинальный тикет.

Новое событие аудита, когда применяются мерж-реквесты

В этом релизе при применении мерж-реквеста запускается новый тип события аудита с названием merge_request_merged, который содержит ключевую информацию о мерж-реквесте, включая:

  • название мерж-реквеста

  • описание или краткое содержание мерж-реквеста

  • сколько подтверждений было необходимо для мержа

  • сколько подтверждений было получено

  • какие пользователи подтвердили мерж-реквест

  • подтвердили ли коммиттеры мерж-реквест

  • подтвердили ли авторы мерж-реквест

  • дата и время мержа

  • список хэшей из истории коммитов

Документация по типам событий аудита и оригинальный тикет.

Владельцы групп верхнего уровня могут создавать сервисные аккаунты

В настоящее время только администраторы могут создавать сервисные аккаунты в GitLab с самоуправлением. Теперь есть опциональная настройка, позволяющая владельцам групп верхнего уровня создавать сервисные аккаунты. Это позволяет администраторам выбирать, хотят ли они расширить круг ролей, которым разрешено создавать сервисные аккаунты, или оставить эту задачу только для администраторов.

Документация по настройкам создания сервисных аккаунтов и оригинальный тикет.

Использование API для получения информации о токенах

Администраторы могут использовать новый API для получения информации о личных токенах доступа, токенах развёртывания и токенах фидов. В отличие от других конечных точек API, которые раскрывают информацию о токенах, эта конечная точка позволяет администраторам получать информацию о токенах, не зная их типа.

Спасибо Nicholas Wittstruck и остальным участникам команды Siemens за эту фичу!

Документация по получению токенов доступа через API и оригинальный тикет.

Сообщение по email о назначении места в GitLab Duo

Все пользователи инстансов с самостоятельным управлением получат email, когда им будет назначено место в GitLab Duo. Раньше те, кому было назначено место Duo Enterprise или предоставлен доступ по групповому назначению, не получали уведомления. Вы не знали, что вам было назначено место, пока кто-то не сказал вам или вы не заметили новую фичу в пользовательском интерфейсе GitLab.

Чтобы такой email не отправлялся, администратор может выключить переключаемую настройку duo_seat_assignment_email_for_sm.

Документация по подписке на присвоение места в Duo и оригинальный тикет.