Вышел релиз GitLab 16.2 с новым WYSIWYG-редактором текста

Сегодня мы с радостью объявляем о релизе GitLab 16.2 c совершенно новым редактором текста, палитрой команд, поддержкой подписей без ключей с Cosign, новым уровнем настроек для панели аналитики разработки и многими другими фичами!

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

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

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

GitLab MVP badge

Награда MVP этого месяца присуждается Xing Xin и Missy Davies

Xing Xin награждается за недавний мерж-реквест для использования репозиториев, находящихся в карантине, для поиска конфликтов. Karthik Nayak, старший бэкенд-разработчик GitLab, отметил: «Использование карантинных репозиториев позволяет избежать появления устаревших объектов в git-репозиториях, если операция завершается неудачно. Xing смог определить RPC, в котором мы можем вызывать карантинный репозиторий, а также привёл в обсуждении качественные аргументы и смог убедить нас в своей правоте хорошим знанием кодовой базы.»

Xing делал вклады в GitLab и Gitaly с 2020 года. Xing работает в ByteDance, а также в Alibaba Cloud и AntGroup, фокусируется на хостинге кода и эффективной инженерии. Как говорит сам Xing: «Сообщество GitLab очень вдохновляет меня своими практиками управления кодом и позитивными комментариями от ревьюеров. Я надеюсь продолжать расти вместе с ним.»

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

Missy также является активной участницей сообщества GitLab и регулярно участвует в событиях сообщества, проводит консультации и общается на сервере в Discord. Lee Tickett и Marco Zille — члены ключевой команды сообщества — подчёркивают её активность в общении с сообществом. Как говорит Lee, «Missy живёт нашими ценностями».

Сама Missy говорит, что участие в сообществе GitLab приносит ей огромную радость. Она ценит чувство причастности к сообществу, бесконечные возможности для роста и общую страсть к принципам разработки с открытым исходным кодом. Как бэкенд-разработчик с опытом работы с Ruby on Rails и Python, Missy делает ценные вклады в GitLab с 2022 года.

Спасибо всем, кто вложился в этот релиз ????

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

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

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

В GitLab 16.2 появился новый WYSIWYG-редактор текста! Он доступен для всех пользователей GitLab в качестве альтернативы Markdown-редактору.

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

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

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

All new rich text editor experience

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

Синхронизация с Flux без дополнительных настроек

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

По умолчанию Flux синхронизируется с манифестами Kubernetes через регулярные интервалы. Запуск синхронизации сразу после изменения манифеста требует дополнительных настроек. С агентом GitLab для Kubernetes вы сможете обновлять свой манифест и запускать синхронизацию с Flux автоматически.

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

Поддержка подписей без ключей с Cosign

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

Надлежащее хранение, обновление и управление ключами подписей может быть сложным процессом, который, как правило, требует дополнительных ресурсов на поддержку отдельной системы управления ключами (KMS). GitLab теперь поддерживает подписи без ключей через нативную интеграцию с инструментом Sigstore Cosign, который обеспечивает простой, удобный и безопасный механизм подписей в рамках CI/CD конвейера (в русской локализации GitLab «сборочная линия») GitLab. Подписи выполняются при помощи очень кратковременного ключа. Этот ключ генерируется через токен, получаемый с сервера GitLab с использованием OIDC пользователя, который запустил конвейер. Токен включает уникальные утверждения, которые подтверждают, что он был сгенерирован конвейером CI/CD.

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

Support for Keyless Signing with Cosign

Примеры подписей через Cosign и оригинальный эпик.

Палитра команд

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

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

Чтобы вызвать палитру команд, откройте левую боковую панель и нажмите Search GitLab (????) или используйте клавишу /.

Введите один из специальных символов:

  • > — Создать новый объект или найти пункт меню
  • @ — Найти пользователя
  • : — Найти проект
  • / — Найти проектные файлы в дефолтной ветке репозитория

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

Отслеживание данных экспериментов по машинному обучению

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Направление: Modelops

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

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

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

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

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

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

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

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

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

