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

Вышел релиз GitLab 13.5 со сканированием безопасности мобильных приложений, вики-страницами групп, общим реестром пакетов и многими другими классными фичами!

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

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

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

Вклады сообщества — один из лучших видов совместной работы! Один из наших пользователей использовал возможности сканирования безопасности в GitLab, чтобы его команда могла находить и исправлять уязвимости. Они также захотели иметь подобные инструменты для мобильных приложений под iOS и Android. С помощью руководства по интеграции они добавили MobSF в конвейеры (в русской локализации GitLab «сборочные линии») мерж-реквестов и в панель безопасности вместе с SAST и всеми другими результатами сканирований безопасности в GitLab.

За этот вклад Brian Williams и команда H-E-B Digital в этом месяце становятся MVP! Новое покрытие SAST для мобильных платформ, в сочетании с нашими существующими фаззинг-тестированиями для проектов на Swift и Java, теперь предоставляет практически полноценное решение по тестированию безопасности мобильных приложений.

Чтож, это должно работать в обоих направлениях. Поэтому с релизом 13.5 мы официально закончили перемещение подключаемых фич (feature flags) в Core, открывая их код для более активного вовлечения сообщества. Это завершает ещё один шаг из нашего плана по перемещению 18 фич в открытый исходный код (оригинальная статья, перевод).

Вики-страницы для групп и многое другое

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

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

Чёткое представление может заменить тысячу слов! Во время инцидента может быть непросто понять последовательность событий по обсуждениям. С новым представлением обсуждений в инцидентах вы можете просматривать последовательность обсуждений во времени.

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

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

Шаблоны помогают внедрять крутые штуки и обеспечивать согласованность кода среди команд. В этом релизе вы найдёте новые шаблоны, такие как шаблон для развёртывания в AWS EC2, новый CI/CD шаблон для Terraform и улучшения в настройке SAST через UI, которые упрощают использование SAST-шаблона GitLab CI/CD для пользователей, не имеющих опыта работы с CI/CD.

Совместная работа и в других инструментах

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

Конечно же, это не всё!

Это всего лишь несколько новых фич и улучшений производительности из этого релиза. Об остальных читайте далее.

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

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

GitLab MVP badge

MVP этого месяца — Brian Williams (H-E-B Digital)

Команда инженеров по безопасности из H-E-B Digital внедрила новую интеграцию для тестирования безопасности SAST в GitLab, которая добавляет поддержку статического тестирования безопасности приложений (Static Application Security Testing, SAST) для мобильных приложений. Этот вклад обеспечивает очень востребованную возможность SAST-сканирования мобильных приложений для iOS и Android, написанных на Objective-C, Swift, Java и Kotlin.

Мы благодарим команду H-E-B Digital за этот огромный вклад, который позволит всем пользователям GitLab сканировать свои мобильные приложения на наличие проблем с безопасностью. Прочитайте нашу статью о том, как вклады от сообщества помогают нам улучшить работу с безопасностью в GitLab.

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

Вики-страницы для групп

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

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

В Gitlab 13.5 мы с радостью представляем вам вики-страницы для групп! С 680 голосами «за», это была самая популярная фича за всю историю GitLab. Несмотря на такой высокий спрос, перенос настолько большой функциональности с проектного на групповой уровень был нетривиальной задачей. Мы упорно трудились над ней в течение последнего года, и теперь не можем дождаться, когда вы сможете начать её использовать и рассказать нам, что вы думаете.

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

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

Group wikis

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

Устанавливайте GitLab Kubernetes Agent с помощью Omnibus GitLab

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

В прошлом месяце мы представили GitLab Kubernetes Agent, агент для Kubernetes (оригинальная статья, перевод) для самостоятельных инстансов GitLab, развёрнутых с помощью Helm.

В этом релизе добавлена поддержка официального пакета Linux. Агент для Kubernetes координирует развёртывание, запрашивая новые изменения у GitLab, вместо того, чтобы GitLab самостоятельно отправлял обновления на кластер. Вы можете узнать больше о том, как сейчас работает Kubernetes Agent, и наши планы по развитию направления Kubernetes в GitLab, если вам интересно, что вас ждёт дальше.

Install the GitLab Kubernetes Agent with Omnibus GitLab

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

Данные по стоимости обслуживания кластеров в GitLab

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Configure

