Мы рады рассказать вам о выходе релиза GitLab 14.6, последнего релиза 2021-го года. В этом релизе появились: упрощённая конфигурация Geo, которая помогает распределённым командам ускорить выполнение git clone или git pull за счёт автоматического использования ближайшего к ним сервера; список действий агента GitLab, который регистрирует в реальном времени такие события, как состояние соединения и токена; различные улучшения для SAST, включая правила выполнения SAST-сканирований и поддержку .NET 6.
Это — лишь несколько основных из более 30 улучшений этого релиза. Читайте далее, и вы узнаете всё об этих классных обновлениях. Чтобы узнать, что выйдет в следующем месяце, зайдите на страницу предстоящих релизов и посмотрите видео по релизу 14.7.
MVP этого месяца — Kev
Благодаря Kev в релизе 14.6 были найдены и исправлены более десятка проблем с удобством (UX) GitLab. Многие из этих проблем относились к стадии Verify, но были также обновления для стадий Geo, Release и Create
Kev уже давно участвует в улучшении GitLab: начиная с релиза 13.1 было принято больше 240 мерж-реквестов. Спасибо за эту работу, Kev! ?
Основные фичи релиза GitLab 14.6
Бесперебойная работа по всему миру с Geo
(self-managed: PREMIUM, ULTIMATE) Доступность
Географически распределённые команды используют Geo для обеспечения быстрой и эффективной работы по всему миру. До версии GitLab 14.6 вы могли настроить Geo с единым унифицированным URL для всех Git-операций. Однако реплики Geo имели свои собственные URL для веб-интерфейса и доступа к API, поэтому пользователи должны были знать URL конкретных реплик Geo, которые они хотели использовать. Веб-интерфейс реплик Geo также был доступен только для чтения: пользователи могли смотреть страницы, но изменения приходилось делать на основном сайте.
В GitLab 14.6 вторичные сайты Geo явным образом проксируют запросы на запись на основной сайт, ускоряя при этом большинство запросов на чтение. Системные администраторы могут предоставить всем пользователям GitLab в своей организации единый URL, который автоматически будет обращаться к ближайшему к ним сайту Geo. Пользователям больше не нужно использовать различные конфигурации, чтобы воспользоваться преимуществами Geo, или беспокоиться о том, какие операции не будут работать на вторичных сайтах Geo. Распределённые команды оценят более быструю работу команд git clone
и git pull
и возможность бесперебойной работы по всему миру.
Вторичное проксирование и поддержка унифицированных URL по умолчанию включены для новых установок Geo. Вы также можете настроить унифицированный URL на существующей установке Geo и включить для неё вторичное проксирование.
Документация по вторичному проксированию в Geo и оригинальный эпик.
Запись действий агента GitLab для Kubernetes
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure
Мониторинг действий в вашем кластере помогает вам обнаружить и устранить неисправности, а также убедиться в успешном восстановлении рабочего состояния.
GitLab теперь предоставляет список операций агента GitLab для Kubernetes. События в этом списке регистрируются в режиме реального времени. Первая версия регистрирует только статусы соединения и токена, а в последующих релизах будет добавлено больше событий. Мы также планируем предоставить аналогичное решение для отслеживания событий туннеля CI/CD, так что будем рады вашим отзывам.
Документация по просмотру действий агента GitLab для Kubernetes и оригинальный тикет.
Удобное переключение редакторов вики
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Редактирование вики-страниц с помощью визуального редактора Markdown упрощает внесение изменений для всех, независимо от того, насколько хорошо пользователь владеет синтаксисом Markdown. В некоторых ситуациях удобнее писать в Markdown, но при этом использовать интерфейс WYSIWYG для более сложных или трудоёмких задач форматирования, например, для создания таблиц.
В предыдущих версиях GitLab требовалось сохранять изменения перед переключением между визуальным редактором Markdown-контента и исходным текстом в Markdown, что добавляло дополнительные шаги и трудности при редактировании. Теперь вы можете беспрепятственно переключаться между двумя режимами редактирования без сохранения изменений, используя тот редактор, который соответствует вашим потребностям в данный момент.
Документация по редактору вики и оригинальный тикет.
Другие улучшения в GitLab 14.6
Отображение приватных вкладов на календаре вкладов
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
В этом релизе мы изменили то, как отображается календарь вкладов в профиле пользователя. Приватные вклады ранее отображались в списке вкладов, но не в графике календаря вкладов. Получалось, что профиль пользователя не полностью отражал его вклады. Благодаря Dustin Eckhardt приватные вклады теперь также отображаются в календаре вкладов.
Документация по настройкам профиля и оригинальный тикет.
Используйте API для переноса группы в новую родительскую группу
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
В этом релизе мы добавили возможность переноса группы в новую родительскую группу через API групп. Ранее это можно было сделать только через пользовательский интерфейс. Теперь вы можете использовать Groups API для перемещения подгрупп в другую родительскую группу и для преобразования подгруппы в группу верхнего уровня.
Эта фича доступна администраторам и пользователям с:
- Ролью владельца (Owner) для передаваемой группы
- Разрешением на создание подгруппы в новой родительской группе при переносе группы
- Разрешением на создание группы верхнего уровня при преобразовании подгруппы в группу верхнего уровня.
Документация по переносу группы в новую родительскую группу и оригинальный тикет.
Копирование блоков кода в Markdown одним щелчком мыши
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
Вместо того чтобы выделять весь код в блоке и с помощью клавиатуры копировать его в буфер обмена, теперь вы можете копировать блоки кода в Markdown щелчком мыши по специальной кнопке в правом верхнем углу блока.
Документация по блокам кода в Markdown и оригинальный тикет.
Более светлая обводка для иконок
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Обновления для иконок продуктов GitLab:
- Теперь они более сбалансированы с другими элементами пользовательского интерфейса.
- Лучше согласовываются с брендом.
- Спроектированы таким образом, что прослужат долго и облегчат будущие итерации и добавление новых иконок.
- Хорошо сочетаются как со светлым, так и с тёмным пользовательским интерфейсом.
- Лучше передают абстрактные понятия и метафоры.
Более подробную информацию можно найти в посте нашего продуктового дизайнера Jeremy Elder.
Пост Jeremy Elder и оригинальный тикет.
Превью изменений, внесённых в строки с обсуждениями в мерж-реквестах
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
При обработке фидбеков в ревью мерж-реквеста (в русской локализации GitLab «запрос на слияние») могут меняться строки, которые прокомментировали ревьюверы. В этом случае GitLab указывает в соответствующих ветках комментариев, что были внесены новые изменения. Однако, чтобы понять, относились ли эти новые изменения к фидбеку или чему-то другому, ревьюверам приходилось переключаться от контекста обсуждения.
Теперь при просмотре обсуждений, связанных со старыми изменениями, вы можете просматривать новые изменения непосредственно в этом же обсуждении. Этот контекст поможет вам быстрее и точнее выполнять ревью.
Документация по обсуждениям и оригинальный тикет.
Очистка подов обработчика заданий GitLab
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Если у вас есть неиспользуемые поды Kubernetes от обработчиков заданий (runner), теперь вы можете использовать специальный инструмент, GitLab Runner Pod Cleanup, для их очистки. Эта утилита с открытым исходным кодом устанавливается в кластере Kubernetes вместе с менеджером обработчиков заданий GitLab Runner Manager и, когда она настроена, удаляет ненужные поды обработчиков в кластере. Эта новая утилита снижает затраты на обслуживание при использовании исполнителя Kubernetes для GitLab Runner.
Документация по очистке подов и оригинальный тикет.
Поддержка одновременного использования job:when и rules в CI/CD-конфигурациях
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Ранее было невозможно настроить задание в GitLab CI/CD с использованием ключевых слов rules
и when
на уровне задания. Требовалось добавлять when
в каждую секцию rules
, что могло приводить к объёмным конфигурациям с повторяющимися частями.
В релизе 14.6 мы избавились от этого ограничения, и теперь вы можете использовать ключевое слово when
на уровне задания вместе с rules
. Это делает удобнее использование when
и упрощает создание конфигураций заданий.
Документация по использованию rules:if и оригинальный тикет.
Настройка правил очистки прокси зависимостей через пользовательский интерфейс
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Package
Вы можете использовать прокси зависимостей GitLab, чтобы проксировать и кэшировать образы контейнеров из Docker Hub, что делает сборки более быстрыми и надёжными. Со временем ваша команда может добавить в кэш множество элементов, что приведёт к более высоким расходам на хранение.
Эту проблему можно было обходить, используя API для очистки всего кэша. Но это неэффективно, если вы хотите удалять только старые и ненужные элементы, которые больше не используются. Поэтому в GitLab были добавлены правила очистки для прокси зависимостей, которые позволяют вам автоматически удалять теги старых образов. Однако эта фича требует использования GraphQL, что тоже неэффективно, если вы не используете его регулярно.
Теперь вы можете настроить автоматические правила времени жизни (time-to-live, TTL) для прокси зависимостей прямо из пользовательского интерфейса. Чтобы сделать это, перейдите на странице групп в Настройки > Пакеты и реестры > Dependency Proxy (Settings > Packages & Registries > Dependency Proxy) и включите настройку для автоматического удаления элементов из кэша после 90 дней.
Документация по правилам очистки кэша и оригинальный тикет.
Использование токенов развёртывания для скачивания зависимостей Composer
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Package
Теперь вы можете использовать токены развёртывания для аутентификации пользователей, которые взаимодействуют с репозиторием Composer. Ранее для аутентификации пользователей, которые публиковали и скачивали зависимости Composer из репозитория GitLab Composer использовались личные токены доступа и токены заданий. Эти токены привязаны к определённому пользователю. Токены развёртывания предоставляют метод аутентификации, который не привязан к определённым пользователям, что обеспечивает безопасность и эффективность ваших рабочих процессов на продакшене.
Документация по установке пакета Composer и оригинальный тикет.
Поддержка SAST для .NET 6
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure
Релиз Microsoft .NET 6.0 — это следующий мажорный релиз .NET Core, в котором была значительно улучшена его производительность и появились новые возможности вычислений. Также этот релиз поддерживает упрощённый код .NET. Мы обновили наш анализатор .NET SAST, Security Code Scan, для поддержки этой новой версии, которая также теперь поддерживается нашим определителем языка для SAST, что позволяет GitLab SAST автоматически определять проекты .NET 6. Это изменение — вклад пользователя из нашего сообщества, @vasyl11 из Clay Solutions. Спасибо @vasyl11 за эту фичу!
Из-за проблем с обратной совместимостью, если вы хотите использовать сканирование SAST для .NET 6, вам нужно будет обновить файл .gitlab-ci.yml
, чтобы сделать привязку к последней мажорной версии сканирования безопасности кода. Вы можете добавить этот сниппет в ваш файл .gitlab-ci.yml
, чтобы попробовать новые возможности сканирования. В одном из будущих релизов мы объявим о предстоящем удалении в сканировании SAST всех версий .NET до 3.0 в связи с концом его срока жизни и последней датой поддержки от Microsoft. В GitLab 15.0 новая версия сканирования безопасности кода будет запускаться по умолчанию, что позволит выполнять сканирования .NET 5 и 6 SAST без необходимости включать экспериментальные фичи.
Документация по анализаторам SAST и оригинальный тикет.
Поддержка настроек HTTPS прокси через RetireJS
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
Благодаря вкладу от Ankur Sethi сканирование зависимостей теперь поддерживает настройки прокси в Retire.js через переменную окружения HTTPS_PROXY
. Если HTTPS_PROXY
задана, она будет передана в качестве опции командной строки для retire
. Спасибо за эту фичу!
Документация по переменным CI/CD для сканирования зависимостей и оригинальный тикет.
Автоматическое удаление Git-ссылок для старых развёртываний
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Release
По мере того, как проекты развёртываются, число развёртываний может значительно вырасти. Чтобы поддерживать высокую производительность команд Git, мы добавили автоматическое удаление Git-ссылок для старых развёртываний. Теперь GitLab будет хранить последние 50 000 развёртываний для каждого проекта и автоматически удалять Git-ссылки для всех остальных.
Документация по архивированию старых развёртываний и оригинальный тикет.
Результаты сканирования контейнеров в списке зависимостей
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Protect
Команды, отвечающие за безопасность и соответствие требованиям, а также разработчики должны иметь полную картину всех зависимостей, используемых в проекте. Задания по сканированию контейнеров теперь добавляют все идентифицированные системные зависимости в список зависимостей по умолчанию. Этот список системных зависимостей появляется вместе с любыми зависимостями приложений, определёнными заданием по сканированию зависимостей. Теперь пользователи могут просматривать полный список зависимостей проекта централизованно, в одном месте — на странице Безопасность и комплаенс > Список зависимостей (Security & Compliance > Dependency List).
Документация по списку зависимостей и оригинальный эпик.
Правила выполнения сканирований SAST
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Protect
Пользователи теперь могут требовать выполнения сканирований SAST по регулярному расписанию или в рамках конвейеров (в русской локализации GitLab «сборочные линии») независимо от содержимого файла .gitlab-ci.yml
. Это позволяет командам по безопасности управлять требованиями к сканированиям без выдачи разработчикам разрешений на изменение настроек. Вы можете начать работу с правилами безопасности на странице Безопасность и комплаенс > Политики (Security & Compliance > Policies). Чтобы настроить сканирования SAST, задайте в поле scan
значение sast
.
Документация по правилам безопасности и оригинальный эпик.
Geo верифицирует четыре дополнительных типа данных
(self-managed: PREMIUM, ULTIMATE) Доступность
GitLab хранит загрузки, объекты LFS, развёртывания GitLab Pages и диффы внешних мерж-реквестов в файловой системе или в хранилище объектов. Geo реплицирует эти данные на один или несколько вторичных сайтов для улучшения работы распределённых команд или в рамках стратегии аварийного восстановления. Теперь Geo автоматически верифицирует целостность хранящихся в файловой системе данных — реплицированных загрузок, объектов LFS, развёртываний GitLab Pages и диффов внешних мерж-реквестов. Это даёт гарантию того, что данные не были повреждены при передаче или хранении. Если вы используете Geo как часть стратегии аварийного восстановления, это обеспечит дополнительную защиту от потери данных.
Документация по типам реплицируемых данных и оригинальный эпик.
Настройка максимального срока жизни ключа SSH
(self-managed: ULTIMATE) Стадия цикла DevOps: Manage
Администраторы теперь могут задавать максимальное количество дней, в течение которых будет действовать ключ SSH. Это особенно полезно для организаций, которые должны следовать строгим правилам истечения срока действия ключей в рамках правил соответствия требованиям. В GitLab уже была возможность задавать максимальное количество дней, в течение которых могут оставаться валидными личные токены доступа (PAT). Эта фича работает аналогичным образом.
To set this new limit, administrators can navigate to the Admin Area and select Settings > General. Find the new setting by expanding Account and limit to set Maximum allowed lifetime for SSH keys (in days).
Настроить новое ограничение можно через панель администратора, в разделе Настройки > Общие (Settings > General). Эта настройка находится в Аккаунт и ограничения (Account and limit), поле Максимально допустимый срок действия ключей SSH (в днях) (Maximum allowed lifetime for SSH keys (in days)).
Документация по ограничению срока действия ключей SSH и оригинальный тикет.
Аутентификация через WebAuthn включена по умолчанию
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Аутентификация через WebAuthn поддерживается, но была отключена по умолчанию начиная с GitLab 13.4; теперь она включена по умолчанию. Пользователи смогут использовать Touch ID на устройствах Apple как второй фактор для двухфакторной аутентификации, если их браузер это поддерживает. Это также позволяет избавиться от сообщений об ошибке, которые появляются в браузерах, отказавшихся от U2F в пользу WebAuthn.
Документация по двухфакторной аутентификации через WebAuth и оригинальный тикет.
Отображение заголовка тикета в Markdown
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
При добавлении ссылок на тикеты (в русской локализации GitLab «обсуждения»), эпики (в русской локализации GitLab «цели») или мерж-реквесты в полях с Markdown раньше не было способа добавлять дополнительный контекст кроме ID. Теперь вы можете добавлять +
к тикету, эпику или мерж-реквесту, чтобы отобразить также заголовок.
Документация по Markdown и оригинальный тикет.
Шаблон сообщения для объединения коммитов
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Объединение (squash) коммитов — это отличный способ очищать историю коммитов мерж-реквеста, объединяя все коммиты при мерже. Просматривать историю веток становится проще, в то же время логика, стоящая за этими изменениями остаётся незатронутой. Раньше GitLab по умолчанию использовал заголовок мерж-реквеста в качестве сообщения при объединении коммитов. Если вы не редактировали сообщение перед мержем, то могли потерять важную информацию о внесённых изменениях.
Мейнтейнеры проекта (в русской локализации GitLab «сопровождающие») теперь могут настраивать сообщение по умолчанию для объединения коммитов в соответствии с требованиями проекта. Можно включить детальную информацию о каждом мерж-реквесте: исходную и целевую ветки, а также переменные. С более полными сообщениями при объединении коммитов каждый сможет лучше понимать контекст изменений.
Спасибо Piotr за этот невероятный вклад!
Документация по шаблонам коммит-сообщений и оригинальный тикет.
Причина неудачного завершения задания возвращается через API
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Использовать API для сбора данных о причине неудачного завершения задания может быть непросто, например, если вы хотите знать точные причины ошибки, чтобы более эффективно использовать ключевое слово retry:when
.
Теперь в ответах от Jobs API появилась переменная failure_reason
, с помощью которой собирать данные о причинах ошибки становится намного проще. Спасибо @albert.vacacintora за эту фичу!
Документация по API заданий и оригинальный тикет.
Веб-хук теперь срабатывает для отложенных заданий
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Раньше было неудобно использовать веб-хуки событий в заданиях для мониторинга CI/CD, поскольку было трудно отслеживать множество отложенных (pending
) заданий, которые могут существовать в проекте.
Теперь веб-хук инициирует событие, когда состояние задания изменяется на «отложено», поэтому больше не нужно применять обходные пути или специальные интеграции для отслеживания всех статусов задания.
Документация по веб-хукам для событий заданий и оригинальный тикет.
Публикация пакетов Conan только с названием и версией
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Package
Предположим, вы используете репозиторий GitLab Conan для публикации и совместного использования ваших пакетов C/C++. При создании пакета Conan необходимо указывать четыре поля: name
(имя), version
(версия), user
(пользователь) и channel (канал)
. Эти поля однозначно определяют пакет. Поля user
и channel
не обязательны в Conan 2.0, но GitLab требует, чтобы вы продолжали их использовать. Применение соглашений об именах в соответствии с требованиями GitLab вместо стандартов из Conan неэффективно и непрактично.
Мы обновили репозиторий GitLab Conan в соответствии с требованиями Conan. Теперь вы можете публиковать и загружать свои пакеты Conan как с полями user
и channel
, так и без них. Это улучшение повышает эффективность и упрощает поиск и проверку пакетов в пользовательском интерфейсе. Это изменение — первое из широкого набора запланированных улучшений в репозитории Conan, которые помогут перевести его из бета-версии в общий доступ.
Документация по репозиторию Conan и пакетам без имени пользователя и канала и оригинальный тикет.
Возможность комбинирования пользовательских наборов правил для SAST и поиска ключей
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
Мы улучшаем возможности добавленных в GitLab 13.5 пользовательских наборов правил для SAST и поиска секретных ключей (оригинальная статья, перевод). Эти наборы правил позволяют адаптировать поведение анализаторов SAST и сканирования на ключи к предпочтениям вашей организации. Чтобы улучшить эту возможность, мы представляем возможность добавлять правила из нескольких источников, например из репозиториев Git и локальных файлов. С этим изменением становится проще создавать и управлять несколькими настраиваемыми наборами правил из разных мест, которые организации могут использовать для наследования правил из разных источников, и за счёт этого достигать большей гибкости. Мы рассказываем больше про эту новую фичу в посте в нашем блоге. Изначально это изменение доступно для наших анализаторов SAST Semgrep, Nodejs и Gosec и поиска секретных ключей. Мы добавим эту возможность в другие наши анализаторы в будущих релизах.
Документация по настройке наборов правил безопасностии оригинальный эпик.
Обновления анализаторов SAST
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure
Статическое тестирование безопасности приложений (SAST) в GitLab включает в себя множество анализаторов безопасности, активно управляемых, поддерживаемых и обновляемых командой статического анализа GitLab. Ниже представлены обновления анализаторов, выпущенные в релизе 14.6. В этих обновлениях появилось расширенное покрытие и прочие улучшения, были исправлены ошибки.
- Spotbugs обновили до v2.28.11: мерж-реквест, список изменений.
1) Обновили библиотеку Log4j до исправленной версии v4.5.2. Прочитайте пост в нашем блоге, чтобы узнать больше.
2) Исправили поддержку сертификатов пользовательских CA. - PMD обновили до v2.12.10: мерж-реквест, список изменений.
- Удаление библиотеки Log4j. Подробности в блоге.
- Обновили Semgrep до v0.76.2: мерж-реквест, список изменений.
- Обновили Gosec до v2.9.5: мерж-реквест, список изменений.
Если вы используете поставляемый GitLab шаблон SAST (SAST.gitlab-ci.yml), то вам не нужно ничего делать, чтобы получить эти обновления. Однако если вы переопределяете его или используете свой собственный шаблон CI, вам потребуется обновить конфигурации CI. Также вы можете закрепить минорную версию анализатора, чтобы использовать определённую версию любого анализатора. Закрепление одной из предыдущих версий отменит автоматические обновления анализатора, и вам потребуется вручную менять версию анализатора в шаблоне CI.
Документация по настройке анализаторов SAST и оригинальный тикет.
Использование DS_EXCLUDED_PATHS теперь приводит к предварительной фильтрации зависимостей
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
Важное изменение для тех, кто использует переменную DS_EXCLUDED_PATHS
в сканировании зависимостей: теперь её использование будет приводить к предварительной фильтрации зависимостей. Сканирование зависимостей теперь учитывает DS_EXCLUDED_PATHS
при поиске поддерживаемых проектов и предварительно отфильтровывает те из них, которые соответствуют этой переменной. Предварительная фильтрация предотвращает лишние записи в журнале предупреждений или сбоев анализатора при обработке файлов зависимостей, которые были явно исключены с помощью DS_EXCLUDED_PATHS
. Это позволяет пользователям при необходимости пропускать файлы зависимостей и сборочные файлы, а в некоторых случаях может привести к повышению производительности.
Это изменение было внесено 2‑го декабря 2021 для gemnasium, 6-го декабря 2021 для gemnasium-python и 7-го декабря 2021 для gemnasium-maven. Это изменение применяется ко всем версиям, так как мы его бэкпортировали.
Вам не нужно предпринимать никаких действий, однако если вы ожидали такого поведения от пост-фильтрации (а не пре-) и написали собственный инструмент для обработки, вам нужно будет обновить его. Например, до этого изменения вам, возможно, требовалось вручную или скриптом удалять определённые файлы, чтобы избежать появления предупреждения или ошибки.
Предыдущее поведение вызывало сбои и неожиданные ошибки для пользователей, и после обсуждений мы обнаружили, что пре-фильтрация, в отличие от пост-, была наиболее ожидаемым и желаемым поведением в сканировании зависимостей.
Документация по сканированию зависимостей и оригинальный тикет.
Быстрое действие для превращения тикета в инцидент
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Monitor
Потратив время и усилия на решение проблемы, описанной в тикете, иногда участники понимают, что тикет должен быть инцидентом. Теперь, используя быстрое действие /promote_to_incident
, пользователи могут преобразовать тикет в инцидент. Весь существующий контекст (заголовок, описание, метки, исполнители, комментарии и т. д.) при этом сохраняется.
Документация по быстрым действиям и оригинальный тикет.
Customize deduplication of container scanning vulnerabilities
Настройка дедупликации уязвимостей при сканировании контейнеров
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Protect
При сканировании образов сканирование контейнера по умолчанию предполагает такое соглашение об именовании образов, что идентификаторы конкретных веток хранятся в теге образа, а не в имени образа. Для клиентов, которые следуют другому соглашению об именах, где имя ветки является частью имени образа, такое поведение по умолчанию не позволяет сканеру правильно дедуплицировать идентичные уязвимости. Теперь вы можете изменить настройку по умолчанию, указав новую переменную CS_DEFAULT_BRANCH_IMAGE
в задании для сканирования контейнера. Эта переменная устанавливается по умолчанию для проектов, использующих Auto DevOps, что позволяет проверкам безопасности в мерж-реквестах правильно идентифицировать новые и уже существующие уязвимости путём дедупликации любых уязвимостей, которые уже есть в ветке по умолчанию.
Документация по сканированию контейнеров и оригинальный эпик.
Отвязка проектов правил безопасности
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Protect
Владельцы проектов теперь могут отвязать проекты правил безопасности от проектов разработки. Для этого сначала перейдите к Безопасность и комплаенс > Политики (Security & Compliance > Policies) и нажмите кнопку Изменить проект политики (Edit Policy Project). Затем выберите значок корзины, чтобы разорвать связь с ранее связанным проектом правил безопасности.
Документация по отвязке проектов правил безопасности и оригинальный эпик.
Улучшения удобства использования
В каждом релизе мы делаем шаги по повышению общей эффективности и полезности нашего продукта. У нас также есть Галерея UI Polish для отслеживания важных обновлений наших интерфейсов. Эти обновления, хоть часто и небольшие, заметно улучшают удобство использования.
В GitLab 14.6 мы поработали над тикетами, проектами, майлстоунами (в русской локализации GitLab «этапы») и многим другим. Мы особо выделяем следующие изменения в GitLab 14.6:
- Добавили столбец «Последнее действие» (“Last Activity”) к CSV-экспорту в /admin/users.
- Устаревшие обработчики заданий теперь фильтруются и отображаются с отдельным значком в пользовательском интерфейсе.
- Перенесли текст с количеством активных обработчиков заданий на панель инструментов.
- Исправили поле IP-адреса, чтобы он полностью помещался на странице администратора обработчика заданий.
- Добавили отступ между столбцами в таблице обработчиков заданий.
- Поставили на нужные места столбцы для pages:deploy в таблице обработчиков заданий.
- Добавили ссылку на отказавшие конвейеры из Analytics > CI/CD на странице проектов.
- Сделали понятнее включение и выключение прокси-сервера зависимостей.
- Выровняли иерархию конвейеров на мини-графике конвейера.
- Список пакетов: обновили метаданные конвейера.
- Улучшили удаление тегов образов контейнера.
- Новый параметр TTL для прокси-сервера зависимости.
- Файловому браузеру в мерж-реквестах теперь можно менять размер окна, и ничего не сломается.
- Улучшения текста в мерж-реквестах.
- Пользователи теперь смогут увидеть, когда найденный в поиске код был последний раз изменён.
- Улучшили цветовой контраст номеров для строк кода при выделении.
- Аналитика цикла разработки (VSA): параметры создания и удаления теперь остаются видимыми в раскрывающемся списке.
- Пользователь теперь может устанавливать имя правила, отображаемое в виджете мерж-реквеста.
- Отчёт об уязвимости: новый значок администратора.
- Исправили название для времени выполнения завершённых заданий: было “Elapsed time”, стало “Duration”
- Поддержка фильтров not в API эпиков
- Добавили parent_iid и ссылку на эпик-родитель в API эпиков
Полный текст релиза и инструкции по обновлению/установке вы можете найти в оригинальном англоязычном посте GitLab 14.6 adds seamless Geo experience and supports .NET 6 in SAST.
Над переводом с английского работали cattidourden, maryartkey, ainoneko и rishavant.
ссылка на оригинал статьи https://habr.com/ru/post/646065/
Добавить комментарий