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

Вышел GitLab 14.5 с SAST-сканированием инфраструктуры как кода и групповыми настройками подтверждений мерж-реквестов

Мы рады объявить о выходе нового релиза GitLab 14.5, включающего сканирование безопасности инфраструктуры как кода, групповые настройки подтверждения мерж-реквестов (в русской локализации GitLab «запросы на слияние»), GitLab Kubernetes Agent для бесплатных планов, темы проектов и многое другое!

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

Приглашаем на наши встречи.

GitLab MVP badge

MVP этого месяца — Jonas Wälter

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

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

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

Сканирование безопасности инфраструктуры как кода

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure

В Gitlab 14.5 мы добавляем сканирование безопасности для конфигурационных файлов инфраструктуры как кода (Infrastructure as Code, IaC). Как и в случае всех SAST-сканеров в GitLab, мы решили сделать эту возможность бесплатной для всех наших пользователей, чтобы способствовать развитию безопасного проектирования конфигураций IaC. Первая версия сканера безопасности IaC поддерживает конфигурационные файлы для Terraform, Ansible, AWS CloudFormation и Kubernetes. Она основывается на проекте с открытым исходным кодом Keeping Infrastructure as Code Secure (KICS). Новое сканирование конфигураций IaC дополняет наш существующий SAST-сканер манифестов Kubernetes.

Если вы уже знакомы с GitLab SAST, то вам будет просто: IaC-сканирование работает точно так же и поддерживает все те же возможности, включая автономный файл конфигурации CI для сканирования, настройку запуска сканирования через интерфейс на странице настроек безопасности, а также все наши фичи по управлению уязвимостями плана Ultimate, включая панели безопасности и виджет мерж-реквеста. С новым шаблоном сканирования IaC также будет проще дополнять наше IaC-сканирование другими сканерами. Будем рады вкладам сообщества с помощью нашего фреймворка интеграции сканирований безопасности.

Introducing Infrastructure as Code (IaC) security scanning

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

Точный контроль разрешений с CI/CD-тоннелем