Многие пользователи создавали свои собственные скрипты, чтобы лучше представлять стоимость обслуживания кластера. Начиная с этого релиза вы можете просмотреть информацию о стоимости обслуживания вашего кластера и использовании ресурсов в пользовательском интерфейсе GitLab. Наша интеграция построена на модели Kubecost cost-model и обеспечивает подробное описание различных уровней ваших кластеров. Используйте предоставленный шаблон стоимости, чтобы узнать ваши ежемесячные траты на ноды и стоимость ваших приложений, управляемых GitLab, или создавайте более сложные пользовательские панели с помощью девяти метрик, предоставленных Kubecost, и возможностей для запросов Prometheus от GitLab.

View cluster cost management data in GitLab

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

Подключение и отключение общих обработчиков заданий инстанса в группе

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify

GitLab SaaS включает в себя обработчики заданий (runners) для Linux и Windows — простые в использовании агенты для выполнения заданий на CI/CD конвейере в GitLab. Эти обработчики, которые отображаются в пользовательском интерфейсе GitLab.com как “shared runners”, включены по умолчанию и могут быть отключены отдельно для каждого проекта. Однако, некоторые организации требуют, чтобы их CI/CD задания работали только на собственных обработчиках заданий, и в таких случаях отключение использования общих обработчиков инстанса в каждом проекте приводило к ненужным затратам на администрирование.

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

Enable instance-level shared runners when viewing groups

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

Запускайте вложенные или нижестоящие конвейеры вручную

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify

Раньше было невозможно настроить задания-триггеры на ожидание ручного действия. Это усложняло настройку запуска нижестоящих (downstream) и вложенных (child) конвейеров по нажатию пользователя на них.

В этом релизе мы добавили возможность использования ключевого слова when: manual для заданий-триггеров. Используйте его, чтобы заставить задания-триггеры ожидать ручного запуска через кнопку play. Эта возможность предоставляет вам больше контроля над вашими конвейерами: теперь они будут запускаться только тогда, когда вы захотите.

Trigger downstream or child pipelines with manual jobs

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

Запускайте рабочее пространство Gitpod из интерфейса GitLab

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create

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

С помощью интеграции Gitpod в GitLab вы сможете запустить ваше рабочее пространство Gitpod (Gitpod Workspace) непосредственно из интерфейса GitLab. При редактировании проекта в GitLab новый выпадающий вариант позволит открыть этот проект в GitPod:

Launch Gitpod from the GitLab UI

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

Спасибо Cornelius Ludmann из Gitpod за эту фичу!

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

Сниппеты с несколькими файлами

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create

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

В GitLab 13.0 мы заложили основу для этой фичи, добавив управление версиями сниппетов (оригинальная статья, перевод) на основе Git-репозитория. Контроль версий и история, которую он предоставляет, — важная часть контекста, который необходимо учитывать при изучении кода или для понимания его назначения, но это может быть ещё не всё.

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

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

Snippets with multiple files

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

Общий реестр пакетов

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

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

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

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

Присоединяйте бинарные файлы к релизам

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

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

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

Attach binary assets to Releases

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

Гибкая стратегия подключения переключаемых фич

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

Сейчас при использовании стратегии percent rollout можно выкатить выбранную переключаемую фичу (feature flag) на некий процент пользователей, определяемый только идентификатором пользователя. Это может стать ограничением: например, анонимные пользователи не могут быть охвачены этой стратегией.

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

Feature Flags flexible rollout strategy

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

Переключаемые фичи доступны для всех планов

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

В GitLab 11.4 мы впервые представили переключаемые фичи (оригинальная статья, перевод). В GitLab 12.2 были добавлены стратегии подключения фич по проценту (оригинальная статья, перевод) и по ID (оригинальная статья, перевод) пользователей. В GitLab 13.1 мы ввели списки пользователей (оригинальная статья, перевод) и поддержку нескольких стратегий (оригинальная статья, перевод) для каждого окружения.

Ранее в этом году мы пообещали перенести 18 фич в наш план Core c открытым исходным кодом (оригинальная статья, перевод), и сделали первый шаг в этом направлении, перенеся переключаемые фичи в план Starter в прошлом релизе.

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

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

Шаблон для развёртывания в AWS EC2

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

