Сегодня мы с радостью объявляем о релизе GitLab 16.6 с бета-версией GitLab Duo Chat, правилами соответствия требованиям на основе подтверждения мерж-реквестов, улучшенным механизмом ветвления, улучшенным интерфейсом пользователя для управления переменными CI/CD и многими другими фичами!
Это лишь несколько из более 25 улучшений, добавленных в этом релизе. Читайте дальше, чтобы узнать обо всех основных изменениях.
Мы благодарны сообществу GitLab за 137 изменений, которые вы внесли в релиз 16.6. В GitLab каждый может сделать свой вклад, и ваш вклад в этот релиз неоценим!
Чтобы заранее узнать, что запланировано на следующий месяц, посмотрите страницу наших будущих релизов — на ней есть видео, посвящённое релизу 16.7.
Joe Snyder награждается как MVP релиза 16.6 за последовательный вклад в несколько фич GitLab. Например, недавние мерж-реквесты (в русской локализации GitLab «запрос на слияние») для фичи, позволяющей администраторам фильтровать обработчики заданий по версии.
Joe был номинирован на эту награду штатным фронтенд-инженером GitLab Miguel Rincon. Miguel оценил, насколько много Joe пришлось для этого переписать кода, необходимого из-за изменений в архитектуре GitLab, а также отметил то, как Joe «внимательно относится к производительности и пользовательскому опыту».
Pedro Pombeiro, старший бэкенд-инженер GitLab, добавил, что «Joe Snyder довёл это изменение до финиша после того, как принял его от бывшего коллеги, что потребовало самостоятельного изучения всего контекста вокруг проблемы. Также он проявил себя как очень ответственный разработчик, и очень терпеливо работал с нашим фидбеком в последующих ревью».
«С Joe было очень приятно работать», — говорит Terri Chu, штатный бэкенд-инженер в GitLab. Terri подчеркнула выдающуюся работу Joe по изменению emails_enabled
на протяжении последних двух майлстоунов (в русской локализации GitLab «этап»).
Joe Snyder — старший R&D-инженер в Kitware. Также он вносит изменения в GitLab начиная с 2021 года. Спасибо Joe за его неоценимый вклад!
(Доступно в планах SaaS: ULTIMATE) Направление: ИИ
Всем участникам процесса разработки ПО приходится тратить значительное количество времени на ознакомление с кодом, эпиками (в русской локализации GitLab «цель»), тикетами (в русской локализации GitLab «обсуждение») и длинными тредами с обсуждениями по задачам. Зачастую ваш рабочий процесс замедляется из-за рутинных задач по созданию кратких описаний, документации, тестов и кода. Наличие рядом эксперта, способного быстро ответить на ваши вопросы по DevSecOps, могло бы значительно ускорить вашу работу.
Наша новая фича GitLab Duo Chat была разработана специально для этой цели. Её способности включают:
GitLab Duo Chat доступен на GitLab.com в бета-версии. Он также интегрирован в нашу веб-среду разработки и в расширение GitLab Workflow для VS Code как экспериментальная фича.
Вы можете помочь нам улучшить эти фичи, оставляя обратную связь по использованию Duo Chat внутри продукта или в нашем тикете для фидбека.
Документация по GitLab Duo Chat и оригинальный эпик.
(Доступно в планах SaaS: PREMIUM, ULTIMATE) Стадия цикла DevOps: Govern
Когда основной email-адрес пользователя GitLab.com совпадает с существующим верифицированным доменом, этот пользователь автоматически определяется как enterprise пользователь. Это даёт владельцу группы больше возможностей для управления пользователями и больше информации об аккаунтах пользователей. После того, как пользователи становятся enterprise-пользователями, они могут изменить свой основной email-адрес только на один из email-адресов, которые принадлежат их организации согласно списку верифицированных доменов.
Документация по enterprise-пользователям и оригинальный эпик.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
В предыдущих версиях GitLab, когда вы делали форк репозитория, он всегда включал все входящие в этот репозиторий ветки. Теперь вы можете создавать форк, включающий только ветку по умолчанию, что снижает сложность проекта и требуемый объём памяти для его хранения. Создавайте форки с минимальным количеством веток, если вам не нужны изменения, над которыми в данный момент ведётся работа в других ветках.
Механизм ветвления по умолчанию по-прежнему будет включать все ветки репозитория. Новая фича показывает, какая ветка является дефолтной, чтобы вы знали, какая именно ветка будет включена в новый форк.
Документация по созданию форка репозитория и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE) Стадия цикла DevOps: Govern
Сейчас все больше внимания уделяется изменениям в коде, которые потенциально могут попасть в продакшн и сделать бизнес уязвимым к рискам, связанным с соответствием требованиям и безопасности. Правила результатов сканирований позволяют вам добиться того, чтобы было невозможно вносить изменения, не подтверждённые другими пользователями. Это делается путём добавления требования об обязательном подтверждении всех мерж-реквестов как минимум двумя пользователями.
Теперь в правилах результатов сканирования появилась новая опция: вы можете установить в качестве цели «любой мерж-реквест». Затем вы можете создать правило о необходимости подтверждений от пользователей с определёнными ролями, чтобы каждый мерж-реквест для заданных веток требовал подтверждения от минимум двух пользователей с заданной ролью (владелец, мейнтейнер (в русской локализации GitLab «сопровождающий») или разработчик).
Эта фича доступна в GitLab SaaS версии 16.6. В инстансах с самоуправлением она доступна при включении переключаемой фичи scan_result_any_merge_request
, а с версии 16.7 будет включена по умолчанию.
Документация по правилам сканирования безопасности и оригинальный эпик.
(Доступно в планах Self-Managed: ULTIMATE) Направление: Платформы
Switchboard, новый портал самообслуживания, теперь доступен всем пользователям и членам команд GitLab. Он включает в себя возможности онбординга, настройки и поддержки инстансов GitLab Dedicated.
Switchboard позволяет вам вносить изменения в настройки вашего инстанса GitLab Dedicated. Эта фича будет расширена в будущих релизах.
Документация по онбордингу в GitLab Dedicated при помощи Switchboard и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
В GitLab 16.1 мы объявили о выпуске крутой экспериментальной фичи — CI/CD компоненты. Компоненты — это строительные блоки конвейера (в русской локализации GitLab «сборочная линия»), которые можно брать из каталога CI/CD.
Сегодня мы с радостью объявляем о выпуске бета-версии компонентов CI/CD. В этом релизе мы также улучшили структуру каталогов компонентов по сравнению с экспериментальной версией. Если вы уже тестируете экспериментальную версию компонентов CI/CD, вам необходимо провести миграцию на новую структуру каталогов. Вы можете посмотреть примеры компонентов здесь. Прежняя структура считается устаревшей и будет удалена в течение следующих двух релизов.
Если вы используете компоненты CI/CD, вы также можете попробовать новую экспериментальную фичу — каталог CI/CD. Вы можете искать в глобальном каталоге CI/CD компоненты, которые другие создали и опубликовали. Кроме того, если вы создадите свои собственные компоненты, вы тоже можете опубликовать их в каталоге.
Документация по компонентам CI/CD и оригинальный эпик.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Переменные CI/CD являются фундаментальной частью GitLab CI/CD, и мы хотели бы улучшить их настройку через пользовательский интерфейс. Поэтому в этом релизе мы добавили новую панель, которая упрощает процесс добавления и редактирования переменных CI/CD.
Например, проверка маскировки раньше происходила только при попытке сохранить переменную CI/CD, и, если она не проходила, вам приходилось начинать всё с начала. Но теперь, с новой панелью, вы получаете проверку в режиме реального времени, что позволяет вносить изменения на лету, без необходимости что-либо переделывать.
Мы всегда рады получить обратную связь по этому изменению.
Документация по определению переменной CI/CD через пользовательский интерфейс и оригинальный тикет.
(Доступно в планах Self-Managed: ULTIMATE) Стадия цикла DevOps: Verify
Операторам обработчиков заданий в инстансах с самостоятельным управлением необходима возможность быстро получать информацию о текущем состоянии обработчиков и отвечать на критические вопросы об их конфигурации. Теперь, с новой панелью администратора для обработчиков заданий (бета) вся нужная информация будет у вас на виду, что позволит вам оперативно отвечать на вопросы о том, в каких обработчиках есть ошибки, какова производительность очередей обработчиков для выполнения заданий CI и какие обработчики используются наиболее активно. Пользователи Ultimate могут включить эту фичу самостоятельно, однако мы призываем их принять участие в качестве первых пользователей.
Документация по панели управления обработчиками заданий и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Раньше, когда миграция проектов и групп GitLab путём прямого переноса завершалась и некоторые элементы (например, мерж-реквесты или тикеты) не были успешно импортированы, можно было нажать кнопку Подробнее (Details) на странице со списком импортированных групп и проектов и увидеть там соответствующие ошибки.
Однако, список ошибок не поможет понять, сколько всего элементов и какие именно элементы не были импортированы. Наличие такой информации очень важно для понимания результатов импорта.
В этом релизе мы заменили кнопку Подробнее ссылкой Посмотреть ошибки. Нажав эту ссылку, вы попадёте на новую страницу со списком всех элементов, которые не удалось импортировать для данной группы или проекта. Для каждого неимпортированного элемента можно посмотреть:
Тип элемента. Например, мерж-реквест или тикет.
Какого рода ошибка произошла.
Идентификатор корреляции, который полезен для целей отладки.
URL элемента в исходном инстансе, если он доступен (элементы с iid
).
Название элемента на исходном инстансе, если оно доступно. Например, название мерж-реквеста или тикета.
Документация по просмотру результатов импорта и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Package
Реестр пакетов GitLab можно использовать для публикации и загрузки пакетов NuGet вашего проекта. По умолчанию можно публиковать одни и те же имя и версию пакета несколько раз.
Однако, возможно, вы захотите предотвратить повторную загрузку, особенно для релизов. В этом релизе GitLab расширил групповые настройки для реестра пакетов, чтобы можно было разрешать или запрещать повторную загрузку пакетов.
Можно настроить этот параметр с помощью GitLab API или из пользовательского интерфейса.
Документация по предотвращению дублирования пакетов NuGet и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
Начиная с версии GitLab 16.4 можно подключаться к кластеру Kubernetes с локального терминала, используя агент для Kubernetes и личный токен доступа. В начальной версии для настройки конфигурации локального кластера требовалось несколько команд и токен доступа с длительным сроком действия. В прошлом месяце мы работали над оптимизацией и повышением безопасности процесса установки путём расширения возможностей GitLab CLI.
Теперь GitLab CLI может показывать список подключений агента, доступных из каталога оформления проекта GitLab или указанного проекта. Настроить соединение через выбранный агент можно с помощью специальной команды. Когда kubectl
или любому другому инструменту требуется аутентификация в кластере, GitLab CLI генерирует временный токен с ограниченным доступом для залогиненного пользователя.
Документация по доступу к кластеру через API Kubernetes и оригинальный эпик.
(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Secure
Сканирование зависимостей и сканирование лицензий теперь поддерживают SBT-проекты, использующие Java 21.
Документация по поддерживаемым языкам и пакетам при сканировании зависимостей и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Secure
В рамках релиза 16.6 мы добавили следующие активные проверки, включённые по умолчанию, для сканирований DAST, выполняемых в браузере:
Документация по сканированию DAST и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE) Стадия цикла DevOps: Govern
Это одна из нескольких новых настроек, добавляемых в правила результатов сканирования, чтобы помочь в обеспечении соблюдения правил безопасности. Эта настройка ограничивает возможность применения настроек уровня проекта для обхода правил.
Для каждого существующего или нового правила для результатов сканирования можно включить фичу «Предотвращать push and force push» (Prevent pushing and force pushing
), которая будет действовать для веток, определённых в рамках правила, чтобы пользователи не могли обойти обычный путь обработки мерж-реквестов и внести изменения непосредственно в ветку.
Доступно в SaaS в версии 16.6. Доступно для планов Self-managed с помощью переключаемой фичи scan_result_policies_block_force_push
и будет включено по умолчанию в версии 16.7.
Документация по настройке правил безопасности и оригинальный эпик.
(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern
Благодаря нашей интеграции с внешними инструментами логирования и агрегирования данных теперь можно выбрать AWS S3 в качестве места назначения для событий аудита для групп верхнего уровня. Эта фича предоставляет соответствующую информацию для более простой и беспроблемной интеграции.
Раньше вам приходилось использовать пользовательские HTTP-заголовки, чтобы попытаться создать запрос, который подходил бы для AWS S3. Этот метод часто приводил к ошибкам, а устранять возникающие неполадки было трудно.
Документация по настройке места назначения для трансляции событий аудита и оригинальный эпик.
(Доступно в планах SaaS: PREMIUM, ULTIMATE; Self-Managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Govern
Администраторы GitLab и владельцы групп могут выбрать, хотят ли они установить дату истечения срока действия для сервисных аккаунтов. Ранее срок действия токенов таких аккаунтов должен был истечь в течение года в соответствии с ограничениями по истечению срока действия токенов личного, проектного и группового доступа. Это позволяет администраторам и владельцам групп находить баланс между безопасностью и простотой использования, который наилучшим образом соответствует их целям.
Документация по настройке токенов доступа для сервисных аккаунтов и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
В релизе 16.0 появился новый интерфейс навигации, который стал стандартным для всех пользователей 2 июня 2023 года. В следующих майлстоунах было внесено множество улучшений, основанных на многочисленных отзывах пользователей. Возможность вернуться к старой навигации теперь удалена. В навигации запланированы более интересные изменения, но на данный момент все пользователи имеют единый опыт навигации.
Напомним, что в новой навигации GitLab можно:
Закрепить пункты меню, чтобы наиболее часто используемые элементы проекта или группы были в верхней части
Скрывать и «подсматривать» навигацию для увеличения ширины экрана
Легко искать пункты меню с помощью сочетаний клавиш
Продолжать использовать все темы, которые были в предыдущей навигации
Использовать более организованные разделы, соответствующие рабочему процессу DevOps
Документация по левой боковой панели и оригинальный эпик.
(Доступно в планах SaaS: PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Теперь команды могут легко создавать, тестировать и развёртывать приложения для экосистемы Apple на macOS 14 и Xcode 15.
Обработчики заданий SaaS на macOS повышают скорость работы команд разработки при сборке и развёртывании приложений для macOS в безопасном и работающем по запросу окружении для сборки, интегрированном с GitLab CI/CD.
Чтобы попробовать эту фичу, используйте macos-14-xcode-15
в качестве образа в файле .gitlab-ci.yml.
Документация по поддерживаемым обработчикам заданий GitLab SaaS для macOS и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Package
Реестр пакетов GitLab теперь поддерживает загрузку на сервер пакетов Maven с базовой HTTP-аутентификацией. Ранее базовую HTTP-аутентификацию можно было использовать только для скачивания пакетов Maven. Такое несоответствие затрудняло разработчикам настройку и поддержку аутентификации для своего проекта.
Публикация артефактов с помощью sbt
не поддерживается, но в тикете 408479 предлагается добавить эту фичу.
Документация по базовой HTTP-аутентификации и оригинальный тикет.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
В GitLab 16.6 можно использовать интеграцию пользовательского интерфейса кластера на странице окружения для определения статуса запущенных приложений, не покидая GitLab. Ранее статус обновлялся однократным запросом при загрузке пользовательского интерфейса, что делало отслеживание хода развёртывания неудобным. В текущей версии GitLab базовое соединение обновлено для использования API для отслеживания Kubernetes для получения статусов согласования Flux и статусов Pod, что обеспечивает обновление состояния кластера в пользовательском интерфейсе GitLab практически в реальном времени.
Документация о панели информации Kubernetes и оригинальный тикет.
(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Secure
Результаты сканирования контейнера могут включать в себя те, которые поставщик уже проверил и решил не исправлять. Чтобы сосредоточиться на результатах, с которыми можно что-то сделать, остальные можно исключить. Параметры настройки приведены в документации GitLab.
Документация по настройке сканирования контейнеров и оригинальный эпик.
(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Secure
При экспорте информации из отчёта об уязвимостях теперь включается информация о векторах CVSS. Эти дополнительные данные помогают вам анализировать и сортировать уязвимости вне GitLab.
Документация по настройке отчётов об уязвимостях и оригинальный эпик.
(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern
Раньше отчёт об уязвимостях позволял фильтровать по статическому списку типов инструментов, поддерживаемых GitLab, за которым следовал динамический список пользовательских сканеров. В этом релизе теперь можно выбирать тип инструмента из списка, сгруппированного по анализаторам.
Документация по фильтрации инструментов для списка уязвимостей и оригинальный эпик.
(Доступно в планах SaaS: ULTIMATE; Self-Managed: ULTIMATE) Стадия цикла DevOps: Govern
Ранее внешние проверки статуса мерж-реквестов продолжали опрашивать внешний URL до тех пор, пока не получали либо успешный, либо неуспешный ответ. Это могло приводить к тому, что некоторые проверки состояния как бы зависали в состоянии отсутствия реакции.
Теперь в систему встроен двухминутный таймаут, чтобы можно было вручную повторить проверку состояния через 2 минуты, если не получено никакого ответа от внешней системы.
Документация по настройкам для проверки статуса мерж-реквестов и оригинальный эпик.
(Доступно в планах Self-Managed: FREE, PREMIUM, ULTIMATE) Направление: Системы
Когда включён бесшумный режим GitLab, блокируется весь основной исходящий трафик, например электронные письма с уведомлениями, интеграции, веб-хуки и зеркалирование из инстанса GitLab. Это позволяет вам проводить тестирование на сайте GitLab без генерации трафика для пользователей и других интеграций. Можно использовать этот режим для тестирования восстановленной резервной копии или продвигаемого сайта Geo DR, не затрагивая при этом ваш основной сайт GitLab или ваших конечных пользователей.
Документация по «беззвучному режиму» GitLab и оригинальный эпик.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Направление: Хранение данных
Раньше пользователи видели в результатах поиска проектов множество заархивированных проектов. Это было неудобно, особенно когда большинство первых результатов были из архивов. Теперь мы по умолчанию отфильтровываем заархивированные проекты, но пользователи могут выбрать Включить архивированные (Include archived), чтобы просмотреть все проекты.
Документация по включению архивных проектов в результаты поиска и оригинальный эпик.
(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; Self-Managed: FREE, PREMIUM, ULTIMATE) Направление: Хранение данных
Раньше названия приватных групп были видны всем пользователям при доступе к вкладке Группы (Groups) на странице участников проекта или группы. В целях повышения безопасности мы теперь скрываем имя и источник частных групп от пользователей, которые не являются членами общей группы, общего проекта или приглашённой группы. Вместо этого эта информация будет отображаться как Приватная (Private).
Документация по настройке видимости группы в другой группе и оригинальный тикет.
Полный текст релиза и инструкции по обновлению и установке вы можете найти в оригинальном англоязычном посте GitLab 16.6 released with GitLab Duo Chat available in Beta.
Над переводом с английского работали @maryartkey, @ainoneko и @rishavant.