GitLab 16.9

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

Мы с радостью объявляем о релизе GitLab 16.9 с GitLab Duo Chat, доступном для Premium пользователей SaaS и в инстансах с самостоятельным управлением! Также появилась возможность запрашивать изменения в мерж-реквесте без блокировки мержа, улучшенный интерфейс страницы переменных CI/CD, новые настройки для автоматической отмены конвейеров и многие другие фичи!

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

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

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

GitLab MVP badge

Награда MVP в этом месяце присуждается совместно Ravi Dharmawan и Ian Walker

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

Ravi был номинирован Rohan Shah, менеджером по работе с клиентами в GitLab, который заметил, как хорошо Ravi удалось улучшить работу правил обнаружения уязвимостей, используемых в GitLab SAST. Dinesh Bolkensteyn, старший исследователь уязвимостей в GitLab, добавил, что «фидбек от Ravi был на высоте, он давал чёткие инструкции к действию и помог нам улучшить многие правила сканирования SAST».

Ravi Dharmawan (он же ravidhr) работает инженером по информационной безопасности в GoTo Group. Он занимается в основном проверкой дизайна на безопасность, ревью исходного кода и тестированием на проникновение (пентестами). У Ravi также есть сертификаты OSCP и eWPTXv2.

Ian — первый MVP GitLab, награждённый за работу по поддержке пользователей на форуме GitLab. Michael Friedrich, старший Developer Advocate в GitLab, и Fatima Sarah Khalid, Developer Advocate в GitLab, оба номинировали Ian за работу по улучшению нашего форума, которую он проделал, отвечая на вопросы пользователей, которые устанавливают и используют GitLab.

Ian работает в UpWare Sp. z o.o. в качестве консультанта по системам и безопасности, в основном по Red Hat OpenShift и всему, что связано с Linux. Он имеет сертификаты Red Hat — RHCSA и RHCE, а также свою собственную установку GitLab, которую он поддерживает с 2017 года. Ian активно отвечал на вопросы на форумах GitLab на протяжении более 3 лет. У него более 2 600 полезных ответов, 480 отметок от модераторов сообщества и 240 решений.

Спасибо Ravi и Ian! 🙌

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

Бета-версия GitLab Duo Chat теперь доступна в Premium

В GitLab 16.8 мы сделали GitLab Duo Chat доступным для инстансов с самоуправлением. В релизе 16.9 мы делаем его бета-версию доступной для пользователей Premium.

GitLab Duo Chat может:

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

Вы можете помочь нам улучшить эти фичи, поделившись отзывом о своём опыте работы с GitLab Duo Chat. Это можно сделать либо внутри продукта, либо в нашем тикете для обратной связи.

GitLab Duo Chat Beta now available in Premium

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

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

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

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

Вы можете оставить свой фидбек по фиче Запросить изменения в нашем тикете для обратной связи.

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

Request changes on merge requests

Улучшения пользовательского интерфейса переменных CI/CD

В GitLab 16.9 мы добавили несколько улучшений пользовательского интерфейса переменных CI/CD. Мы улучшили процесс их создания, добавив следующие изменения:

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

Ваша обратная связь по этим изменениям, как и всегда, очень ценна для нас.

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

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

В настоящее время для использования фичи автоматической отмены ненужных конвейеров (в русской локализации GitLab «сборочная линия») вам необходимо задавать в настройках заданий, которые можно отменять, значение interruptible: true, чтобы определить, можно ли отменить данный конвейер. Однако это относится только к заданиям, которые уже запущены на тот момент, когда GitLab пытается отменить конвейер. Считается, что любые задания, которые ещё не начались (в статусе “pending”), можно безопасно отменять, независимо от их настройки interruptible.