Чтобы помочь вам более эффективно развёртывать в AWS Elastic Cloud Compute (EC2), мы создали шаблон, который поможет начать работу. Этот шаблон позволит вам подготовить собственную инфраструктуру, воспользовавшись для начала API AWS CloudFormation. Затем ранее собранный артефакт отправляется в корзину AWS S3 и контент развёртывается в инстанс AWS EC2.

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

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

Настройка правил SAST и поиска секретных ключей

(ULTIMATE, GOLD) Стадия цикла DevOps: Secure

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

Настраиваемые наборы правил можно задавать через добавление в папку .gitlab нового файла с именем sast-ruleset.toml или secret-detection-ruleset.toml, который содержит настройки, записанные в правильной нотации. Вы можете узнать больше об этом формате файла и посмотреть примеры в нашей документации для настраиваемых наборов правил SAST и поиска секретов. В будущем мы постараемся обеспечить поддержку для импорта пользовательских наборов правил в файлы .gitlab-ci.yml.

Customizing SAST & Secret Detection rules

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

Поддержка SAST для мобильных приложений под iOS и Android

(ULTIMATE, GOLD) Стадия цикла DevOps: Secure

SAST в GitLab теперь поддерживает мобильные приложения, включая приложения под iOS, написанные на Objective-C и Swift, а также приложения под Android, написанные на Java и Kotlin, благодаря Mobile Security Framework (MobSF). Сейчас этот анализатор поддерживает только анализ исходного кода, но в ближайшем будущем мы собираемся добавить поддержку сканирования бинарных файлов .ipa и .apk.

Эта фича — ценный вклад от команды H-E-B Digital. Вы можете почитать больше о работе над GitLab Secure и посмотреть нашу документацию по интеграции сканирований безопасности.

SAST support for iOS and Android mobile apps

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

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

Кнопка удаления на вкладке SSH в хранилище учётных данных

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

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

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

Add Delete buttons to the SSH tab of the Credential Inventory

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

Неудачная попытка двухфакторной аутентификации отображается в событиях аудита

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

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

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

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

Токены доступа для проектов на GitLab.com

(BRONZE, SILVER, GOLD) Стадия цикла DevOps: Manage

В GitLab 13.3 мы добавили токены доступа к проектам для инстансов с самостоятельным управлением (оригинальная статья, перевод), что позволяет обеспечить доступ к проекту без необходимости добавлять нового пользователя.

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

Project access tokens for GitLab.com

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

Настройка подтверждения при регистрации нового пользователя

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

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

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

Автоматическое добавление списков заданий to-do и doing на новые доски

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Plan

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

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

Синхронизируйте итерации между подгруппами и проектами

