Вышел релиз GitLab 13.10 с улучшениями для администраторов и управлением уязвимостями

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

GitLab 13.10 уже доступен! В этом месяце мы сосредоточили наше внимание на масштабируемости и удобстве управления продуктом, чтобы вы могли итерировать и вводить новшества быстрее, безопаснее и с меньшим количеством проблем. Релиз 13.10 предлагает улучшения администрирования для масштабирования DevOps в вашей организации, проверку целостности пакетов для аварийного восстановления с Geo, автоматизацию управления уязвимостями для большей эффективности и согласованности в обеспечении безопасности и, как и всегда, множество фантастических вкладов от нашего обширного сообщества. Это — лишь некоторые из более чем 40 новых фич и улучшений в данном релизе.

Улучшения для DevOps

Управление организацией с растущим DevOps — непростая задача. GitLab 13.10 представляет несколько новых фич для автоматизации рутинных задач, повышения эффективности и масштабирования DevOps в организации без потери контроля над этим процессом. Мы развили поддержку метрик DORA с новым API для отслеживания времени внесения изменений на уровне проекта, а также добавили доступ через API к метрикам частоты развёртываний на уровне группы (ранее доступным только для одиночных проектов), чтобы вы могли легко отслеживать и идентифицировать блокеры в пределах нескольких проектов.

Для случаев, когда проблемы всё же возникают, мы добавили инструменты, которые помогут вам интегрировать и обрабатывать оповещения от нескольких инструментов мониторинга. 13.10 также упрощает аварийное восстановление для пользователей, использующих GitLab Geo, благодаря автоматической проверке целостности данных реплицируемых реестров пакетов и репликации групповых вики-страниц. И, наконец, мы чрезвычайно рады объявить о том, что оператор обработчика заданий GitLab для Red Hat OpenShift теперь в общем доступе. Это делает GitLab доступным для большего количества платформ!

Развиваем управление уязвимостями

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

Вклады от нашего сообщества

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

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

Спасибо Daniel Schömer за работу над более единообразным UX в настройках проекта!

Спасибо Felix Haase за его работу над клонированием проектов из Visual Studio Code!

Спасибо @KevSlashNull за добавление возможности открывать проекты в VS Code в один клик!

GitLab — это открытая платформа для DevOps, и одна из основных причин этого — вы. Только в релизе 13.10 мы добавили более 250 невероятных вкладов от нашего сообщества. Выбрать одного MVP было нелегко; спасибо каждому из вас за ваш профессионализм и упорный труд.

И это ещё не всё!

Некоторые из наших любимых улучшений в 13.10 включают:

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

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

GitLab MVP badge

MVP этого месяца — Diego Louzán

Режим администрирования не появился бы без героических и неустанных усилий Diego Louzán. Эта фича была в разработке целый год! С помощью неё администраторы GitLab могут использовать свою учётную запись без прав администратора, пока не пройдут повторную аутентификацию, чтобы включить режим администрирования. Это обеспечивает дополнительный уровень защиты для операций администрирования и будет действительно полезно в отраслях с большим количеством жёстких ограничений. От имени администраторов всего мира и за все бессонные ночи, которых мы избежим, мы снимаем перед Diego шляпу!

Diego отправил целый пакет изменений, и внимательно отнёсся ко всем пожеланиям и идеям сверх того, что было крайне необходимо. Он крайне плодотворно сотрудничал с ревьюверами и мейнтейнерами над этим огромным обновлением, затрагивающим бэкенд, фронтенд, базу данных и документацию. До релиза 13.11 режим администрирования будет переключаемой фичей, но так как Diego завершил эту фичу к 13.10, мы хотим уже сейчас отметить его заслуги!

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

Оператор обработчика заданий GitLab для Red Hat OpenShift в общем доступе

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

Оператор обработчика заданий GitLab для платформы контейнеров Red Hat OpenShift перешёл в общий доступ! Платформа контейнеров Red Hat OpenShift — веб-консоль для администраторов кластеров OpenShift, где они могут найти и выбрать операторы для установки на своём кластере. Чтобы установить обработчик заданий на OpenShift, воспользуйтесь этим оператором обработчиков заданий GitLab, теперь доступном на стабильном канале в OperatorHub. Мы также разрабатываем оператор для GitLab, так что следите за будущими описаниями релизов, мы обязательно об этом напишем.

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