Пользователям, которые хотят иметь возможность более точно выбирать, какие задания могут быть отменены, этих возможностей было недостаточно. Чтобы решить эту проблему, мы с радостью объявляем о добавлении ключевых слов auto_cancel:on_new_commit с более точной настройкой отмены заданий. Если вам тоже не хватало существующих возможностей управления автоматической отменой, теперь вы сможете настроить конвейер для отмены только заданий, для которых явно задано значение interruptible: true, даже если они ещё не были запущены. Вы также можете задать значение, при котором задания никогда не будут отменяться автоматически.

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

Expanded options for auto-canceling pipelines

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

Тикеты Jira для группы

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

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

Статистика по перенесённым элементам при прямом импорте групп и проектов

При завершении миграций групп и проектов путём прямого переноса в GitLab отображались значки Завершено (Complete), Частично завершено (Partially completed) и Завершено с ошибкой (Failed), чтобы сообщить пользователям общую информацию о результатах миграции. Пользователи также могли посмотреть список элементов, которые не были перенесены, перейдя по ссылке Посмотреть ошибки (See failures).

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

В этом релизе мы добавили статистику по результатам завершения миграции групп и проектов. Чтобы посмотреть эти виды статистики, перейдите по ссылке Details (подробнее) на странице истории миграции.

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

Новые события предпродакшена для пользовательских аналитик цикла разработки

Чтобы улучшить отслеживание рабочих процессов разработки в GitLab, в аналитику цикла разработки было добавлено новое событие предпродакшена: Issue first added to iteration. Вы можете использовать это событие, чтобы отслеживать проблемы, вызванные недостатком гибкости в командах, которые планируют слишком далеко наперёд, или сложность с исполнением в командах, у которых есть тикеты, повторяющиеся от итерации к итерации. Например, вы можете добавить в цикл разработки стадию “Planned”, которая начинается с Issue first added to iteration (тикет впервые добавлен в итерацию), а заканчивается Issue first assigned (тикету впервые назначен исполнитель).

New stage events for custom Value Stream Analytics

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

Аутентификация и подпись коммитов с сертификатами SSH

Ранее доступ к Git из GitLab.com всегда был основан на пользовательских данных, указанных в их аккаунте. Теперь вы сможете сделать возможным получение доступа к Git только через SSH. Также эти сертификаты можно будет использовать для подписи коммитов.

Authenticate and sign commits with SSH certificates

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

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

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

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

Fleet Dashboard: Compute minutes used on instance runners per project metric card

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

Отображение ссылки на мерж-реквест для конвейеров, запускаемых в ветках

Теперь при запуске конвейера в ветке, вы сможете быстро перейти к связанному мерж-реквесту со страницы подробной информации о конвейере.

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

Валидация модулей Terraform из группы или подгруппы

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

Начиная с GitLab 16.9 вы сможете просматривать модули всех ваших групп или подгрупп на одной странице. Это поможет лучше понимать состояние вашего реестра и снизить вероятность появления повторяющихся имён модулей.

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

Поддержка Kubernetes 1.29

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

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

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

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

В релизе 16.9 мы устранили следующие ошибки:

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

Более подробные результаты сканирования безопасности в VS Code

Мы улучшили отображение результатов сканирования безопасности в расширении GitLab Workflow для Visual Studio Code (VS Code). Теперь там можно узнать о результатах вашего сканирования безопасности более подробную информацию, которой ранее не было:

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

More detailed security findings in VS Code

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

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

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

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

Email enterprise-пользователя теперь доступен через пользовательский интерфейс и API

Владельцы групп, у которых есть enterprise-пользователи, теперь могут использовать как пользовательский интерфейс управления пользователями, так и API участников групп и проектов, чтобы увидеть email-адреса этих пользователей. Раньше возвращались только email автоматически создаваемых пользователей.

Enterprise user email address accessible through UI and API

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

Улучшения отчёта о соблюдении стандартов

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

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

В этом релизе мы внесли некоторые улучшения, чтобы сделать создание отчётов более действенным и надёжным. Вот эти улучшения:

Standards Adherence Report Improvements

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