Автоматическое удаление неподтверждённых пользователей

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

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

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

Улучшенная безопасность для токенов ленты

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

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

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

Ускорение импорта из GitHub при помощи нескольких токенов доступа

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

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

  • импорт нескольких проектов малого и среднего размера;
  • импорт одного масштабного проекта с большим количеством данных.

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

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

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

Просмотр развёртываний из тикетов Jira, упомянутых в коммитах GitLab

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

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

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

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

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

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

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

Редактор форматированного текста — это новый способ редактирования текста в GitLab. Он доступен в мерж-реквестах, а также — наряду с обычным редактором текста — в тикетах и эпиках.

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

Interactive diff suggestions in merge requests

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

CI/CD: поддержка when: never для условных включений

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

include — одно из самых популярных ключевых слов при создании правил для конвейера CI/CD. Если вы создаёте крупные конвейеры, вы, скорее всего, используете ‘include’, чтобы добавить внешний файл настройки YAML к вашему конвейеру.

В этом релизе мы расширяем возможности этого ключевого слова. Теперь вы сможете использовать правило when: never при использовании правил с include. Вы сможете решать, когда внешние настройки CI/CD будут исключены при выполнении определённого правила. Это поможет вам создавать стандартные конвейеры, которые удобнее будет динамически настраивать под нужные условия.

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

Средние обработчики заданий SaaS для Linux доступны всем пользователям

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

Мы сделали наш средний обработчик заданий GitLab SaaS под Linux с 4 CPU и 16 GB RAM доступным для всех пользователей.

Ранее пользователи с планом Free могли использовать только маленький обработчик заданий под Linux, что иногда приводило к долгому выполнению конвейеров CI/CD. Мы рады, что теперь конвейеры наших пользователей смогут работать быстрее!

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

Установка агента Kubernetes с использованием дополнительных томов в Helm-чартах

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

Компоненту агента Kubernetes agentk требуется токен для аутентификации в GitLab. Ранее вы могли предоставить токен как есть или как ссылку на секретный ключ Kubernetes, содержащий токен. Однако иногда вы можете работать в среде, где секретный ключ уже доступен в томе, и вместо создания отдельного ключа удобнее монтировать этот том. Начиная с GitLab 16.2, Helm-чарт агента GitLab включает эту фичу благодаря вкладу от Thomas Spear.

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

Обновления анализатора статического сканирования безопасности

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

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

В ходе подготовки к релизу 16.2 мы сфокусировали наши усилия на анализаторе, основанном на Semgrep и правилах GitLab, которые он использует для сканирования. Мы выпустили следующие изменения:

  • Улучшили руководство по правилам для JavaScript аналогично улучшениям для остальных языков, выпущенных в GitLab 16.1.
  • Обновили правила для поиска дополнительных уязвимостей для Java и JavaScript.
  • Изменили настройку, для которой файлы в сканированиях игнорируются по умолчанию: было удалено исключение .gitignore — спасибо @SimonGurney за этот вклад; стали бережнее относиться к файлам .semgrepignore — за это спасибо @hmrc.colinameigh.
  • Улучшили правило, связанное с алиасингом памяти для Go. Спасибо @tyage за этот вклад.
  • Убрали суффикс -1, добавляемый к ID правил Semgrep для JavaScript. Это изменение было добавлено в GitLab 16.0 как побочный эффект другого изменения, однако оно пересекалось с комментариями пользователей по поводу semgrepignore.

Посмотрите список изменений semgrep и список изменений sast-rules, чтобы узнать больше. Мы будем отслеживать дальнейшие улучшения правил, управляемых GitLab в эпике 10907.

Если вы используете шаблон статического сканирования безопасности GitLab (SAST.gitlab-ci.yml) и версию GitLab 16.0 или выше, то вы автоматически получите эти обновления. Чтобы оставить определённую версию любого анализатора и предотвратить автоматические обновления, вы можете закрепить его версию.

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

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

Поддержка NuGet v2 при сканировании зависимостей и лицензий

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