Интегрируйте любой инструмент мониторинга с GitLab

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

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

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

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

Integrate any IT alerting tool with GitLab

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

Новая метрика DORA4: время внесения изменений

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

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

DORA4-based lead time for changes

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

Создавайте релиз из существующего тега

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

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

Create a release from an existing tag

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

Задавайте тип окружения в .gitlab-ci.yml

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

В релизе 13.10 мы представляем новое ключевое слово для .gitlab-ci.yml, deployment_tier, которое позволит вам явно указать тип вашего окружения. Поддерживаемые типы — production, staging, testing, development и other. Это первый шаг в сторону управления окружениями на уровне группы и создания разделения обязанностей при развёртывании в продакшен-окружения. Ранее названия окружений были ограничены традиционно используемым соглашением о том, как нужно называть окружения, эти же названия использовались в том числе для определения различных метрик в GitLab, таких как Dora4 и аналитика цикла разработки. Новая конфигурация даёт пользователям гораздо больше гибкости при создании окружений.

Define environment type in .gitlab-ci.yml

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

Экран настройки фаззинг-тестирования API

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

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

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

API fuzz testing graphical configuration screen

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

Просматривайте детали тикета Jira в GitLab

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

Хорошая новость для тех, кто использует GitLab вместе с Jira: теперь вы можете просматривать детали тикета прямо в GitLab! Этот MVC позволяет посмотреть подробную информацию, метки и комментарии к задаче, предоставляя разработчикам возможность работать над тикетами Jira, не покидая GitLab.

Наша цель — минимально отвлекать разработчиков от работы в GitLab в течение рабочего дня, и теперь у вас на одну причину меньше покидать его.

В GitLab 13.10 эта фича доступна как переключаемая фича; в релизе 13.11 она станет включена по умолчанию.

View Jira issue details in GitLab

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

Улучшения Jira Cloud Application для GitLab.com

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

Теперь вы можете синхронизировать ваши данные проекта Jira Cloud с GitLab, используя приложение GitLab.com для Jira Cloud, доступное на Atlassian Marketplace. Этот плагин отображает информацию о ваших ветках, коммитах, мерж-реквестах, развёртываниях и переключаемых фичах на панели разработки Jira. Вы можете использовать его, чтобы проверить текущий статус выполнения работ, а затем быстро вернуться назад к страницам в GitLab.

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

Improvements to the GitLab.com for Jira Cloud Application

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

Используйте ‘parallel: matrix’ с триггер-заданиями

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

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

Use 'parallel: matrix' with trigger jobs

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

Поддержка API частоты развёртываний на уровне группы

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

