Сегодня мы с радостью объявляем о релизе GitLab 16.3 с метриками производительности команды на панели аналитики цикла разработки, более мощными обработчиками заданий GitLab SaaS для Linux, дополнительными фильтрами для правил результатов сканирования, подключениями к рабочему пространству по SSH, визуализацией статуса синхронизации Flux и многими другими фичами!
Это лишь несколько из более 100 улучшений, добавленных в этом релизе. Читайте дальше, чтобы узнать обо всех основных изменениях.
Мы благодарны сообществу GitLab за 237 изменений, которые вы внесли в релиз 16.3! В GitLab каждый может сделать свой вклад, и ваш вклад в этот релиз неоценим!
Чтобы заранее узнать, что запланировано на следующий месяц, посмотрите страницу наших будущих релизов — на ней есть видео, посвящённое релизу 16.4.
За этот месяц Thomas сделал 15 мерж-реквестов для агента GitLab для Helm-чартов Kubernetes!
Thomas сделал чарты более продвинутыми с точки зрения безопасности и наблюдаемости, упростил поиск ошибок с помощью agentk и улучшил конвейер CI/CD для проверки на критические изменения.
Как инженер по безопасности Thomas был рад поработать вместе с командой разработки над созданием более безопасного дефолтного развёртывания агента GitLab. Thomas выразил благодарность за все отзывы и фидбек, которые члены команды предоставляли ему.
Спасибо Thomas за этот ценный вклад! ????
Мы также хотели бы поблагодарить Shane Maglangit и Batuhan Apaydın за их потрясающую работу.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Plan
В аналитике цикла разработки появились новые метрики: Пропускная способность мерж-реквеста (Merge request (MR) throughput) и Общее число закрытых тикетов (Total closed issues, производительность команды). Пропускная способность мерж-реквеста – это число мерж-реквестов (в русской локализации GitLab «запросы на слияние»), смерженных за месяц, а Общее число закрытых тикетов – это число событий рабочего процесса, закрытых к определённому моменту времени.
Эти метрики помогут вам определять месяцы с высокой или низкой продуктивностью и эффективностью мерж-реквестов и процессов ревью кода. Также вы сможете определять, ускоряется или замедляется ваш цикл разработки.
С течением времени метрики накапливают информацию из мерж-реквестов и тикетов. Команды разработки смогут использовать эти данные, чтобы определять, когда цикл разработки ускоряется, а когда требуются улучшения. Кроме того, это позволит делать более точные оценки или прогнозы о том, какой объём работы они смогут выполнить.
Документация по аналитике цикла разработки и оригинальный тикет.
(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Рабочие пространства позволяют создавать воспроизводимые облачные окружения для выполнения заданий. Так как эта фича была добавлена в GitLab 16.0, использовать рабочее пространство можно было только через браузерную среду разработки, запущенную прямо в окружении. Однако браузерная среда разработки не всегда удобна.
В GitLab 16.3 вы сможете безопасно подключиться к рабочему пространству с вашего рабочего стола по SSH и пользоваться своими локальными инструментами и расширениями. Первая итерация этой фичи поддерживает подключения по SSH прямо в VS Code или из командной строки с редакторами типа Vim или Emacs. Поддержка других редакторов, таких как среды разработки от JetBrains и JupyterLab планируется в будущих релизах.
Документация по подключению к рабочим пространствам по SSH и оригинальный эпик.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
В предыдущих релизах вы могли использовать kubectl
или другой сторонний инструмент для проверки статуса синхронизации ваших развёртываний Flux. Начиная с GitLab 16.3, вы сможете проверять ваши развёртывания через графический интерфейс страницы окружений.
Развёртывания используют ресурсы Flux Kustomization
и HelmRelease
, чтобы проверять статус определённого окружения, для чего требуется, чтобы пространство имён было настроено под окружение. По умолчанию GitLab ищет имя слага проекта среди ресурсов Kustomization
и HelmRelease
. Вы также можете настроить имя, которое GitLab будет искать в настройках окружения.
Документация по статусу синхронизации Flux и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Govern
Иногда бывает непросто определить, какие результаты сканирования безопасности и соответствия требованиям могут оказаться важными. Детальные фильтры для правил результатов сканирования помогут вам отсеять лишнее и определить, какие уязвимости или нарушения требуют больше внимания. Следующие новые фильтры и обновления старых фильтров упростят ваши рабочие процессы:
new
по сравнению с previously existing
уязвимостями. Новый статус new_needs_triage
позволяет вам отфильтровывать только новые уязвимости, с которыми ещё предстоит разобраться.Документация по правилам результатов сканирования и оригинальный эпик.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
Теперь вы сможете просматривать результаты сканирования безопасности прямо в Visual Studio Code (VS Code) так же, как в мерж-реквесте.
У вас уже была возможность следить за статусом вашего конвейера (в русской локализации GitLab «сборочная линия») CI/CD и логами заданий CI/CD на панели Workflow. Теперь, когда вы создаёте мерж-реквест для своей ветки, вы также сможете увидеть список новых результатов сканирования безопасности, которые ранее не были обнаружены на ветке по умолчанию.
Эта фича — часть рабочего процесса GitLab для VS Code. Результаты сканирования безопасности загружаются через API, так что эта фича доступна разработчикам, использующим GitLab.com или инстансы с самостоятельным управлением с версией GitLab 16.1 или выше.
Документация по расширениям VS Code и оригинальный эпик.
needs
с параллельными заданиями(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Ключевое слово needs
используется для определения отношения зависимостей между заданиями. Вы можете использовать его для настройки заданий так, чтобы они зависели от определённых предыдущих заданий вместо упорядочивания на определённой стадии. Когда задание завершится, следующее сможет начаться немедленно, что ускорит выполнение конвейера.
Ранее было невозможно использовать ключевое слово needs
, чтобы настроить матрицу параллельных заданий как зависимую, однако в этом релизе мы добавили такую возможность. Теперь вы можете определить гибкое отношение с матрицей параллельных заданий, что позволит ускорить процесс выполнения конвейеров ещё больше. Чем раньше запустятся ваши задания, тем быстрее завершится конвейер!
Документация по ключевому слову needs
для матрицы параллельных заданий и оригинальный тикет.
(Доступно в планах SaaS: PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Ранее мы улучшили все наши обработчики заданий SaaS для Linux, а теперь мы представляем новые обработчики для Linux размеров xlarge
и 2xlarge
. Они имеют 16 и 32 vCPU соответственно, полностью интегрированы в GitLab CI/CD и позволяют вам собирать и тестировать свои приложения ещё быстрее, чем раньше.
Мы намерены предоставить самую высокую скорость сборки CI/CD и будем рады увидеть, как команды ещё быстрее разрабатывают софт и собирают обратную связь.
Документация по обработчикам заданий для Linux и оригинальный тикет.
(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Секретные ключи, которые хранятся в Azure Key Vault, теперь можно легко получать и использовать в заданиях CI/CD. Наша новая интеграция упрощает процесс взаимодействия с Azure Key Vault через GitLab CI/CD, что позволяет упростить ваши процессы сборки и развёртывания.
Документация по Azure Key Vault и оригинальный тикет.
(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Изменения в настройках приложений в инстансе, проекте или группе теперь заносятся в журнал аудита вместе с пользователем, который сделал изменение. Это улучшает процесс аудита настроек приложений для всех инстансов, как SaaS, так и с самостоятельным управлением.
Документация по аудиту настроек приложений и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Если вы уже пользуетесь новой навигацией GitLab, то теперь у вас есть возможность выбрать одну из пяти цветовых тем интерфейса, каждая из которых имеет светлый и тёмный вариант. Используйте темы, чтобы быстро определять, в каком окружении вы находитесь, или просто выберите ваш любимый цвет!
Документация по цветовым темам и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Информация о ревьюерах важна с точки зрения аудита и соответствия требованиям. Однако ранее инструмент импорта BitBucket Server определял ревьюеров пулл-реквестов как участников, а не как ревьюеров.
В GitLab 16.3 мы добавили поддержку корректного импорта ревьюеров из BitBucket. В GitLab они становятся ревьюерами мерж-реквестов.
Документация по импортеру BitBucket Server и оригинальный тикет.
(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Теперь вы увидите в графическом интерфейсе, если в вашем файле CODEOWNERS
есть ошибки синтаксиса или форматирования. Возможность задавать владельцев кода позволяет пользователям настраивать множественные расположения файлов, секции и правила. С этой новой валидацией синтаксиса ошибки в вашем файле CODEOWNERS
будут отображаться в интерфейсе GitLab, что позволит легко замечать и исправлять их. Отображаться будут следующие типы ошибок:
Ранее файл CODEOWNERS
не проверял записываемую в него информацию, что могло приводить к созданию:
Документация по обработке ошибок в файле CODEOWNERS
и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
В этом релизе появится полная поддержка Kubernetes версии 1.27, выпущенной в апреле 2023 года. Если вы пользуетесь Kubernetes, вы сможете обновить ваши кластеры до последней версии и пользоваться всеми новыми фичами, которые в неё входят.
Узнайте больше о нашей политике поддержки Kubernetes и других поддерживаемых версиях.
Документация о поддерживаемых версиях Kubernetes и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
Если вы использовали переключаемые фичи в предыдущих версиях GitLab, вы могли заметить, что длинные имена переключаемых фич автоматически обрезались. Из-за этого могло быть сложно быстро отличить фичи с похожими именами.
В GitLab 16.3 имя переключаемой фичи будет отображаться полностью, а слишком длинные имена будут переноситься на несколько строк.
Документация по переключаемым фичам и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
Сканирование зависимостей и лицензий GitLab теперь поддерживает анализ блокировочных файлов Maven для Java версии 21.
Документация по получению информации о зависимостях из блокировочных файлов и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
Теперь вы можете воспользоваться тегами для указания обработчиков заданий, которые необходимо использовать для сканирования DAST по требованию. До версии 16.3 можно было настраивать это сканирование с помощью приватных обработчиков через конфигурационные файлы CI. Настраивать с помощью пользовательского интерфейса может быть легче и эффективнее.
Документация по сканированию DAST по требованию и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Govern
Чтобы способствовать развитию фич, связанных с соблюдением требований, за рамки одних лишь отчётов в полноценное управление требованиями, мы переименовали раздел отчётов по соответствию требованиям в GitLab, чтобы отразить, что область его применения становится больше.
Начиная с GitLab 16.3 отчёты о соответствии называются центром соответствия (Compliance center).
Документация по центру соответствия и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Govern
Правила результатов сканирования — это тип правил безопасности, используемый для оценки и блокирования мерж-реквестов при нарушении определённых условий. Утверждающие лица могут просмотреть и одобрить изменение или совместно со своими командами разработчиков решить любые проблемы, например, устранить критические уязвимости в системе безопасности.
Раньше для выявления новых нарушений правил мы сравнивали уязвимости в последних исходных и целевых ветках. Однако при этом могли не учитываться уязвимости, обнаруженные в результате сканирования, выполняемого из различных источников. Для повышения точности мы теперь сравниваем последние завершённые конвейеры для каждого источника конвейера (за исключением вложенных конвейеров). Это обеспечит более полную оценку и уменьшит количество случаев, когда согласование потребуется неожиданно.
Документация по настройке правил безопасности и оригинальный эпик.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Govern
Ранее направления потоков событий аудита определялись по URL-адресу назначения. Это могло привести к путанице при настройке нескольких потоков для одной группы или инстанса, поскольку приходилось раскрывать назначение в пользовательском интерфейсе, чтобы увидеть, какие фильтры и пользовательские заголовки были применены.
С GitLab 16.3 можно присваивать имена направлениям событий аудита, чтобы легче различать их, когда направлений несколько.
Документация по событиям аудита и оригинальный тикет.
(Доступно в планах self-managed: PREMIUM, ULTIMATE) Направление: Системы
Geo теперь может обнаруживать и исправлять повреждения данных в групповых вики при хранении и при передаче. Если вы используете Geo как часть стратегии аварийного восстановления, то это поможет защитить данные от потери в случае аварийного переключения.
Документация по администрированию Geo и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Направление: Хранение данных
Теперь вы можете решать, включать ли архивные проекты в результаты поиска. По умолчанию архивные проекты исключаются. Эта фича доступна при поиске проектов в GitLab. Поддержка других областей глобального поиска появится в будущих релизах.
Документация по включению архивных проектов в результаты поиска и оригинальный тикет.
(Доступно в планах self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
До сих пор лимиты для миграции — как путём прямой передачи, так и импортом файлов экспорта — были жёсткими.
В этом релизе некоторые из лимитов можно определять в настройках приложения, чтобы администраторы GitLab могли самостоятельно регулировать их в соответствии со своими потребностями:
Для замены переключаемой фичи validate_import_decompressed_archive_size
мы добавили новую настройку приложения — максимальный размер распакованного файла для импортированных архивов. Этот лимит ранее был равен 10 ГБ. На GitLab.com мы установили его в 25 ГБ.
Используя эти новые настройки приложения, администраторы — как инстансов GitLab с самостоятельным управлением, так и GitLab.com — смогут изменять эти лимиты так, как будет нужно.
Документация по настройке лимитов при импорте, оригинальный тикет про перенос лимитов из кода в настройки и тикет про добавление настройки распакованных архивов.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
До сих пор при миграции групп и проектов напрямую действовал 90-минутный таймаут экспорта. Этот лимит фактически исключал возможность миграции крупных проектов, поскольку их экспорт в 90 минут не укладывается.
Верхний предел общего времени ожидания миграции составляет 4 часа, так что отдельный 90-минутный тайм-аут для экспорта по сути был не нужен. В данном релизе этот лимит убран, что позволит мигрировать более крупные проекты.
Документация по лимитам при импорте и оригинальный тикет.
(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
GitLab SAML Group Sync теперь поддерживает сообщения о превышении лимита от службы Azure AD (теперь известной как Entra ID), что позволяет пользователю иметь более 150 связанных с ним групп. Предыдущий максимум был как раз 150 групп. Дополнительные сведения можно найти в разделе Превышение лимита групп Microsoft.
Документация по интеграции Microsoft Azure AD и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Имена конвейеров, заданные с помощью ключевого слова workflow:name
, теперь доступны через предопределённую переменную $CI_PIPELINE_NAME
.
Документация по предопределённым переменным и оригинальный тикет.
(Доступно в плане SaaS ULTIMATE) Стадия цикла DevOps: Secure
Мы интегрировали обнаружение секретных ключей с Postman, чтобы лучше защитить клиентов, использующих Postman в своих проектах GitLab.
Система обнаружения ключей ищет ключи API Postman. Если ключ раскрыт в публичном проекте на GitLab.com, GitLab отправляет сообщение об утечке ключа в Postman, Postman проверяет ключ, а затем уведомляет владельца ключа.
Эта интеграция включена по умолчанию для проектов, в которых активирован поиск ключей на GitLab.com. Сканирование с обнаружением секретных ключей доступно для всех планов GitLab, но автоматическое реагирование на утечку пока доступно только для планов Ultimate.
В посте в блоге Postman можно подробнее узнать об этой интеграции.
Документация по автоматическому ответу на слитые секретные ключи и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
Расширенное отслеживание уязвимостей в GitLab SAST делает обработку уязвимостей более эффективной, отслеживая результаты по мере изменения кода. Мы выпустили два улучшения в GitLab 16.3:
Это всё основано на предыдущих расширениях и улучшениях из релиза GitLab 16.2. Мы планируем дальнейшие улучшения, включая расширение на большее количество языков, улучшение обработки большего количества языковых конструкций и улучшение отслеживания для Python и Ruby в эпике 5144.
Эти изменения включены в обновлённые версии анализаторов SAST для GitLab. Результаты поиска уязвимостей вашего проекта обновляются новыми сигнатурами отслеживания после сканирования проекта обновлёнными анализаторами. Всё обновится автоматически, если только вы не закрепили определённую версию анализаторов SAST.
Документация по расширенному отслеживанию уязвимостей в SAST(https://docs.gitlab.com/ee/user/application_security/sast/#advanced-vulnerability-tracking) и оригинальный эпик.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure
Статическое сканирование безопасности GitLab включает множество анализаторов, которые команда статического анализа GitLab активно поддерживает и обновляет. Мы опубликовали следующие обновления в релизе 16.3:
toolExecutionNotifications
. Посмотрите подробности в списке изменений.Если вы используете шаблон статического сканирования безопасности GitLab (SAST.gitlab-ci.yml
) и версию GitLab 16.0 или выше, то вы автоматически получите эти обновления. Чтобы оставить определённую версию любого анализатора и предотвратить автоматические обновления, вы можете закрепить его версию.
Список прошлых изменений можно посмотреть в обновлениях за предыдущий месяц.
Документация по анализаторам SAST и оригинальный тикет.
(Доступно в плане SaaS ULTIMATE) Стадия цикла DevOps: Govern
GitLab выявляет уязвимости, однако иногда может быть неясно, с чего начать с ними работать. Требуется время, чтобы исследовать и обобщить информацию, содержащуюся в записи об уязвимости. Более того, может быть сложно понять, как исправить данную уязвимость. В бета-релизе этой фичи можно получить генерируемые искусственным интеллектом объяснение и рекомендации по устранению уязвимости.
Документация по фиче объяснения уязвимостей и оригинальный эпик.
(Доступно в плане self-managed ULTIMATE) Стадия цикла DevOps: Govern
В GitLab 16.2 мы ввели трансляцию событий аудита на уровне инстанса. В GitLab 16.3 теперь можно применять фильтры по типам событий аудита на уровне инстанса. С помощью этих фильтров, можно выбирать подмножество событий аудита, которое отправляется в каждое место потоковой передачи, фокусируясь только на релевантных для вас событиях.
Документация по фильтрации событий аудита и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Govern
Для поддержки управления фоновыми задачами и выполнения правил безопасности для всех созданных или обновлённых ссылок на проекты правил будут созданы боты безопасности Security bots. Они упростят настройку и применение правил для сотрудников служб безопасности и обеспечения соответствия требованиям, в частности, избавят их от необходимости иметь доступ Developer
в проектах разработки. Кроме того, боты правил безопасности будут являться авторами конвейера и позволят пользователям проекта, в котором внедряются эти правила, понимать, что конвейеры выполняются от имени правил безопасности.
Если проект правил безопасности связан с группой или подгруппой, то в каждом проекте группы или подгруппы будет создан бот правил безопасности. При создании ссылки на группу, подгруппу или отдельный проект, бот безопасности будет создан для данного проекта или же для всех проектов в группе/подгруппе. На уже существующие связи с проектами правил безопасности это никак не повлияет, но пользователи смогут повторно установить связь, чтобы воспользоваться этой фичей. В GitLab 16.4 мы планируем включить ботов безопасности во всех проектах, размещённых на GitLab.com, у которых есть ссылки на проекты правил безопасности.
Документация по настройке правил выполнения сканирования и оригинальный эпик.
Полный текст релиза и инструкции по обновлению и установке вы можете найти в оригинальном англоязычном посте GitLab 16.3 released with new velocity metrics in the Value Streams Dashboard.
Над переводом с английского работали @maryartkey, @ainoneko, @cattidourden и @rishavant.