(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Plan

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

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

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

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

Многоуровневая навигация по вики

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create

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

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

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

Deep-level wiki navigation

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

Добавляйте YouTube-видео через редактор статических сайтов

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create

В GitLab 13.5 появилась новая опция форматирования в WYSIWYG-режиме редактора статических сайтов, которая позволяет добавлять видео с YouTube всего в несколько кликов. Когда вы вводите либо полный URL, либо идентификатор видео в окне редактирования, редактор статических сайтов вставляет нужный блок HTML рядом с вашим курсором и показывает миниатюру видео в редакторе.

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

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

Одномерные матрицы параллельных заданий

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify

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

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

Посмотрите базовый пример применения этой фичи на практике — в нём запускаются три тестовых задания для разных версий Node.js. Вы можете применить этот подход к вашим сценариям использования и легко добавлять и удалять задания из конвейера:

One dimensional matrices example

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

Ограничение на парсинг юнит-тестов в одном отчёте

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify

Мы добавили ограничение числа тестов, которые можно распарсить из файлов в формате отчёта JUnit, загружаемых в одной сборке для использования в результатах тестов и отчётах по юнит-тестам. Для GitLab.com максимальное число тестов, которые будут распарсены, составляет 500 000 для всех файлов в формате отчёта JUnit в сборке.

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

Свёрнутые по умолчанию разделы в логах заданий

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify

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

Теперь вы можете так настроить логи заданий, чтобы они были свёрнуты по умолчанию. Просто добавьте [collapsed=true] к скриптам заданий в вашем файле конфигурации CI/CD, чтобы упростить просмотр логов.

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

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

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify

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

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

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

Больше информации по рецепту Conan на странице реестра пакетов

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Package

Вы можете использовать репозиторий GitLab Conan для публикации и распространения зависимостей C и C++. Однако, при использовании пользовательского интерфейса реестра пакетов для поиска или проверки зависимости было сложно различать разные версии одной зависимости. Пользовательский интерфейс показывал имя и версию, но не включал значения conan_user или conan_channel, которые часто используются для определения разных пакетов. Например, приведенный ниже рецепт (Conan recipe) отображался бы в пользовательском интерфейсе как Hello version 1.0.

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

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

Результаты сканирования безопасности на странице мерж-реквеста

(CORE) Стадия цикла DevOps: Secure

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

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

Improved merge request experience for security scans

Документация по отчётам SAST в формате JSON и оригинальный эпик.

Обновление анализатора сканирования SAST Node.js для использования njsscan v0.1.5

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Secure

Мы обновили наш анализатор SAST для Node.js, чтобы добавить больше 100 новых правил поиска. Также в этой версии правила поиска начинают использовать версию 0.1.5 njsscan и semgrep, который теперь поддерживается в нашем новом настраиваемом наборе правил SAST.

Update nodejs-scan SAST analyzer to use njsscan v0.1.5

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

Разрешение пушить в защищённые ветки через ключи развёртывания

(FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

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

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

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

Демон gitlab-pages теперь поддерживает сжатые файлы br

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

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

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

Возможность прикреплять майлстоуны групп к релизам проектов через API

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Release

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

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

Code Intelligence для проектов на Go в Auto DevOps

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Configure

Встроенный в GitLab code intelligence — это отличный способ добавить удобную навигацию по коду в вашем проекте, упрощая процесс ревью кода с такими полезными фичами, как сигнатуры типов, документация по символам и определения go-to.

В рамках GitLab 13.5 в Auto DevOps была добавлена автоматическая настройка и конфигурация code intelligence для проектов Go. После запуска нового конвейера вы сможете воспользоваться всеми преимуществами этой фичи GitLab. По мере увеличения количества языков, доступных в рамках стандарта LSIF, мы планируем добавлять их поддержку в Auto DevOps. Вы можете следить за обновлениями в соответствующем эпике.

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

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

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Configure

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

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

Просмотр списка агентов Kubernetes

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Configure

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

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

Временная шкала для комментариев к инцидентам

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Monitor

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

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

Timeline view for discussions on incidents

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

Экспериментальная поддержка Geo для высокой доступности PostgreSQL

(PREMIUM, ULTIMATE) Доступность

Patroni — это решение для обеспечения высокой доступности PostgreSQL. В GitLab он используется как экспериментальная альтернатива repmgr. Одним из ограничений использования repmgr с GitLab было то, что repmgr не позволяет настраивать высокую доступность резервного кластера PostgreSQL на вторичном Geo. Такая конфигурация требуется, когда вторичный кластер используется как часть стратегии аварийного восстановления. Она позволяет системным администраторам зеркалировать количество нод базы данных с первичного кластера на вторичный, так что после сбоя не потребуется предоставлять дополнительные узлы базы данных для восстановления высокой доступности.

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

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

Поддержка PostgreSQL 12

(CORE, STARTER, PREMIUM, ULTIMATE) Доступность

В GitLab 13.3 мы запустили начальную поддержку PostgreSQL 12 (оригинальная статья, перевод), и она стала доступна в качестве дополнительной версии в самостоятельных инстансах GitLab.

С GitLab 13.5 PostgreSQL 12 поддерживается полностью, включая развёртывания с кластерами Geo и PostgreSQL. Чтобы использовать в кластере PostgreSQL 12, вам придётся использовать Patroni для репликаций и аварийных переключений. Repmgr для репликации и аварийных переключений не поддерживается в версиях PostgreSQL 12 и далее. Дополнительную информацию о миграции с repmgr на Patroni вы можете узнать в статье Переключение с repmgr на Patroni. Инструкции по обновлению PostgreSQL в кластере Patroni описаны в документации Обновление мажорной версии PostgreSQL в кластере Patroni. Напоминаем, что обновление мажорной версии PostgreSQL в кластере Patroni вызовет простой — стоит на это заложить время.

С версии GitLab 13.6 PostgreSQL 12 будет версией по умолчанию для всех новых установок GitLab. Для обновлений существующих развёртываний GitLab она станет версией по умолчанию с релиза 13.7 — но с возможностью отказаться и остаться на PostgreSQL 11.

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

Удаление аналитик цикла разработки

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

Ранее в GitLab 13.3 мы представили создание нескольких настраиваемых аналитик (оригинальная статья, перевод) в аналитике цикла разработки (Value Stream Analytics, VSA). Теперь вы сможете удалить любую настроенную аналитику, созданную для вашей группы.

Delete a value stream

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

Фильтры по аналитике мерж-реквестов

(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Manage

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

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

Merge request analytics filter controls

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

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

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

Чтобы помочь организациям, использующим SAML SSO, с более точным контролем доступа, мы добавили владельцам групп возможность назначать пользователям роль с минимальным доступом. Пользователи с минимальными правами доступа могут посмотреть список групп в пользовательском интерфейсе или с помощью API. При этом они не могут посмотреть детали — например, ресурсы, проекты или подгруппы. Такую роль можно установить в качестве роли по умолчанию на время подготовки для SSO/SCIM или назначить существующему пользователю в группе верхнего уровня.

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

Возможность добавлять описания к требованиям

(ULTIMATE, GOLD) Стадия цикла DevOps: Plan

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

Пользователям, добавляющим подробную информацию и контекст, теперь будет проще управлять их требованиями: в «Управлении требованиями» в GitLab появился блок с описанием для каждого требования. Описание поддерживает разметку Markdown.

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

Удаление меток тикетов за один клик

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Plan

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

Remove issue labels with a single click

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

Контроль доступа к ветке приоритетнее, чем настройки владельцев кода

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

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

Теперь, если пользователь или группа обозначены как «допущенные пушить» (“allowed to push”) в настройках безопасности ветки, они могут пушить прямо в защищённую ветку, изменения в которой обычно нужно подтверждать владельцу кода. Настройки безопасности ветки — это главный механизм контроля доступа для проектов GitLab, поэтому эти настройки будут приоритетнее настроек владельцев кода.

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

Редактирование описания мерж-реквеста из редактора статических сайтов

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create

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

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

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

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

Помечайте мерж-реквест черновиком за один клик

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Create

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

Чтобы черновиками было проще пользоваться, мы добавили кнопки Отметить как черновик (Mark as draft) and Отметить готовым (Mark as ready) — они находятся в правом верхнем углу на странице мерж-реквеста (и не нужно заходить в режим редактирования). За один клик вы можете указать, что ваша работа в процессе и пока не готова к мержу, и наоборот.

Mark merge request as 'draft' with a single click

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

Возможность кэширования для неуспешных конвейеров

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify

Когда у вашего конвейера много внешних зависимостей (например, NPM), отсутствие кэширования зависимостей для неуспешных конвейеров — то же самое, что выбросить ценный кэш, который ваш код всё равно не изменит. Теперь вы сможете настраивать, сохранять ли кэш вне зависимости от статуса задания. Это может сохранить время и ресурсы при итерировании на неуспешном конвейере.

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

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

Отслеживание артефактов конвейера на странице использования хранилища

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Verify

После первого релиза артефактов конвейера (PipelineArtifacts), был тип артефактов, который использовал хранилище, но не отслеживался на странице квоты использования хранилища. Это означало, что у вас не было точного представления о том, сколько свободного места доступно в хранилище на самом деле.

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

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

Большие улучшения в правилах очистки реестра контейнеров

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Package

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

Есть два потенциальных тикета, которые могли вызывать проблемы. Первый это gitlab-#219915, этот тикет устранил баг, в котором некоторые правила, созданные через пользовательский интерфейс, не срабатывали, потому что в DeleteTagService не передавался user.

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

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

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

Улучшены данные от SAST о серьёзности уязвимостей C/C++ и NodeJS

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Secure

Статическое тестирование безопасности приложений в GitLab предоставляет данные о серьёзности найденных нашими сканерами уязвимостей, если эти данные доступны. Недавно мы обновили наши анализаторы для NodeJS (nodejsscan) и для C/C++ (flawfinder) и добавили в них поддержку данных о серьёзности. Эти данные помогут улучшить удобство использования и точность правил подтверждения безопасности, поскольку у меньшего количества уязвимостей будет серьёзность ‘Неизвестно’. В будущем мы дополним другие анализаторы, у которых отсутствуют метаданные об уязвимостях и добавим механизм включения настраиваемых метаданных об уязвимостях. Это позволит организациям адаптировать результаты к их программе управления рисками.

Improved SAST severity data for C/C++ and NodeJS vulnerabilities

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

Улучшения пользовательского интерфейса настроек SAST

(ULTIMATE, GOLD) Стадия цикла DevOps: Secure

В пользовательском интерфейсе настройки SAST в GitLab появилась поддержка дополнительных настроек: теперь здесь можно обновлять файлы GitLab CI/CD. Мы верим, что за безопасность отвечает вся команда, и что с помощью опыта такой настройки не-экспертам CI/CD станет проще начать использовать SAST в GitLab. Интерфейс поможет пользователю создать мерж-реквест, чтобы включить сканирование SAST с самыми современными подходами настройки: например, с использованием управляемого GitLab шаблона SAST.gitlab-ci.yml и правильным переопределением шаблона настроек.

Также этот интерфейс теперь поддерживает определённые настройки анализатора SAST, которые позволяют организациям адаптировать результаты SAST к их предпочтениям безопасности. Помимо этого, в интерфейсе настройки SAST теперь можно обновить существующие файлы .gitlab-ci.yml, что позволит использовать этот интерфейс на проектах, в которых уже настроены GitLab CI/CD. Также мы собираемся предоставить доступ к этому интерфейсу для пользователей GitLab Core в следующем релизе GitLab.

SAST configuration UI improvements

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

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

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

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

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

Allow for easier roll back from alerts page

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

Создание релиза с описанием образа по новому тегу

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

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

Create release with image digest on new tag

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

Инкрементное развертывание через AutoDevOps совместимо с Kubernetes 1.16

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

Кластеры в GKE были автоматически обновлены до Kubernetes версии 1.16 6 октября 2020. Мы обновили Auto DevOps, чтобы поддержать эту версию для инкрементных развёртываний — чтобы всё продолжало работать как надо. Это обновление затронет пользователей, которые непрерывно развёртывают на продакшен с помощью инкрементного развёртывания по расписанию, и тех, кто развёртывает на staging автоматически, а на продакшен — вручную.

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

Обновление Auto DevOps до Helm 3

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Release

Auto DevOps создан для того, чтобы обеспечить непревзойдённую простоту использования и предоставить пользователям самые современные подходы к безопасности прямо из коробки. До сих пор для Auto DevOps в окружениях Kubernetes требовалось установить на кластере 2 версию Helm. Это представляло угрозу безопасности, поскольку у Tiller появлялись права доступа root. С введением 3 версии Helm, Tiller больше не потребуется.

Текущая версия GitLab наконец-то поддерживает 3 версию Helm, так что вы можете быть уверены, что получаете самую свежую функциональность и обновления безопасности. В случае с кластером, управляемым GitLab, вы можете обновить вашу версию Helm по инструкции в документации ниже. Заметим, что поддержка Helm 2 прекратится примерно в ноябре 2020.

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

Вливайтесь быстрее с GitLab и Terraform

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Configure

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

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

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

(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: Monitor

Соглашения об уровне сервиса (Service level agreement, SLA) важно хранить для пользователей. Нарушения SLA могут повлиять на ваш доход и уменьшить удовлетворённость и уверенность пользователей. При этом очень сложно отслеживать SLA для большого количества активных инцидентов. Таймер SLA позволит вам настраивать длину конкретных SLA и отображать обратный отсчёт для каждого SLA в разделе инцидентов, чтобы вы могли удостовериться, что ваши SLA соответствуют вашему сервису, и ваши пользователи счастливы.

Service Level Agreement countdown timer for incidents

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

Просмотр списка интеграций уведомлений

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: Monitor

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

В вашем проекте GitLab теперь появился единый список интеграций уведомлений. Посмотреть и изменить настройки уведомлений можно в разделе Настройки > Эксплуатация > Уведомления (Settings > Operations > Alerts).

View alert integrations list

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

Geo реплицирует диффы внешних мерж-реквестов и файлы состояния Terraform

(PREMIUM, ULTIMATE) Доступность

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

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

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


Подробные release notes и инструкции по обновлению/установке вы можете прочитать в оригинальном англоязычном посте: GitLab 13.5 released with Mobile App Sec, Group Wikis, and more!

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