Вышел релиз GitLab 16.5 с отчётами о соответствии требованиям и правилами задания целевой ветки мерж-реквестов

Мы с радостью объявляем о релизе GitLab 16.5 с отчётами о соблюдении стандартов соответствия требованиям, правилами задания целевой ветки мерж-реквеста, возможностью завершать обсуждения по тикету, ускорением цепочек мерж-реквестов для полулинейной истории коммитов и многими другими фичами!

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

Мы благодарны сообществу GitLab за 170 изменений, которые вы внесли в релиз 16.5! В GitLab каждый может сделать свой вклад, и ваш вклад в этот релиз неоценим!

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

GitLab MVP badge

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

Мы отметили, что Thorben активно ведёт работу над своим мерж-реквестом, который добавляет пользовательские настройки для отображения времени в 24-часовом формате. Эта фича запланирована на релиз 16.6 и даст пользователям выбор между 12-часовым и 24-часовым форматами времени.

Magdalena Frankiewicz, продакт-менеджер в GitLab, номинировала Thorben и отметила, что тикет по этой фиче был открыт на протяжении 7 лет и получил более 190 голосов. Peter Leitzen, штатный инженер по бэкенду в GitLab, также рассказал о работе Thorben по рефакторингу бэкенд-кода, связанного с форматом времени.

Thorben — технический директор в LUUCY, 3D веб-платформе, объединяющей геоданные в высоком разрешении. Также он был техническим директором в cividi, консалтинговой компании по геопространственным данным, связанным с городским планированием.

Спасибо Thorben и всему сообществу GitLab за ваши вклады! ????

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

Отчёт о соблюдении стандартов соответствия требованиям