Сканирование зависимостей и сканирование лицензий GitLab теперь поддерживают анализ зависимостей, определённых в файлах блокировок NuGet не только версии v1, но и v2.

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

Разрешили правила сканирования для включения конвейеров CI/CD в проектах разработки

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

В предыдущих версиях GitLab правила безопасности не применялись в проектах, где не было файла .gitlab-ci.yml или где функция Auto DevOps была выключена. В GitLab 16.2 правила безопасности неявно включают конвейеры CI/CD в проектах, не содержащих файл .gitlab-ci.yml. Это ещё один шаг в обеспечении соответствия правилам безопасности, позволяющий реализовать обнаружение секретных ключей, статический анализ и любые другие виды заданий, в которых сборки не требуются.

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

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

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

Теперь можно экспортировать в CSV-файл отчёт по наборам правил соответствия и связанным с ними проектам.

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

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

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

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

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

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

Поддержка пользовательских переменных CI в редакторе правил выполнения сканирования

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

Теперь в редакторе правил выполнения сканирования (Scan Execution Policies) можно определять пользовательские CI-переменные и их значения. CI-переменные, определённые в этих правилах, переопределяют соответствующие переменные, определённые в проектах, к которым применяются правила. Например, в правилах можно назначить CI-переменной SAST_EXCLUDED_ANALYZERS значение brakeman. Когда сканер будет запущен в проекте, эта переменная будет установлена в brakeman — даже если она определена как-то по-другому в конфигурации CI самого проекта. Для каждого типа сканирования можно определить значения переменных по умолчанию, а также создать свои пары ключ-значение для пользовательских переменных CI. Это ускоряет и упрощает настройку правил выполнения сканирования.

Support for custom CI variables in the Scan Execution Policies editor

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

При бэкапе теперь можно пропускать проекты

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

Во встроенный инструмент бэкапа и восстановления добавлена возможность пропускать определённые репозитории. Теперь задача Rake принимает разделённый запятыми список путей групп или проектов, которые будут пропущены при бэкапе или восстановлении. Для этого служит новая переменная окружения SKIP_REPOSITORIES_PATHS. Таким образом можно пропускать, например, устаревшие или архивные проекты, которые не меняются с течением времени, и сэкономить как время за счёт ускорения выполнения резервного копирования, так и место за счёт отсутствия этих данных в файле резервной копии. Спасибо Yuri Konotopov за этот вклад сообщества!

