Вышел релиз GitLab 13.3 с полным покрытием фаззинг-тестированием и матрицей сборки для CI/CD +4


Картинка для привлечения внимания


DevSecOps помогает командам обнаруживать и устранять неисправности и уязвимости на ранних стадиях разработки ПО. В GitLab 13.3 создавать безопасное программное обеспечение стало проще благодаря тестированию фаззингом, интегрированному в ваш рабочий процесс разработки. Фаззинг-тестирование, направленное на полное покрытие кода, вместе с запуском DAST (динамического тестирования безопасности приложений) по требованию помогут обнаруживать реальные уязвимости программного обеспечения быстрее и эффективнее. Кроме того, с новой матрицей сборки для CI/CD станет проще выпускать релизы более часто. Наконец, панель состояния подов повысит эффективность работы специалистов по эксплуатации за счёт сокращения переключений контекста: все данные о состоянии подов Kubernetes теперь находятся в одной панели. Мы надеемся, что вам понравятся основные фичи релиза, а также ещё 69 новых фич, включённых в этот релиз.


Быстрое исправление: раннее обнаружение и предотвращение недочётов и уязвимостей


С помощью фаззинг-тестирования, нацеленного на полное покрытие, находить и устранять уязвимости в C, C++ и Go стало значительно проще и эффективнее. С релизом 13.3 все наши анализаторы SAST (статического тестирования безопасности приложений) стали доступны для всех, и настроить их теперь проще, чем когда-либо. Наконец, стал удобнее запуск DAST из графического интерфейса. Что ещё более важно, специалисты по безопасности смогут быстрее справляться с уязвимостями, используя новые данные по уязвимостям, включённые в вывод DAST.


Сократите время цикла и выпускайте релизы чаще


Построение сложных рабочих процессов стало простым благодаря новой матрице сборки: задайте ключи и значения один раз, выпускайте релизы и развёртывайте многократно. Команды смогут увеличить скорость работы, измерив пропускную способность мерж-реквестов (в русской локализации GitLab «запросы на слияние»), которая теперь доступна в панели аналитики мерж-реквестов. Кроме того, авторы мерж-реквестов смогут быстрее интегрировать код, убедившись, что их запрос на ревью кода конкретными людьми был выполнен. Отследить выполнение обязанностей различными ролями в мерж-реквестах теперь можно в панели соответствия. Мейнтейнеры (в русской локализации GitLab «сопровождающие») также могут задать настройки объединения коммитов. Наконец, развёртывание может быть более адресным и контролируемым благодаря стратегиям переключаемых фич (feature flags).


Сделайте ваши команды поставки более продуктивными и эффективными