(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure

Обеспечивать безопасность доступа к кластерам — первостепенная задача для множества компаний. CI/CD-тоннель для GitLab Kubernetes Agent предоставляет безопасный доступ к кластеру из GitLab CI/CD. До сих пор тоннель наследовал разрешения служебной учётной записи установленного в кластере агента. Многим пользователям необходим более строгий контроль разрешений, желательно на уровне пользователя или задания.

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

Fine grained permissions control with the CI/CD tunnel

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

GitLab Kubernetes Agent в плане Free

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure

Подключение кластера Kubernetes с помощью GitLab Kubernetes Agent упрощает настройку кластерных приложений и позволяет проводить безопасные GitOps-развёртывания на кластер. Первоначально GitLab Kubernetes Agent был доступен только для Premium пользователей GitLab. В соответствии с нашей приверженностью идее открытого исходного кода мы переместили основные фичи GitLab Kubernetes Agent и CI/CD-тоннеля в план GitLab Free. Мы ожидаем, что эти фичи будут полезны для многих пользователей, у которых нет отдельных команд по инфраструктуре и жёстких требований к управлению кластерами. Дополнительные фичи остаются доступными в рамках пакета GitLab Premium.

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

Более понятные диффы файлов блокнотов Jupyter

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

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

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

Cleaner diffs for Jupyter Notebook files

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

Единая команда для продвижения вторичной ноды в Geo

(self-managed: PREMIUM, ULTIMATE) Доступность

При выполнении аварийного переключения системные администраторы используют различные инструменты в зависимости от базовой архитектуры. На сайтах Geo с единственной нодой администраторы могут использовать команду gitlab-ctl promote-to-primary-node. Однако сайты с несколькими нодами не поддерживали эту команду и требовали ручного редактирования конфигурации. Это было обременительно для больших окружений, поскольку нужно было обновлять десятки конфигурационных файлов.

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

Начиная с GitLab 14.5 команды gitlab-ctl promote-to-primary-node и gitlab-ctl promote-db считаются устаревшими (deprecated) и будут удалены в версии GitLab 15.0.

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

Вкладка с темами проектов

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

Благодаря вкладу от Jonas Wälter в этом релизе появилась новая вкладка Обзор тем (Explore topics) на странице Проекты (Projects).

При выборе темы вы увидите её аватарку и описание, а также все относящиеся к ней проекты.

Explore project topics tab

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

Управление темами проектов на панели администратора

(self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

Благодаря вкладам от Jonas Wälter в этом релизе также появились следующие фичи для управления темами проектов на панели администратора:

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

Групповые настройки для подтверждений мерж-реквестов

(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

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

Group-level settings for merge request approvals

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

Дополнительные условия для include с ключевым словом exists

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

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

Conditional includes with `exists` keyword

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

Добавляйте README в ваш профиль

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

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

Add personal README to profile

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

Тонкая настройка правил проверки уязвимостей

(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Protect

При создании правил проверки уязвимостей необходима высокая степень детализации, чтобы была возможность настроить подтверждения мерж-реквестов только тогда, когда это требуется в соответствии с требованиями безопасности в вашей организации. С релизом 14.5 GitLab обеспечивает более детальную настройку правил проверки уязвимостей. Пользователи теперь могут определять, какие сканеры, уровни серьёзности и типы уязвимостей будут учтены при срабатывании правила. Кроме того, пользователи могут установить минимальный порог количества уязвимостей, для которых должны будут выполняться условия, чтобы мерж-реквест потребовал подтверждения. Если требовать подтверждения после проверки уязвимостей только для тех мерж-реквестов, которые действительно в этом нуждаются, вы сможете разгрузить команды разработчиков и специалистов по безопасности. Вы можете настроить эти более детальные проверки уязвимостей на странице Настройки > Основные > Подтверждение запросов на слияние (Settings > General > Merge request approvals) в вашем проекте.

Fine-tune vulnerability check rules

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

Дополнительные шаблоны для поиска секретных ключей

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure

Мы обновили поиск секретных ключей GitLab, добавив 47 новых хорошо идентифицируемых шаблонов для популярных приложений. Теперь сканер может находить секретные ключи по более чем 90 шаблонам.

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

Additional Secret Detection pattern support

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

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

Возможность обновлять свойства учётных записей пользователей SAML и SCIM

(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

В предыдущих версиях GitLab мы поддерживали свойства project_limit и can_create_groups только для новых пользователей, созданных с помощью SAML. Если учётные записи были созданы с помощью системы SCIM или обновлены через поставщика SAML с этими свойствами, значения project_limit и can_create_groups не обновлялись.

Теперь, если учётная запись создана через SCIM или её свойства обновляются через поставщика SAML, эти данные синхронизируются с GitLab. Таким образом, поставщик учётных записей будет являться единственным источником достоверной информации о пользовательских данных.

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

Автоматическая разблокировка пользователей LDAP при авторизации через других поставщиков учётных записей (SAML, OAuth, OmniAuth)

(self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

Временные ошибки LDAP могут приводить к блокировке учётных записей пользователей, в результате чего они не могут выполнить вход. Теперь после исправления ошибки GitLab перепроверит данные LDAP и разблокирует пользователей, заблокированных через LDAP, если у них настроен другой метод аутентификации (например, SAML или OAuth), и они пытаются войти через него.

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

Роль с минимальным уровнем доступа для групповой синхронизации через SAML

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

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

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

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

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

Topics selection in project settings

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

Оптимизация ресурсов для Git fetch

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

Мы улучшили производительность трафика между Workhorse и Gitaly, в результате чего команда git fetch теперь потребляет меньше ресурсов сервера GitLab. Это изменение может привести к проблемам в инстансах GitLab с самостоятельным управлением, если между Workhorse и Gitaly развернут прокси gRPC. В этом случае Workhorse и Gitaly теперь не смогут установить соединение. Чтобы обойти это ограничение, отключите временную переключаемую фичу workhorse_use_sidechannel. Если вам нужен прокси между Workhorse и Gitaly, используйте TCP-прокси.

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

Шаблон для описания мерж-коммита

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

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

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

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

Merge commit message template

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

Таблицы в вики поддерживают блочные элементы

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

В GitLab 14.1 мы добавили в новый редактор вики WYSIWYG-редактирование для таблиц. Однако виды контента, который можно было добавлять в ячейки таблицы были ограничены базовой реализацией Markdown: вы не могли добавлять в таблицы списки, блоки кода или цитаты. В GitLab 14.5 такая возможность появилась. Теперь вы можете вставлять в ячейки таблицы списки, блоки кода, абзацы, заголовки и даже вложенные таблицы. Это даёт больше гибкости и свободы форматировать контент по своему вкусу.

Tables in wikis support block-level elements

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

Мини-график конвейера в редакторе конвейера

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify

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

Add pipeline mini graph to the pipeline editor

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

Улучшенный пользовательский интерфейс обработчиков заданий на панели администратора

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify

Раньше у администраторов GitLab не было возможности легко находить обработчики заданий (runners) по инстансам, группам или проектам. Из-за ограниченных возможностей поиска и фильтрации было сложно найти нужный обработчик при устранении проблем с выполнением заданий CI/CD.

Этот релиз включает первое обновление страницы обработчиков заданий, которую можно найти в Панель администратора > Обработчики заданий (Admin Area > Runners). Новая структура страницы поможет вам быстрее находить нужные обработчики заданий и позволит в дальнейшем продолжить улучшать управление ими. Ключевое улучшение в этом редизайне — вкладки, фильтрующие список обработчиков заданий по типу, и индикаторы, показывающие обработчики заданий, которые давно не подключались к GitLab.

Improved UI for runners in the Admin Area

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

Новый префикс для токенов доступа GitLab

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure

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

Это улучшение основано на вкладе от сообщества, добавленном в Gitlab 13.7, который позволил администраторам добавлять префиксы для личных токенов доступа на уровне инстанса. Спасибо за эту фичу @max-wittig и @dlouzan из Siemens! Уже существующие токены доступа не будут изменены, но любые новые токены будут создаваться по этому шаблону, либо по шаблону, заданному в вашем инстансе с самостоятельным управлением.

Для поиска личных токенов доступа и токенов доступа проекта используйте следующий шаблон регулярного выражения: glpat-[0-9a-zA-Z\-]{20}.

New GitLab access token prefix and detection

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

Сортировка развёртываний по времени развёртывания

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Release

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

Order deployment by deployed time

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

Базовая аутентификация для конечных точек оповещений

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Monitor

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

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

В ответах POST для оповещений возвращается ID оповещения

(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Monitor

Ранее при отправке оповещений через POST с использованием обычной конечной точки HTTP для оповещений вы получали в ответ только код 200, который говорит об успешной отправке. Если вы хотите наладить рабочие процессы, связанные с оповещениями, в ответе вам также нужно видеть дополнительную информацию. В этом релизе мы добавили в ответ POST ID оповещения (iid), что позволит вам отличать ваши оповещения по уникальному ID.

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

События аудита для групповых настроек SAML

(self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

GitLab теперь создаёт события аудита при изменении дополнительных настроек SAML для групп. События создаются при изменении следующих настроек:

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

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

Календарь вкладов соответствует настроенному часовому поясу

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

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

Спасибо Dave Barr за эту фичу!

Contribution calendar aligned to configured timezone

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

Управление темами проекта через API

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

В этом релизе, благодаря вкладу Jonas Wälter, добавлять темы в настройках проекта стало проще. В дополнение к свежим фичам управления темами проекта в пользовательском интерфейсе теперь вы также можете использовать API, чтобы выгружать темы по списку или по идентификатору. Мы также предоставили администраторам возможность создавать и редактировать темы через API. Благодаря этому управлять темами проекта становится одинаково удобно как в пользовательском интерфейсе, так и через API.

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

Прямая ссылка на аналитику цикла с заданными параметрами

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

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

Аутентификация в GitLab Workflow с помощью переменных окружения

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

В автоматизированных средах разработки, таких как Gitpod, для настройки GitLab Workflow для Visual Studio Code каждый раз требуется загружать редактор и затем устанавливать токен личного доступа к GitLab. Этот процесс занимает много времени, подвержен ошибкам и приводит к многократному или излишнему использованию токенов доступа.

Новая версия расширения GitLab Workflow, 3.36.0, поддерживает настройку через переменные окружения. Использование этих переменных позволяет настроить аутентификацию всего один раз. Затем каждый инстанс VS Code может пройти аутентификацию, даже если предыдущий инстанс VS Code был удалён.

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

Закреплённая панель инструментов при редактировании вики-страниц

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

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

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

Спасибо Mehul Sharma за это полезное улучшение!

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

Просмотр дерева файлов при ревью в Visual Studio Code

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

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

Начиная с релиза версии 3.37.0 в расширении GitLab Workflow теперь можно переключать вид файлов между списком и деревом. Дерево содержит дополнительную информацию о пути, которая помогает сориентироваться в изменениях и создать полную картину мерж-реквеста.

Спасибо Liming Jin за этот потрясающий вклад!

View file tree when reviewing in Visual Studio Code

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

Извлекайте метаданные для пакетов npm

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Package

Вы можете использовать реестр пакетов GitLab для публикации и совместного использования пакетов npm. Однако до этого релиза GitLab не извлекал все соответствующие метаданные, подробно описанные в файле package.json. Это особенно проблематично, когда npm или Yarn полагаются на одно из этих полей. Например, поле bin определяет исполняемые файлы для вставки в $PATH. Без этого поля ваши исполняемые файлы не будут работать.

Начиная с этого релиза GitLab теперь извлекает сокращённые метаданные для пакетов npm, включая поле bin и другие. Если вы публикуете пакеты, которые содержат один или несколько исполняемых файлов для установки в $PATH, теперь вы можете положиться на безупречную работу реестра пакетов GitLab.

Обратите внимание, что это изменение относится только к новым пакетам. Все пакеты, уже опубликованные в реестре, нужно обновить, чтобы изменения вступили в силу. Кроме того, GitLab извлекает только сокращённые метаданные, что исключает некоторые поля. В тикете GitLab-#344107 ведётся работа над тем, чтобы добавить извлечение полного набора метаданных.

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

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

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure

Статическое тестирование безопасности приложений (SAST) в GitLab включает в себя множество анализаторов безопасности, активно управляемых, поддерживаемых и обновляемых командой статического анализа GitLab. Ниже представлены обновления анализаторов, выпущенные в релизе 14.5; в них были исправлены ошибки, было добавлено расширенное покрытие и прочие улучшения.

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

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

Поддержка тоннелей CI/CD для Omnibus установок

(self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure

Поддержка тоннеля CI/CD для инстансов с самостоятельным управлением, установленных через GitLab Charts, была представлена ​​в 14.0 и с тех пор значительно улучшилась. В этом релизе мы добавили также поддержку установок Omnibus.

Тоннель CI/CD обеспечивает безопасное соединение из GitLab CI/CD с вашими кластерами Kubernetes с помощью GitLab Kubernetes Agent. Это позволяет пользователям продолжать использовать существующие инструменты и процессы, а также использовать GitLab Kubernetes Agent для надёжной и безопасной настройки.

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

Теперь создавать инциденты можно только с ролью Reporter и выше

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Monitor

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

Restrict incident creation permissions to at least the Reporter role

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

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

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

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

В GitLab 14.5 мы поработали над тикетами, проектами, майлстоунами и многим другим! Мы особо выделяем следующие изменения в GitLab 14.5:

Посмотрите все улучшения удобства использования в GitLab 14.5


Полный текст релиза и инструкции по обновлению/установке вы можете найти в оригинальном англоязычном посте GitLab 14.5 released with infrastructure as code security scanning and group-level merge request approvals.

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