Документация по настройкам резервного копирования(https://docs.gitlab.com/ee/raketasks/backup_gitlab.html#back-up-specific-repositories) и оригинальный тикет.

Приложение GitLab для Slack доступно в инстансах GitLab с самостоятельным управлением

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

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

О том, как создать и настроить приложение, смотрите раздел документации «Администрирование приложения GitLab для Slack».

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

Страницы входа и регистрации в GitLab стали лучше

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

Улучшения страниц входа и регистрации в GitLab:

  • Двухколоночная вёрстка, если есть кастомный текст.
  • Исправлена проблема с чекбоксом Запомнить меня (Remember me) при использовании нескольких LDAP.
  • Улучшена тёмная тема.
  • Кнопки единого входа теперь больше.
  • Футер переместился в нижнюю часть страницы, чтобы не скрывать элементы страницы.
  • На страницу входа с помощью SAML добавлен переключатель языка.
  • На странице регистрации пробной версии теперь есть проверка пароля.

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

Синхронизация роли аудитора с поставщиком OIDC

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

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

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

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

Добавление эмодзи в комментарии к загруженным дизайнам

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

Теперь вы можете более креативно выражать свои мысли, добавляя эмодзи к комментариям в разделе Управление дизайном (Design Management). Эта фича добавляет нотку веселья и лёгкости совместной работе, улучшая общение и позволяя командам быстрее и выразительнее давать обратную связь.

Add emoji reactions to comments on uploaded designs

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

Повышение производительности загрузки файлов Git LFS

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

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

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

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

Импорт пакетов PyPI с конвейерами CI/CD

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

Задумывались о переносе своего репозитория PyPI на GitLab, но было некогда настроить миграцию? В этом релизе GitLab запускает первую версию инструмента для импорта пакетов PyPI. Его можно использовать для импорта из любого PyPI-совместимого реестра, например Artifactory.

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

Улучшено отслеживание уязвимостей SAST

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

Расширенное отслеживание уязвимостей в GitLab SAST делает сортировку более эффективной, отслеживая результаты по мере перемещения кода. Мы выпустили два улучшения в GitLab 16.2:

  1. Улучшенная языковая поддержка — расширенное отслеживание уязвимостей для C#.
  2. Лучшее отслеживание — мы улучшили алгоритм отслеживания, чтобы лучше обрабатывать пробелы и комментарии в языках C, C#, Go, Java, JavaScript и Python. Мы также исправили проблемы с отслеживанием некоторых функций Go.

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

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

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

Обновления системы обнаружения секретных ключей

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

Мы регулярно выпускаем обновления для анализатора обнаружения секретных ключей GitLab. В релизе GitLab 16.2 мы:

  • Добавили правила обнаружения, управляемые GitLab для ключей API OpenAI, личных и проектных токенов доступа CircleCI — спасибо @nathanwfish за этот вклад!
  • Улучшили производительность правил, использующих оптимизацию keywords.
  • Исправили ошибку, из-за которой результаты обнаружения секретных ключей создавали постоянные ссылки на неправильное место в репозитории.

Посмотрите подробности в полном списке изменений.

Если вы используете шаблон обнаружения ключей от GitLab (Secret-Detection.gitlab-ci.yml) и GitLab версии 16.0 или выше, вы автоматически получите эти обновления. Чтобы оставаться на определённой версии любого анализатора и предотвратить автоматические обновления, вы можете закрепить его версию.

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

Документация по поиску секретных ключей(https://docs.gitlab.com/ee/user/application_security/secret_detection/) и оригинальный тикет.

Первый пуш в защищённые ветки теперь разрешён

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

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

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

Настройка Полная защита после первоначального коммита (Fully protected after initial push) позволяет разработчикам запушить первый коммит в ветку по умолчанию нового репозитория, но запрещает им все последующие коммиты туда. Как и в случае с полностью защищённой веткой, мейнтейнеры проекта всегда могут пушить в ветку по умолчанию, но никто не может пушить с --force.

Allow initial push to protected branches

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

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

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

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

Раньше приходилось использовать хедеры, чтобы попытаться создать запрос, который принял бы сервис Google Cloud Logging. При этом легко было допустить ошибку, которую было трудно найти и устранить.

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

Audit event streaming to Google Cloud Logging

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

Список зависимостей на уровне группы/подгруппы

(Доступно в плане self-managed: ULTIMATE) Стадия цикла DevOps: Govern

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

Group/Sub-Group Level Dependency List

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

Пользовательский интерфейс для фильтрации событий аудита

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

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

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

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

Streaming audit event filtering UI

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

Выбор веток по умолчанию или защищённых в правилах безопасности

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

Правила для выполнения сканирования и для представления его результатов теперь позволяют принудительно выбрать ветки «По умолчанию» или «Защищённые» во всех проектах, к которым применяется некоторое правило. Теперь в правилах не нужно указывать конкретные нетипичные имена веток, так что правила могут применяться более широко и обеспечивать проверку соответствия требованиям для всех нужных веток.

Правила веток можно настроить для различных типов правил безопасности с помощью поля branch_type:

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

Geo добавляет индивидуальную повторную синхронизацию и верификацию для всех компонентов

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

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

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

Вики-страницы группы теперь доступны в расширенном поиске

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

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

Документация по расширенному поиску(https://docs.gitlab.com/ee/user/search/advanced_search.html) и оригинальный тикет.


Полный текст релиза и инструкции по обновлению и установке вы можете найти в оригинальном англоязычном посте GitLab 16.2 released with all new rich text editor experience.

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