(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern

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

  • Правило подтверждения, требующее наличия в мерж-реквесте (в русской локализации GitLab «запрос на слияние») как минимум двух утверждающих лиц;
  • Правило подтверждения, запрещающее автору мерж-реквеста делать мерж;
  • Правило подтверждения, запрещающее делать мерж участникам мерж-реквеста, сделавшим в него вклад.

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

Compliance standards adherence report

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

Правила задания целевых веток для мерж-реквестов

(Доступно в планах SaaS: PREMIUM, ULTIMATE; Self-Managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

Некоторые проекты используют для разработки несколько долгосрочных веток, например “develop” и “qa”. В этих проектах можно оставить ветку main в качестве ветки по умолчанию, поскольку она представляет состояние проекта на стадии продакшена. Однако процесс разработки предполагает, что мерж-реквесты будут нацелены на ветку “develop” или “qa”. Правила целевой ветки помогают гарантировать, что мерж-реквесты нацелены на подходящую ветку для вашего проекта и рабочего процесса разработки.

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

Create rules to set target branches for merge requests

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

Возможность завершать обсуждения по тикетам

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan

Тикеты (в русской локализации GitLab «обсуждения»), работа над которыми велась на протяжении долгого времени, может быть неудобно просматривать и отслеживать. Для упрощения работы с такими тикетами мы добавили возможность отмечать обсуждения по ним как завершённые, когда тема дискуссии исчерпана.

Resolve an issue thread

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

Ускорение цепочек мерж-реквестов для полулинейной истории коммитов

(Доступно в планах SaaS: PREMIUM, ULTIMATE; Self-Managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify

В GitLab 16.4 мы добавили ускорение цепочек мерж-реквестов. В продолжение этой фичи мы хотим убедиться, что они будут работать для всех методов мержа. Теперь, если вы хотите обеспечить сохранение полулинейной истории коммитов, вы можете использовать полулинейные цепочки мерж-реквестов с ускоренной перемоткой вперёд.

Fast-forward merge trains with semi-linear history

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

Другие улучшения в GitLab 16.5

Изменение контекста теперь проще

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

Чтобы попробовать это улучшение, выберите кнопку Search or go to… либо введите на клавиатуре / или s.

Changing context just got easier

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

Веб-хук, срабатывающий при удалении релиза

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

Вы можете использовать события релиза, чтобы мониторить объекты релиза и реагировать на изменения. Раньше веб-хук активировался только при создании или обновлении релиза. Однако в строго регулируемых отраслях удаление релизов тоже является важнейшим событием, которое необходимо отслеживать, чтобы вовремя принимать меры. В GitLab 16.5 веб-хук также срабатывает при удалении релиза.

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

Экспорт отдельных страниц вики в PDF

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan

Начиная с GitLab 16.5, вы можете экспортировать отдельные вики-страницы в файлы PDF. Теперь обмениваться знаниями в команде стало ещё проще. Экспорт вики в PDF можно использовать в различных случаях. Например, можно отправить копию технической документации, которая хранится в вики, или поделиться информацией в вики со статусом проекта. Теперь нет необходимости использовать альтернативные инструменты для преобразования файлов Markdown в PDF, что в некоторых организациях запрещено. Спасибо JiHu за эту фичу!

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

Быстрое действие для назначения родителя для задач, целей и ключевых результатов

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan

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

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

Подтверждения развёртываний и изменения в правилах подтверждения в события аудита

(Доступно в планах SaaS: PREMIUM, ULTIMATE; Self-Managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy

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

Теперь в GitLab добавлен новый набор событий аудита для подтверждения развёртываний и изменения правил подтверждения в защищённых окружениях.

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

Обновления анализатора DAST

(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Secure

В рамках релиза 16.5 мы добавили следующие активные проверки, включённые по умолчанию, для сканирований DAST, выполняемых в браузере:

  • Проверка 78.1 заменяет проверку ZAP 90020 и определяет инъекции команд, которые можно использовать путём выполнения произвольных команд ОС на целевом сервере приложений. Это критическая уязвимость, которая может привести к серьёзному поражению системы.
  • Проверка 611.1 заменяет проверку ZAP 90023 и идентифицирует внешнюю инъекцию XML-сущностей (XXE), которую можно использовать, чтобы заставить XML-парсер приложения включать внешние ресурсы.
  • Проверка 94.4 заменяет проверку ZAP 90019 и определяет инъекции кода на стороне сервера (NodeJS), что можно использовать путём внедрения произвольного кода JavaScript для выполнения на сервере.
  • Проверка 113.1 заменяет проверку ZAP 40003 и определяет неправильные нейтрализации CRLF-последовательностей в заголовках HTTP (разделение ответа HTTP), которые можно использовать путём вставки символов возврата каретки/перевода строки (CRLF) для внедрения произвольных данных в HTTP-ответы.

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

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

(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern

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

В GitLab 16.5 можно использовать чекбокс Активен (Active) в пользовательском интерфейсе GitLab, чтобы включать и выключать каждый заголовок по отдельности. Это можно использовать, чтобы:

  • Тестировать разные заголовки;
  • Временно отключать заголовок;
  • Переключаться между двумя версиями одного и того же заголовка.

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

Экспорт отчёта о нарушениях соответствия требованиям

(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern

Отчёт о нарушениях соответствия требованиям может содержать большое количество информации. Раньше эту информацию можно было просмотреть только в пользовательском интерфейсе GitLab. Это было приемлемо для отдельных тикетов, но могло вызвать затруднения, если, например, требовалось:

  • Создать артефакт текущего статуса соответствия для релиза. Например, доказать аудитору, что нарушений не было.
  • Агрегировать полученные данные с другим набором данных или обработать их в другом инструменте.

В GitLab 16.5 теперь можно экспортировать в формате CSV список элементов, включённых в отчёт о нарушениях соответствия требованиям.

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

Новые настраиваемые разрешения

(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern

В платформу настраиваемых ролей добавили права на управление участниками групп и токенами доступа к проектам. Эти права можно добавить к любой базовой роли для создания пользовательской роли. Если вы создаёте пользовательские роли с правами, необходимыми для выполнения определённого набора задач, то теперь вам не нужно назначать пользователям высокопривилегированные роли, такие как мейнтейнер (в русской локализации GitLab «сопровождающий») и владелец.

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

Кнопки для массовой повторной синхронизации и повторной проверки для всех компонентов в Geo

(Доступно в планах Self-Managed: PREMIUM, ULTIMATE) Направление: Системы

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

Документация по администрированию Geo(https://docs.gitlab.com/ee/administration/geo/) и оригинальный эпик.

Поиск эпиков с помощью расширенного поиска

(Доступно в планах SaaS: PREMIUM, ULTIMATE; Self-Managed: PREMIUM, ULTIMATE) Направление: Хранение данных

Популярность эпиков (в русской локализации GitLab «цели») в GitLab продолжает расти. Ранее поиск эпиков был несколько сложнее, чем поиск других типов контента. Начиная с этого релиза, при использовании расширенного поиска вы сможете искать и просматривать результаты для эпиков.

Find epics with advanced search

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

Информация о рецензенте мерж-реквеста на панели разработки Jira

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

С помощью приложения GitLab для Jira Cloud можно подключить GitLab к Jira Cloud для синхронизации информации о разработке в режиме реального времени. Просмотреть эту информацию можно на панели разработки Jira. Раньше, когда для мерж-реквеста назначался рецензент, информация о нём не отображалась на панели разработки Jira. В этом релизе имя рецензента, email-адрес и статус утверждения будут отображаться на панели разработки Jira при использовании приложения GitLab для Jira.

Документация по панели разработки Jira(https://docs.gitlab.com/ee/integration/jira/development_panel.html#information-displayed-in-the-development-panel) и оригинальный тикет.

Добавление дочернего элемента с помощью быстрого действия

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan

Теперь можно добавить дочерний элемент для задачи, цели или ключевого результата с помощью быстрого действия /add_child.

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

Виджет связанных элементов в задачах, целях и ключевых результатах

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan

В этом релизе вы сможете связывать задачи и цели и ключевые результаты (OKRs, objectives and key results). Доступно три вида связей: «связанные» (“related”), «заблокированные» (“blocked by”) и «блокирующие» (“blocking”) — чтобы обеспечить прослеживаемость между зависимыми и связанными рабочими элементами.

При миграции эпиков и тикетов на платформу элементов рабочего процесса все эти типы можно связывать между собой.

Linked items widget in tasks, objectives, and key results

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

Ограничение скорости конечной точки API заданий стало настраиваемым

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify

Недавно было добавлено ограничение скорости для конечной точки API project/:id/jobs, которое по умолчанию составляет 600 запросов в минуту на одного пользователя. В качестве следующей итерации мы делаем это ограничение настраиваемым, что позволит администраторам инстансов устанавливать ограничение, наиболее соответствующее их требованиям.

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

Новый дизайн списка тикетов службы поддержки

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Monitor

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

  • Те же параметры сортировки и упорядочивания, что и в списке тикетов;
  • Те же фильтры, включая оператор ИЛИ и фильтрацию по ID тикета.

Documentation Issue

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

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

(Доступно в планах Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Govern

Теперь можно использовать новую конечную точку REST API по адресу user/personal_access_tokens для создания нового личного токена доступа для текущего аутентифицированного пользователя. В целях безопасности область действия этого токена ограничена k8s_proxy, поэтому с этим токеном можно выполнять вызовы API Kubernetes только с помощью агента для Kubernetes. Раньше только администраторы инстансов могли создавать личные токены доступа через API.

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

Настраиваемые правила блокировки пользователей

(Доступно в планах Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Govern

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

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

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

Трансляция событий аудита на уровне инстанса в логи Google Cloud

(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern

Раньше для логирования в Google Cloud можно было настроить трансляцию событий аудита только для групп верхнего уровня. В GitLab 16.5 мы добавили поддержку такого логирования и на уровне инстанса.

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

Использование API для удаления информации SAML и SCIM

(Доступно в планах SaaS: PREMIUM, ULTIMATE) Стадия цикла DevOps: Govern

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

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

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

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

(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern

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

Vulnerability report grouping by status and severity

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

Резервное копирование и восстановление данных репозитория в облаке

(Доступно в планах Self-Managed: FREE, PREMIUM, ULTIMATE) Направление: Системы

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

Благодаря этому обновлению резервные копии репозитория сохраняются в выбранном вами месте хранения объектов (Amazon S3, облачное хранилище Google, облачное хранилище данных Azure, MinIO и т. д.). Это изменение устраняет необходимость вручную перемещать данные из вашего инстанса Gitaly.

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


Полный текст релиза и инструкции по обновлению и установке вы можете найти в оригинальном англоязычном посте GitLab 16.5 released with compliance standards adherence reports and merge request target branch rules.

Над переводом с английского работали @maryartkey, @ainoneko, @cattidourden и @rishavant.