Разработка программного обеспечения в основном связана со сборкой и распространением пакетов. Чтобы сделать эти процессы проще и удобнее, мы переработали весь GUI реестра пакетов и сделали реестр доступным для всех, перенеся его в план Core. Кроме того, публиковать NuGet-пакеты автоматизированным способом ещё никогда не было так просто. Вашим командам больше не придётся беспокоиться о «здоровье» своих систем после развёртывания. Все соответствующие действия теперь могут быть предприняты на основе информации с панели состояния подов](#panel-sostoyaniya-podov-kubernetes).


И это ещё не всё


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


Посмотрите ещё несколько классных фич:



Если вы хотите заранее узнать, что вас ждёт в следующем релизе, посмотрите наше видео по релизу 13.4.


GitLab MVP badge


MVP этого месяца — Gilang Gumilar


Gilang Gumilar в этом релизе исправил ошибку в работе фильтра с релизами, что упростило поиск тикетов и мерж-реквестов.


Этот фантастический вклад действительно помогает пользователям GitLab. Спасибо, Gilang!


Основные фичи релиза GitLab 13.3


Тестирование фаззингом для Go и C/C++ с полным покрытием кода


(ULTIMATE, GOLD) Стадия цикла DevOps: Secure


Теперь вы можете запускать фаззинг-тесты в приложениях на Go и C/C++. Это отличный способ обнаруживать баги и проблемы с безопасностью, которые могут пропустить другие сканеры безопасности и традиционный контроль качества. Фаззинг-тестирование с полным покрытием использует контекст вашего приложения, чтобы случайным образом генерировать входные данные и обнаруживать падение приложения или другие неполадки, чтобы вы могли их исправить до того, как они повлияют на пользователей на продакшене.


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


Нас всех ждёт ещё немало нового на пути фаззинг-тестирования. Узнайте все подробности на специальной странице Направление развития фаззинг-тестирования. Мы будем рады, если вы расскажете нам, что вы об этом думаете!



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


Создайте матрицу заданий с помощью простого синтаксиса


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify


Конвейеры parent/child в GitLab позволяют вам написать собственный код для генерации YAML всего конвейера (в русской локализации GitLab «сборочная линия»). Это мощный способ генерации специфических моделей поведения, включая генерацию заданий во время выполнения. Для более простых сценариев, в которых нужно просто создать несколько одинаковых заданий для определённого набора случаев, такая функциональность может быть не нужна. В этом релизе вы можете использовать новое ключевое слово matrix, которое работает в связке с parallel, чтобы управлять созданием нескольких заданий с разными значениями переменных.


Например, вы можете настроить конвейер так, чтобы он автоматически создавал задания для 4 различных архитектур, каждая из которых имеет таргеты debug и release для 3 различных версий, и всё это задаётся единой конфигурацией в формате матрицы. Итого будут созданы 24 уникальных задания (4x2x3) для каждой возможной комбинации.


Create a matrix of jobs using a simple syntax


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


Сканирования DAST по требованию


(ULTIMATE, GOLD) Стадия цикла DevOps: Secure


Динамическое тестирование безопасности приложений в GitLab всегда было нацелено на интеграцию DAST в конвейер DevOps и предоставление разработчикам возможности как можно раньше сканировать свои приложения для ревью, запущенные веб-сайты или API на наличие уязвимостей. Но бывают случаи, в которых необходимо запустить DAST-сканирование на уже развёрнутом приложении, когда не было внесено никаких изменений в код и не был создан мерж-реквест. Эти сканирования могут понадобиться для аудита или проверки соответствия требованиям, для отладки и воспроизведения найденной проблемы, или для команд, которые сами не занимаются кодом, например, для аналитиков безопасности.


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


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


On-demand DAST scans


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


Анализаторы безопасности SAST доступны для всех


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Secure


Мы хотим помочь разработчикам писать качественный код и меньше беспокоиться о распространённых ошибках безопасности. Статическое тестирование безопасности приложений (SAST) помогает предотвратить уязвимости, позволяя разработчикам легко выявлять общие проблемы безопасности по мере выполнения кода и устранять их заблаговременно. В рамках наших обязательств по управлению GitLab мы сделали все 15 анализаторов SAST с открытым исходным кодом доступными на каждом плане GitLab. Это позволит всем пользователям GitLab, работающим на любом из 18 поддерживаемых языков и фреймворков, использовать SAST GitLab в своих проектах.


Начать работу теперь очень просто: используйте нашу новую упрощённую схему настройки SAST, подключайте Auto DevOps или добавляйте шаблон конфигурации SAST к вашему файлу gitlab-ci.yml. Пользователи планов ниже Ultimate могут работать со сгенерированным SAST отчётом об уязвимостях, загрузив артефакт задания SAST. Мы также обновили документ с подробной информацией о распределении всех наших SAST-фич по планам.


SAST security analyzers available for all


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


Лёгкая настройка SAST


(ULTIMATE, GOLD) Стадия цикла DevOps: Secure


Статическое тестирование безопасности приложений (SAST) в GitLab теперь предлагает новую упрощённую схему настройки. Включить SAST теперь можно всего двумя щелчками мыши. Мы считаем, что безопасность — это командная работа, и такая схема настройки облегчает не-CI специалистам работу с GitLab SAST. Этот инструмент помогает пользователю создать мерж-реквест для запуска сканирования SAST, используя при этом лучшие методы настройки, такие как использование управляемого GitLab шаблона SAST.gitlab-ci.yml и корректное переопределение настроек по умолчанию.


GitLab SAST охватывает 18 языков на 14 анализаторах, так что существует множество вариантов настройки SAST, и разобраться в них может быть непросто. Новая схема настройки SAST поможет легко начать работу с SAST, а также закладывает основу для внедрения новых опций конфигурации, таких как пользовательские наборы правил. Мы также намерены перенести эту схему настройки на другие наши инструменты сканирования безопасности.


Guided SAST configuration experience


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


Панель состояния подов Kubernetes


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


Для понимания «здоровья» вашей системы очень важно видеть все метрики, в том числе кластерные, в одном месте. В GitLab 13.3 вы можете просматривать состояние ваших подов Kubernetes на новой панели метрик состояния подов, работающей из коробки и для кластеров с управляемым GitLab Prometheus, и для кластеров с уже существующим экземпляром Prometheus, если вы подключите его к вашему инстансу GitLab. Выберите нужный под в выпадающем списке и посмотрите ключевые метрики, например использование процессора, памяти или сети.



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


Подтверждения мерж-реквестов отображают, кто участвовал в ревью


(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


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


Виджет мерж-реквеста теперь показывает колонку Комментировали (Commented by) чтобы вы могли узнать, кто оставлял обратную связь через комментарии. Это позволит авторам и проверяющим легко определить, с кем именно они будут взаимодействовать.


Merge Request Approvals show who participated in the review


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


Стратегии переключаемых фич теперь показывается в списке фич


(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Release


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


Display strategy information on feature flags list view


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


Управление интеграциями проектов на уровне инстанса для внешних сервисов


(CORE, STARTER, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create


Теперь администраторы пользовательских инстансов GitLab могут интегрировать сторонние сервисы со всеми проектами инстанса из одного интерфейса.


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


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


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


Instance-level project integration management for external services


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


Создавайте IT-инциденты и управляйте ими в GitLab


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


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


С релизом 13.3 мы рады представить специальный список для упорядочивания инцидентов и управления ими в разделе Операции (Operations) в GitLab, чтобы помочь вам сократить время решения проблем. В этом списке содержится краткая информация об инцидентах и ключевые детали: когда он был создан, на кого назначен, а также опубликован ли он на странице статуса. Кроме того, вы можете посмотреть инциденты по статусам (открытые, закрытые и все), что упрощает определение активных инцидентов.


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


Create and manage IT Incidents in GitLab


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


Реестр пакетов теперь доступен в Core


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Package


Полтора года назад мы расширили поддержку Java-проектов и разработчиков, встроив поддержку Maven непосредственно в GitLab. Нашей целью было предоставлять стандартизированный способ распространения пакетов и контроля их версий между проектами. С тех пор мы вложились в дальнейшее развитие команды разработчиков пакетов, работая с нашими пользователями и сообществом, чтобы лучше понять, как эти пакеты используются. Мы также добавили поддержку для разработчиков Node, C#/.NET, C/C++, Python, PHP и Go. Ваше активное внедрение, использование и вклад в эти фичи помогли расширить наше представление о них до более комплексного решения, интегрированного в единое приложение, которое поддерживает управление пакетами для всех распространённых языков и бинарных форматов. Эта цель не была бы достигнута без активной поддержки со стороны сообщества GitLab.


В рамках наших обязательств по управлению GitLab мы рады объявить, что базовая функциональность каждого формата менеджера пакетов теперь доступна в GitLab Core. Это означает, что если вы используете модули npm, Maven, NuGet, Conan, PyPI, Composer или Go, вы сможете:


  • Использовать GitLab как публичный или приватный реестр пакетов
  • Авторизоваться с помощью ваших учётных данных GitLab, токена личного доступа или токена задания
  • Публиковать пакеты в GitLab
  • Устанавливать пакеты из GitLab
  • Искать пакеты, размещённые в GitLab
  • Получить доступ к простому в использовании пользовательскому интерфейсу, который отображает детали пакета и его метаданные и позволяет загружать любые нужные файлы
  • Убедиться, что ваши вклады доступны для всех пользователей GitLab

Мы с нетерпением ждём ваших отзывов и будем дальше улучшать эти фичи вместе с нашими пользователями.



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


Официальное расширение GitLab Workflow для Visual Studio Code


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


Более двух лет назад, Fatih Acet создал расширение для интеграции GitLab с разработкой в Visual Studio Code. Fatih и более 25 соавторов продолжали улучшать это расширение и добавлять новые возможности, и на данный момент количество установок расширения уже перевалило за 160 тысяч. Fatih перевёл GitLab в мейнтейнеры, и мы будем продолжать улучшать и поддерживать это расширение.


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


GitLab Workflow extension for Visual Studio Code now official


Документация по расширению для Visual Studio Code и оригинальный тикет.


Запуск конвейеров по мерж-реквестам из форков в основном проекте


(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release


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



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


Создавайте задания ECS локальным JSON


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release


До этого релиза шаблон развёртывания на ECS от GitLab обновлял существующие определения задач, которые уже заданы в вашей прикреплённой учётной записи AWS. Также часто используют обновление определений задач в рамках работы с GitLab. Теперь же вы можете обновить JSON-определение задачи в вашем локальном репозитории и отправить его на сервер. Задача будет создана в учётной записи AWS должным образом, что сделает ваш стандартный процесс разработки более эффективным.



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


Токены доступа к проекту


(CORE, STARTER, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage


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


Project access tokens


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


Визуализация конвейеров со структурой направленного ациклического графа


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify


Вы могли заметить на ваших конвейерах новую вкладку DAG (Directed Acyclic Graph), на которой отрисовывается направленный ациклический граф зависимостей для конвейеров, использующих ключевое слово needs. Граф облегчает восприятие сложных сетей зависимостей в вашей конфигурации CI/CD. В этом релизе мы считаем эту фичу официально выпущенной и убираем приставку «бета». Ваш фидбэк, как и всегда, важен для нас, так что расскажите нам, что вы думаете.


Visualization of Directed Acyclic Graph (DAG) pipelines


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


Редактирование списков пользователей для переключаемых фич через пользовательский интерфейс


(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Release


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


Edit Feature Flag User Lists from the UI


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


Комментарии к нескольким строкам в мерж-реквестах


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


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


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


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


Multi-line comments for merge requests


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


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


Больше информации на панели соответствия требованиям


(ULTIMATE, GOLD) Стадия цикла DevOps: Manage


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


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


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


Аналитика мерж-реквестов


(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Manage


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


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


Merge Request Analytics


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


Ограничение форков проектов вне группы


(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Manage


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


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


Отображение одного файла при ревью мерж-реквеста


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Plan


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


Чтобы решить эту проблему, GitLab 13.3 представляет возможность просматривать файлы по одному во вкладке Изменения (Changes) в мерж-реквесте. Это обеспечивает более чистое рабочее пространство и улучшает фокус проверяющего на одном файле. Внизу страницы вы можете переключаться между изменёнными файлами мерж-реквеста при помощи кнопок Prev и Next. Эту фичу можно включить в настройках пользователя.


Спасибо пользователю GitLab Osher за вклад в первую итерацию этой фичи!


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


Параллельное выполнение бэкапов репозиториев Git


(CORE, STARTER, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create


Бэкапы защищают от потери данных и потому должны запускаться регулярно, а также до выпуска в эксплуатацию и перед обновлением. Поэтому в GitLab есть скрипт gitlab-backup, который позволяет системным администраторам делать бэкап всего сразу. Но с ростом числа и размера репозиториев процесс создания бэкапа через скрипт становится слишком медленным.


Одна из основных причин того, что скрипт работает так медленно, — это выполнение бэкапа одного репозитория за раз. При этом используются не все возможности процессора и памяти, особенно при наличии нескольких нод Gitaly. Добавление параллельности позволяет выполнять бэкап нескольких репозиториев одновременно, что значительно сокращает время бэкапа.


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


Перестановка дизайнов перетаскиванием


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


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


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


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


Drag and drop to reorder designs


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


Поиск ссылок с Code Intelligence


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


Ревью кода — это важный процесс, который требует понимания предлагаемых изменений и окружающего их кода, чтобы убедиться в том, что он был написан с учётом требований. Нативный Code Intelligence в GitLab помогает разработчикам перемещаться по коду и видеть изменения, добавленные в мерж-реквестах. Это важно для понимания существующего кода, а также проверки того, что новый код добавляется как надо.


В GitLab 13.3 появилась возможность отображать ссылки для проектов с помощью нативного Code Intelligence. Щелчок по объекту в коде отобразит его определение и покажет все ссылки на него на второй вкладке с указанием полного пути и номера строки, в которой используется этот объект.


Будущие итерации будут включать поддержку API и отображение кода для ссылок во всплывающем окне. Следите за обновлениями в эпике Code Intelligence.


Find references added to Code Intelligence


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


Транзакционная запись для кластера Gitaly (бета-версия)


(CORE, STARTER, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create


Кластер Gitaly позволяет репозиториям Git реплицироваться на несколько «тёплых» нодах Gitaly. Это повышает отказоустойчивость за счёт устранения единичных точек отказа. Однако операции записи в настоящее время реплицируются асинхронно, а это означает, что на сервере GitLab изначально есть только одна копия изменения.


Начиная с релиза 13.2 для кластеров Gitaly можно включить транзакционные операции записи в репозитории Git. Когда эта фича включена и обновление отправлено в GitLab, операция записи проксируется на вторичные ноды Gitaly. Операция записи будет координироваться между нодами с использованием протокола двухфазного коммита, чтобы они согласовали новое состояние репозитория. Транзакционная запись в настоящее время доступна только для операций, выполняемых через интерфейсы HTTP и SSH Git, и не будет работать через интерфейсы GitLab, такие как Web IDE.


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


Транзакционные операции для кластера Gitaly


(CORE, STARTER, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create


Кластер Gitaly позволяет репозиториям Git реплицироваться на несколько «тёплых» нод Gitaly. Это повышает отказоустойчивость за счёт устранения единичных точек отказа. Однако операции записи в настоящее время реплицируются асинхронно, а это означает, что на сервере GitLab есть только одна копия изменения с момента принятия записи до завершения репликации.


Операции транзакционной записи в репозитории Git в GitLab 13.3 транслируют изменения на все ноды Gitaly. Только ноды Gitaly, которые работают в согласии с основной нодой, сохраняют изменения на диске. «Несогласные» ноды синхронизируются с помощью асинхронной репликации. Это означает, что обычно изменение запишется во все ноды Gitaly, когда запись будет принята. Однако это не всегда так, потому что все вторичные ноды могут проголосовать против основной. Чтобы предотвратить такую ситуацию, скоро можно будет включить голосование на основе кворума.


Примечание. Кластеры Gitaly можно создавать в планах GitLab Core и выше. Однако техподдержка доступна только пользователям с планами GitLab Premium и Ultimate.


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


Логирование групповых переменных CI/CD


(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify


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


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


Предупреждения линтера CI


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify


Линтер CI теперь помимо ошибок может выдавать предупреждения при проверке вашего файла .gitlab-ci.yml. Это позволит нам давать больше рекомендаций при оценке ваших конвейеров, что позволит избегать больше типов ошибок, так как они будут отслеживаться на более ранних этапах.


В первой итерации мы добавили предупреждение при использовании правила when:always без workflow:rules. Этот сценарий приводит к дублированию конвейеров при создании мерж-реквеста и часто был причиной неразберихи. Помимо отображения этого нового предупреждения на странице линтера, оно также будет отображаться на странице конвейеров и на странице запуска конвейера, что поможет вам улучшить ваши конфигурации CI.


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


Бесконечный срок жизни для артефактов


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify


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


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


Улучшенный шаблон тестирования Fail Fast


(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Verify


Мы представили шаблон тестирования Fail Fast в GitLab 13.1 и собрали по нему фидбэк. В результате мы выяснили, что, если образ по умолчанию переопределялся в файле .gitlab-ci.yml, то шаблон не работал. С тех пор мы улучшили работу шаблона, чтобы вы могли быть уверены, что он работает «из коробки» даже если вы используете другой образ.


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


Просмотр и управление групповыми обработчиками заданий


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify


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


View and manage group Runners


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


Публикация пакетов NuGet при помощи токена задания CI


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Package


Вы можете использовать репозиторий NuGet для сборки, публикации и обмена пакетами .NET прямо в GitLab, рядом с вашим исходным кодом и конвейерами CI/CD. Однако раньше вы не могли проходить аутентификацию в репозитории с помощью предварительно определённой переменной окружения CI_JOB_TOKEN. В результате вам приходилось использовать свои личные учётные данные для внесения обновлений в репозиторий NuGet или, возможно, вообще не использовать этот репозиторий.


Теперь публиковать и устанавливать пакеты NuGet при помощи заранее определённой переменной CI_JOB_TOKEN стало проще, чем когда-либо.


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


Данные о найденных DAST уязвимостях


(ULTIMATE, GOLD) Стадия цикла DevOps: Secure


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


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


Шаг подтверждения перед генерацией нового идентификатора инстанса для переключаемых фич


(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Release


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


Confirmation dialog before regenerating Feature Flag instance ID


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


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


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release


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


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


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


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release


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


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


Добавление перечней задач к оповещениям GitLab


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


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


Add runbooks to GitLab Alerts


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


Отображение данных на панели метрик в виде шкалы


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


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


Display metrics dashboard data in gauge format


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


Ссылка на логи из оповещений управляемого GitLab Prometheus


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


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


Link alerts from GitLab-managed Prometheus to logs


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


Сортировка списка инцидентов по статусу


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


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


Organize Incidents by status in list view


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


Элементы управления для правил сетевой безопасности контейнеров


(ULTIMATE, GOLD) Стадия цикла DevOps: Defend


Элементы управления правилами сетевой безопасности контейнеров позволяют легко найти документацию по установке и удалению сетевых правил для кластера Kubernetes. Вы можете получить доступ к этим элементам управления, а также посмотреть на индикатор текущего состояния правил, в новом разделе GitLab Container Network Policies на странице Operations > Kubernetes > Applications.


Container Network Policies Controls


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


Более быстрый рендеринг расширенного контента


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Доступность


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


В GitLab 13.2 мы оптимизировали способ создания этого контента, сделав его удобнее в использовании и снизив нагрузку на сервер. Журнал изменений GitLab, Markdown-файл на 14 000 строк, теперь готов к просмотру за 20 секунд вместо 35 — улучшение на 40%!


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


В Slack и подобных инструментах отображаются превью ссылок на результат поиска


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Доступность


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


Links to search results now unfurl in tools like Slack


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


PostgreSQL 12 теперь доступен


(CORE, STARTER, PREMIUM, ULTIMATE) Доступность


PostgreSQL 12 теперь поддерживается в качестве опциональной версии PostgreSQL для пользовательских инстансов GitLab. PostgreSQL 12 включает ряд улучшений производительности, например повышенную производительность запросов для больших наборов данных. Полный список улучшений смотрите на странице релиза PostgreSQL. Скоро появится поддержка использования PostgreSQL 12 с кластером PostgreSQL и сайтами Geo. Дополнительные сведения о поддержке PostgreSQL 12 в GitLab смотрите в эпике по PostgreSQL 12. PostgreSQL 12 планируется как версия PostgreSQL по умолчанию в GitLab 13.6, но от этой версии всё равно можно будет отказаться.


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


Создание нескольких настраиваемых аналитик цикла разработки


(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Manage


В этом релизе мы улучшаем настраиваемую аналитику цикла разработки (Value Stream Analytics, VSA), позволяя командам создавать несколько настраиваемых аналитик. Возможность настройки в VSA позволяет командам получать подробное представление о деятельности группы, и теперь вы можете создавать и повторно использовать свои настроенные этапы без необходимости создавать их каждый раз заново.


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


Create multiple custom value streams


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


Возможность отключения email-уведомлений о входе из нового места


(CORE, STARTER, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage


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


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


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


(SILVER, GOLD) Стадия цикла DevOps: Manage


Чтобы упростить адаптацию новых членов группы, GitLab 13.3 предоставляет возможность владельцам групп устанавливать любую роль в качестве «роли по умолчанию» для пользователей, добавленных в группу с помощью SSO или SCIM. Ранее все члены группы, добавленные в группу таким образом, по умолчанию получали роль «Гость».


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


Переключение конфиденциальности для эпиков


(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Plan


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


Toggle epic confidentiality


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


Отображение не-Markdown содержимого в визуальном редакторе статических сайтов


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


Генераторы статических сайтов часто полагаются на Markdown для организации контента, и наш редактор статических сайтов предлагает интуитивно понятный интерфейс визуального редактирования Markdown для этих документов. Однако их содержимое не всегда написано в Markdown. Многие генераторы поддерживают дополнительную разметку, встроенную в Markdown, чтобы расширить возможности автора. Также допустимо писать HTML вместе с Markdown-контентом.


Визуальный режим (WYSIWYG) нашего редактора статических сайтов теперь отделяет не-Markdown контент в нередактируемые блоки, отображаемые вместе с вашим контентом. Это предотвращает непредвиденные ошибки форматирования, которые могли возникнуть при попытке преобразовать содержимое, отличное от Markdown, в HTML. Не-Markdown контент по-прежнему доступен для редактирования в режиме исходного кода, а будущие итерации позволят безопасно редактировать этот тип контента и в режиме WYSIWYG.


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


Улучшенный веб-редактор


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


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


Enhanced Web Editor


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


Распределённые операции чтения в кластере Gitaly


(CORE, STARTER, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create


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


Кластер Gitaly позволяет реплицировать репозитории Git на несколько «тёплых» нод Gitaly и может использоваться для масштабирования производительности путём распределения операций чтения между актуальными репликами. Начиная с GitLab 13.3 при использовании кластера Gitaly операции чтения будут автоматически распределяться между актуальными репликами. Это лучше использует доступные ресурсы процессора и памяти и лучше масштабируется по сравнению с сегментированием. Прочтите нашу документацию по выбору между кластерами и шардами, чтобы узнать больше о преимуществах кластера Gitaly.


Примечание. Кластеры Gitaly можно создавать в планах GitLab Core и выше. Однако техподдержка доступна только пользователям с планами GitLab Premium и Ultimate.


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


Настройки объединения коммитов


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


Объединение (squashing) коммитов в Git — отличный способ собрать несколько коммитов в один. Оно хорошо подходит для группировки нескольких коммитов, которые сами по себе могут иметь небольшую историческую ценность, в один большой коммит перед отправкой на сервер. Пуш одного большого коммита позволяет получить более содержательное описание коммита, а также упрощает получение «зелёного» конвейера CI.


В GitLab 13.3 мы предоставляем варианты для настройки объединения коммитов по умолчанию, позволяя мейнтейнерам проекта настраивать этот параметр в соответствии с их рабочим процессом. Поскольку изменение конфигурации объединения коммитов может привести к нежелательному поведению, конфигурация не была изменена для новых или существующих проектов. Получив 314 голосов «за», это изменение стало одним из самых востребованных сообществом улучшений, и мы надеемся, что оно позволит большему количеству пользователей использовать эту классную фичу.


Squash Commits Options


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


Статус мерж-реквестов WIP переименован в Draft


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create


Статус «в работе» (WIP, work in progress) для мерж-реквестов даёт проверяющим чёткий сигнал, что он ещё не готов к мержу.


Чтобы использовать более широкий и понятный термин, статус "WIP" для мерж-реквестов был переименован в "Draft" («Черновик»). Новый термин ясно указывает на то, что рассматриваемый мерж-реквест не готов к ревью, а также не делает никаких предположений о прогрессе, достигнутом в этом направлении. Кроме того, он снижает когнитивную нагрузку для новых пользователей, не говорящих по-английски и всех, кто не знаком с аббревиатурой "WIP".


Статус мерж-реквестов WIP теперь считается устаревшим в пользу статуса Draft, однако оба термина будут поддерживаться до следующего мажорного релиза GitLab (14.0), после чего статус WIP будет удалён.


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


Улучшенный линтинг для файлов .gitlab-ci.yml


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify


При ревью определений CI теперь вы можете использовать наш линтер CI, чтобы глубже погрузиться в конвейерную обработку и проверить правильность вашего файла .gitlab-ci.yml. Линтер CI проверку не только синтаксиса, он также проверяет другие виды логических ошибок и недопустимых конфигураций, моделируя конвейер, как если бы вы работали в master, но ничего не выполняя фактически. Это поможет вам быстрее создать правильно настроенный конвейер и избежать ситуаций, когда конвейер прошёл через линтер, но всё равно оказался нерабочим.


Документация по валидации файла .gitlab-ci.yml и оригинальный тикет.


В правилах rules:if для CI/CD поддерживаются логические выражения со скобками


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify


Если вы используете ключевое слово rules с выражениями if, то теперь эта схема стала ещё более мощной, получив поддержку выражений в скобках, вычисляемых обработчиком конвейера. Вы можете использовать более сложные и эффективные выражения И (&&) / ИЛИ (||), что сделает ваши правила для конвейера более логичными, мощными и более простыми в управлении.


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


Улучшенное представление метаданных пакета и активности по нему


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Package


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


Основной раздел пользовательского интерфейса сведений о пакете теперь включает:


  • Новую ленту «История» (“History”), в которой приводятся привязанные ко времени метаданные, связанные с пакетом.
  • Команды для установки и инструкции по настройке реестра.
  • Способ добавления дополнительных метаданных (“Additional Metadata”) для сохранения любых метаданных, не привязанных ко времени. Этот дополнительный раздел метаданных позволяет включать множество деталей, относящихся к пакетам разных форматов.

Это изменение — явный признак того, что возможности реестра пакетов с GitLab развиваются. Неприглядная старая таблица, которую мы удалили, была перенесена из исходного репозитория Maven. Тогда мы предоставляли только базовые метаданные, такие как имя (name) и дата создания (created_date). Теперь же вы можете увидеть, как пакет был собран, и проследить, к какому конвейеру и какому коммиту он относится. Мы с нетерпением ожидаем дальнейшего развития этого продукта. Используйте эту фичу и дайте нам знать, что вы думаете!



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


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


(ULTIMATE, GOLD) Стадия цикла DevOps: Secure


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


Для сканеров, работающих с исходным кодом, вы теперь можете увидеть номер строки в уязвимом файле. Мы также указываем тип сканера (SAST, DAST и т.д.) и имя поставщика. Ещё вы можете фильтровать по типу и поставщику, это позволяет легко и быстро сосредоточиться на определённом подмножестве уязвимостей, даже если вы интегрировали сторонние сканеры.


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


Additional details on Project Security Dashboard


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


Связывайте существующие тикеты с уязвимостью


(ULTIMATE, GOLD) Стадия цикла DevOps: Secure


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


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


Link existing Issues to a Vulnerability


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


Переименованы стратегии переключаемых фич


(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Release


В попытке упростить стратегии переключаемых фич и предотвратить путаницу мы переименовали их. «Процент внедрения (зарегистрированных пользователей)», теперь называется «Процент пользователей» (Percent of users), а «Список» (List) мы изменили на «Список пользователей» (User List).


Rename Feature Flag user strategies


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


Приостановка развёртывания через пользовательский интерфейс


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release


Эта фича основывается на возможности установки временного окна запрещения (заморозки) развёртывания через API, представленной в 13.0. Теперь и в пользовательском интерфейсе GitLab вы можете легко установить период времени, когда развёртывание не должно происходить. Вам больше не обязательно использовать API, чтобы запланировать приостановку развёртывания или использовать .gitlab-ci.yml для этого. Вместо этого вы можете легко перейти к настройкам в пользовательском интерфейсе, чтобы создать повторяющуюся или однократную приостановку развёртывания.


Set a deploy freeze in the UI


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


Используйте API для настройки исходной конфигурации домена GitLab Pages


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release


Теперь вы можете настроить GitLab Pages для получения конфигурации проекта через внутренний API GitLab и воспользоваться преимуществами API для более быстрой загрузки демона GitLab Pages.


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


Создание тикетов GitLab из инцидентов PagerDuty


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


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


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


Отображение метрик от Prometheus с внешним управлением в оповещениях


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


Когда вы получаете оповещения, GitLab помогает вам сократить время расследования за счёт включения в оповещение соответствующего графика с показателями, помогающего вам визуализировать, что пошло не так. В GitLab 13.3 мы вводим включение метрик из инстанса Prometheus с внешним управлением в оповещения.


Display metrics in alerts from externally-managed Prometheus


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


Создание инцидентов вручную из списка инцидентов


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


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


Manually create Incidents from the Incidents List


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


Более простое и оптимизированное управление панелью метрик


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor


Ранее действия с метриками, например создание, редактирование, дублирование и добавление, были разбросаны по панели метрик. Релиз 13.3 собрал эти пункты в единое меню действий, упрощая доступ к функциям управления панелью.



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


Более быстрая загрузка контента с большим количеством ссылок


(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Доступность


Одно из преимуществ GitLab как единого приложения для DevOps состоит в том, что связать контент вместе очень легко. Мы поддерживаем ссылки на метки, майлстоуны (в русской локализации GitLab «этапы»), сниппеты, коммиты, мерж-реквесты, тикеты и эпики во всех частях GitLab. Нередко в одном фрагменте контента содержатся ссылки на десятки или даже сотни других элементов. Однако эта связанность может вызвать задержки в отображении контента для пользователей, поскольку серверу GitLab необходимо найти каждую ссылку, чтобы предоставить дополнительный контекст.


В GitLab 13.3 мы значительно улучшили производительность поиска ссылок. Пример контента с 165 ссылками был обработан на 75% быстрее при вдвое меньшем объёме памяти, что означает значительно более быструю загрузку для пользователя при меньшей нагрузке на сервер GitLab.


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


Geo быстрее и проще в обслуживании


(PREMIUM, ULTIMATE) Доступность


Geo реплицирует данные с первичной ноды Geo на одну или несколько вторичных нод. Крайне важно как можно быстрее передать на вторичные ноды данные, чтобы обеспечить такую ситуацию, в которой вторичные ноды не слишком отстают.


После ряда итераций (51 мерж-реквест!), Geo больше не требует сторонних обёрток данных для PostgreSQL, что избавляет от некоторых таймаутов базы данных и повышает общую производительность операций заполнения данными. Кроме того, это изменение сокращает лишний этап при настройке Geo и упрощает обслуживание развёртывания Geo. Чтобы дать представление о снижении сложности: это изменение привело к удалению 3823 строк кода.


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


Улучшенный поиск кода с помощью расширенного поиска


(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Доступность


Текущий анализатор кода для интеграции Elasticsearch не учитывает все случаи кода. Например, если у вас есть файл с a.b.c=one_two_three и вы ищете one_two_three, то ранее вы бы не получили этот файл в результатах поиска. В GitLab 13.3 мы улучшили анализатор кода в Elasticsearch, и теперь он более точен при поиске, содержащем специальные символы.


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




Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 13.3 released with coverage-guided fuzz testing and a build matrix for CI/CD.


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




К сожалению, не доступен сервер mySQL