В одном из прошлых релизов мы уже добавили поддержку отображения частоты развёртываний для проектов (это было в тикете gitlab#279039). В данном релизе мы также добавили к этому API частоту развёртываний в группе. Это позволит пользователям получить полное представление о частоте развёртываний по всем проектам и командам, чтобы более точно оценить свою эффективность.

Group-level API support for Deployment Frequency

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

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

Режим администрирования требует повторной аутентификации для выполнения задач с правами администратора

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

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

Admin Mode: Re-authenticate for GitLab administration

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

Горизонтальная навигация в аналитике цикла разработки

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

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

Horizontal navigation for Value Stream Analytics

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

Поиск и автодополнение по полному имени при упоминании пользователей в комментариях

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

Пользователи GitLab обычно не используют своё полное имя в качестве имени пользователя. Это усложняет поиск людей, которых вы хотите упомянуть через @, так как автодополнение ранее не позволяло искать одновременно по полному имени и по имени пользователя. Мы работаем над тем, чтобы сделать автодополнение умнее: первым делом мы упростили для вас поиск людей по полному имени или имени пользователя.

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

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

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

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

С новыми параметрами issues_template и merge_requests_template, доступными для API проектов вы сможете автоматизировать настройку и поддержание этих шаблонов в актуальном состоянии для всех проектов.

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

Клонируйте проекты в Visual Studio Code

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

Иногда вам требуется работать с репозиториями, которых нет на вашем локальном ПК. Ранее, чтобы клонировать проект при работе с Visual Studio Code (VS Code), вам требовалось сделать несколько шагов: найти проект в GitLab, скопировать его ссылку для клонирования, клонировать его на ваш ПК и наконец открыть в VS Code.

С расширением GitLab Workflow теперь вы сможете использовать команду Git: Clone в VS Code, чтобы делать всё это, не покидая редактор, в котором вы работаете. Используйте эту команду для поиска по проектам в GitLab и клонируйте их, чтобы как можно быстрее начать работать над проектом.

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

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

Уведомление участников мерж-реквеста о том, что мерж-реквест отмечен как готовый

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

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

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

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

Отображение количества файлов в сниппете при просмотре списка сниппетов

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

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

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

Show number of files in a snippet in the list view

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

Обработчик заданий GitLab 13.10

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

Мы также выпускаем версию 13.10 обработчика заданий GitLab! Обработчик заданий GitLab Runner — это легковесный, хорошо масштабируемый агент, который обрабатывает ваши задания сборки и отправляет результаты обратно в инстанс GitLab. Обработчик заданий GitLab работает в связке с GitLab CI/CD — сервисом непрерывной интеграции с открытым исходным кодом, поставляемым вместе с GitLab.

Что нового:

Документация по обработчику заданий GitLab.

Менее строгие требования к названию пакетов npm

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

Ранее при публикации пакетов npm в реестр пакетов вашего проекта вам приходилось называть ваш пакет по шаблону @scope/package-name, где scope — область действия пакета — должна точно совпадать с корневым пространством вашего проекта, вплоть до заглавных и строчных букв. Например, если путь вашего проекта — /Acme/project_a, при публикации пакета в качестве области действия нужно было указать Acme.

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

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

Следует отметить, что для использования конечной точки на уровне инстанса всё ещё нужно использовать точный (с учётом регистра) корень пространства имён в качестве области действия.

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

Использование прокси зависимостей с ‘containerd’ и Docker 20+

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

Прокси зависимостей GitLab — это локальный прокси, который вы можете использовать для ваших часто запрашиваемых образов Docker Hub. В случае CI/CD прокси зависимостей получает запрос и возвращает образ из реестра, работая как кэш. Это помогает уменьшить затраты времени на CI и повысить надёжность.

Однако ранее вы не могли загружать образы по хэшу (digest), который является неизменяемым идентификатором и гарантирует, что вы используете нужную версию определённого образа и тега. Так как containerd и Docker 20+ зависят от загрузки pull-by-digest, это значило, что многим из вас не удавалось пользоваться прокси зависимостей.

Мы рады сообщить, что теперь вы можете загружать образы контейнера из Docker Hub по хэшу. Вы можете использовать прокси зависимостей, добавляя ссылку к вашему файлу .gitlab-ci.yml, вручную загружая образ через командную строку, или используя Dockerfile. Посмотрите документацию и узнайте, как тратить на сборки меньше времени.

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

Фаззинг-тестирование API поддерживает файлы OpenAPI v3

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

Фаззинг-тестирование API теперь поддерживает файлы спецификации OpenAPI v3. Это позволяет вам напрямую использовать спецификации OpenAPI, которые уже есть в вашем проекте, без необходимости понижать их до уровня OpenAPI v2. Передавайте файлы OpenAPI v3 таким же образом, как вы передавали файлы OpenAPI v2, в переменной FUZZAPI_OPENAPI в вашем файле .gitlab-ci.yml.

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

Кликабельные ссылки на файл и номер строки в отчётах по уязвимостям

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

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

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

Clickable file and line number links on Vulnerability Report

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

Поддержка Java 15 для сканирования зависимостей

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

Пользователи, использующие Java 15, будут рады узнать, что теперь для них есть поддержка наших сканеров зависимостей. Чтобы воспользоваться сканированием зависимостей, настройте переменную окружения DS_JAVA_VERSION.

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

Сворачиваемый список развёрнутых окружений в мерж-реквестах

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

Мерж-реквесты являются основным источником информации для разработчиков. В этой фиче есть всё, что нужно разработчику, чтобы коммитить изменения кода, объединяться для совместной работы, проводить ревью кода и мержить код в целевую ветку.

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

Collapsible list of deployed environments in merge requests

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

Настройка сервера агента Kubernetes как часть общей настройки GitLab

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

Хотя администраторы GitLab уже могли устанавливать сервер агента Kubernetes (Kubernetes Agent Server) вместе с их инстансом GitLab, до сих пор у них не было многих настроек. С этим релизом администраторы GitLab получат возможность определять внешний и внутренний URL сервера агента, а также статусы работы (включён или отключён) в основном файле конфигурации GitLab (config/gitlab.yaml). GitLab будет использовать эти настройки для каждого взаимодействия с сервером агента.

Сервер агента Kubernetes теперь также доступен на GitLab.com. Мы постепенно делаем эту фичу доступной для большего числа проектов.

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

Geo поддерживает репликацию вики групп

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

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

На текущий момент мы не поддерживаем верификацию этих данных, но планируем добавить эту поддержку в будущем.

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

Geo верифицирует реплицированные файлы пакетов

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

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

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

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

Автоматическое отключение статуса занятости

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

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

Automatically remove your Busy status

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

Возможность требовать установки срока действия ключа SSH

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

Для ключей SSH уже была возможность задавать дату истечения срока действия ещё с релиза GitLab 12.9, однако ранее у вас не было возможности требовать обязательного наличия этой даты.

Теперь администраторы могут требовать обязательного наличия даты истечения срока действия для ключей SSH в своих инстансах GitLab. При этом все ключи с просроченным сроком действия сразу станут недействительными.

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

Просмотр эпиков на доске эпиков (MVC)

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

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

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

Мы выпускаем эту раннюю версию досок эпиков в 13.10, чтобы уже начать собирать отзывы пользователей. Мы продолжим разработку с MVC 2 и MVC 3, что позволит достичь соответствия с досками задач.

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

View epics on a board (MVC)

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

Автоматическая перенастройка целей мерж-реквестов

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

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

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

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

Прямая ссылка на строки кода

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

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

Чтобы получить ссылку на определённую строку, нажмите на иконку рядом с номером строки слева от кода или добавьте #L и номер строки к URL редактирования. Ссылка откроет редактор, прокрутит до строки и выделит её. Это работает в однофайловом редакторе, в Web IDE и в редакторе конвейеров!

Вы даже можете создать ссылку на несколько строк, добавив к ней целый диапазон, например #L87-98, даже если пользовательский интерфейс (пока) не поддерживает создание таких ссылок.

Deep link directly to lines of code

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

Открывайте проекты в Visual Studio Code

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

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

При нажатии выпадающего меню Clone для проекта теперь вы можете открыть проект в Visual Studio Code (VS Code). Клонирование теперь происходит в один клик: склонируйте проект, а затем сразу же начинайте работу в VS Code.

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

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

Просмотр ваших сниппетов на snippets.gitlab.com

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

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

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

Более удобные результаты тестов в мерж-реквесте

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

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

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

Виджет отчётов по метрикам (планов Premium и Ultimate) теперь отсортирован таким образом, что новые, изменённые и неизменённые метрики расположены вместе, что делает более интуитивно понятным процесс поиска метрик, изменившихся в рамках мерж-реквеста.

Merge Request test summary usability improvements

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

Предопределённые переменные CI/CD для временных меток запуска задания и создания конвейера

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

Ранее, если вы хотели указать точную дату и время запуска задания или создания конвейера, вам нужно было получить эти временные метки в ваших скриптах. Теперь они легко доступны в виде предопределённых переменных CI/CD CI_JOB_STARTED_AT и CI_PIPELINE_CREATED_AT, предоставленных в формате ISO 8601 и часовом поясе UTC.

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

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

Лёгкий доступ к командам настройки и установки Gradle

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

Вы можете использовать реестр пакетов GitLab для публикации зависимостей Java с помощью Maven или Gradle. После публикации вы можете перейти к пользовательскому интерфейсу реестра пакетов, чтобы просмотреть пакет и связанные с ним метаданные. При просмотре конкретного пакета у вас есть доступ к сниппетам для настройки и установки пакета с помощью Maven. Но ранее мы не предоставляли соответствующие команды для пользователей Gradle.

Теперь вы можете копировать команды Maven и Gradle, что делает вашу работу более эффективной. Просто перейдите в реестр пакетов вашего проекта или группы, выберите конкретный пакет Java и скопируйте сниппеты. Groovy оправдывает своё название, не так ли?

Спасибо @Cromefire_ за помощь в доработке контента и дизайна для этой фичи!

Easily access Gradle setup and install commands

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

Переопределение параметров фаззинг-тестирования API

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

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

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

Настройка этих атрибутов улучшает качество теста и гарантирует его качественное выполнение.

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

Интерактивные элементы на графике тенденций уязвимостей

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

В релизе 13.6 мы представили панель безопасности проекта с графиком тенденций уязвимостей. На этом графике представлены исторические данные о количестве уязвимостей за последние 365 дней с указанием степени серьёзности. График даёт ценную информацию о тенденциях в области безопасности проекта.

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

Add icons to the Vulnerability Trends Chart

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

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

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

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

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

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

Обновление статусов нескольких уязвимостей

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

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

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

Vulnerability bulk status updates

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

Настройки уведомлений для мержа при успешном завершении конвейера

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

Ранее, когда была включена настройка мерж при успешном завершении конвейера (MWPS), все участвующие в мерж-реквесте пользователи получали уведомление при этом событии. С GitLab 13.10 теперь вы можете отказаться от подписки на события уведомлений MWPS с помощью специальной пользовательской настройки, позволяющей уменьшить ненужные оповещения. Спасибо Ravishankar Gnanaprakasam из нашего сообщества за этот отличный вклад!

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

Оценка размера кластера Elasticsearch в расширенном поиске

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

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

Чтобы упростить расчёты, мы добавили команду Rake, которая объединяет весь проиндексированный контент и умножает полученный размер на 0,5, чтобы получить приблизительный размер, рекомендуемый для Elasticsearch.

Elasticsearch cluster size estimate in Advanced Search

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

Geo по умолчанию доверяет вторичному сайту

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

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

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

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

Улучшения для GitLab chart

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

Документация по чартам GitLab.

Запуск GitLab на небольших инстансах с 2 ГБ оперативной памяти

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

GitLab можно развернуть с использованием одной из предлагаемых эталонных архитектур, рассчитанных на от нескольких сотен до десятков тысяч пользователей. Однако многие пользователи предпочитают запускать GitLab только для личного использования или для небольших команд. В таких ситуациях может быть лучше запустить GitLab в небольшом облачном инстансе в целях экономии или, например, использовать Raspberry PI 4 с 2 ГБ оперативной памяти.

Мы обновили нашу документацию, включив в неё подробные инструкции по запуску GitLab в окружении с ограниченным объёмом памяти с минимум 2 ГБ оперативной памяти и 1 ГБ подкачки. В этой конфигурации есть несколько волевых решений для уменьшения потребления памяти, например запуск Puma в одиночном режиме (экономит примерно 300–400 МБ) и отключение стека мониторинга (экономит ещё 200 МБ). Мы также изменили несколько других настроек для Gitaly и то, как GitLab обрабатывает выделение памяти.

Эта конфигурация позволяет GitLab поддерживать до 5 разработчиков с отдельными проектами Git размером не более 100 МБ. Для групп большего размера и для случаев, когда эти настройки неприемлемы, мы по-прежнему рекомендуем минимум 4 ГБ оперативной памяти (до 500 пользователей) для лучшей производительности. Дополнительные инструкции можно найти в руководстве по эталонным архитектурам.

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

Исправленные баги

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE)

Вот список самых значительных исправленных багов в релизе 13.10:

Посмотрите весь список исправленных багов в GitLab 13.10.

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

(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE)

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

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

В GitLab 13.10 мы добавили улучшения интерфейса для тикетов, проектов, майлстоунов и многого другого. Вот лучшее из GitLab 13.10:


Полный текст релиза и инструкции по обновлению/установке вы можете найти в оригинальном англоязычном посте: GitLab 13.10 released with Admin Enhancements and Vulnerability Management.

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