Ограничение одновременных заданий по индексированию кода для расширенного поиска

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

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

Поддержка REST API для приложения GitLab for Slack

В этом релизе мы добавили поддержку REST API для приложения GitLab для Slack.

Вы не можете создать приложение GitLab для Slack из API. Вместо этого вам необходимо установить приложение из пользовательского интерфейса GitLab. Затем можно получить настройки интеграции и обновить или отключить приложение для проекта.

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

Отображение лимита для тикетов «в работе»

Теперь можно визуализировать лимит для количества тикетов «в работе» (Work In Progress, WIP) в списке на доске. При превышении лимита в списке появится линия, показывающая, какие элементы превышают лимит, что полезно для управления этим списком.

Boards work in progress line

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

Расширение доступности редактора форматированного текста

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

С GitLab 16.9 редактор форматированного текста доступен в этих разделах:

Благодаря расширенному доступу к редактору форматированного текста вы сможете взаимодействовать друг с другом более эффективно, даже если у вас нет опыта работы с Markdown.

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

Управление тем, кто может отменять конвейеры или задания

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

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

Дублирование модулей Terraform

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

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

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

Пользователи могут очищать частичные ресурсы после неудачных развёртываний

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

В некоторых ситуациях такое поведение может оказаться серьезным изменением. Новое поведение в настоящее время скрыто за переключаемой фичей и станет стандартным в версии 17.0, а старое поведение будет удалено из GitLab в версии 18.0. Мы рекомендуем всем начать переход или настроить переключаемую фичу уже сейчас, чтобы при первом обновлении 17.x ничего не сломалось.

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

Доступ к данным об использовании GitLab через REST API

Пользователи самостоятельных инстансов GitLab теперь могут беспрепятственно получать доступ к данным Service Ping через соединение REST API, что облегчает прямую интеграцию с нижестоящими системами. Это значительное улучшение по сравнению с предыдущим методом загрузки файлов. Новый подход предлагает самоуправляемым пользователям более эффективный способ проведения индивидуального анализа и получения конкретных сведений из данных об использовании GitLab в режиме реального времени.

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

Улучшения в оперативном сканировании контейнеров

Мы улучшили отчётность и стабильность в оперативном сканировании контейнеров (OCS, Operational Container Scanning). Примечательно, что было увеличено ограничение на размер отчёта Trivy, что обеспечивает более стабильную работу для пользователей. Увеличение размера этого отчёта с 10 до 100 МБ позволяет клиентам, которые были ограничены лимитом размера отчёта, использовать OCS для защиты образов контейнеров в своём кластере.

Из-за этого изменения в OCS пользователи, запускающие gitlab-agent в режиме FIPS, не смогут запускать оперативное сканирование контейнеров. Более подробно это описано в нашей документации. Ждём комментариев в тикете #440849.

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

Новые правила SAST для получения более качественных результатов

Мы обновили более 40 стандартных правил GitLab SAST, чтобы:

Изменения правил включены в обновлённые версии анализатора GitLab SAST на основе Semgrep. Это обновление автоматически применяется на GitLab 16.0 или новее, если только вы не закрепили определённую версию анализаторов SAST. Мы работаем над другими улучшениями правил SAST в эпике 10907.

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

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

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

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

Улучшен пользовательский интерфейс для истёкших сессий SAML SSO

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

Improved UX for expired SAML SSO sessions

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

Кастомные рекомендации по управлению участниками группы и проекта

Администраторы теперь могут добавлять текстовые рекомендации, которые будут видны пользователям с правами на управление участниками на странице Участники (Members) группы или проекта. Администраторы могут получить доступ к этим рекомендациям в разделе Внешний вид (Appearance) в настройках панели администратора (Admin Area).

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

Спасибо @bufferoverflow за этот вклад в сообщество!

Полный текст релиза и инструкции по обновлению и установке вы можете найти в оригинальном англоязычном посте GitLab 16.9 released with wider Beta access for Duo Chat.

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