Вышел релиз GitLab 13.12 с запуском DAST по требованию и графиком частоты развёртывания

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

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

Управляйте безопасностью, пока она не начала управлять вами

Чтобы обеспечить безопасность ваших продакшен-окружений, мы выпускаем в общий доступ запуск сканирований DAST по требованию для всех пользователей планов Ultimate. Ручной запуск сканирований позволяет проверять уже развёрнутые приложения или API в любом из ваших настроенных окружений вне конвейера CI/CD (в русской локализации GitLab «сборочная линия»), то есть без изменений в коде и без мерж-реквестов (в русской локализации GitLab «запросы на слияние»).

Анализатор SAST от Semgrep для JavaScript, TypeScript и Python также теперь в общем доступе. Гибкий синтаксис правил Semgrep идеально подходит для оптимизации нашей фичи Пользовательские наборы правил для расширения и изменения правил выявления уязвимостей, что было частым запросом от пользователей GitLab SAST. Кроме того, у пользователей GitLab теперь есть доступ к открытым правилам Semgrep. Благодаря вкладу участника нашего сообщества @proletarius101 мы также расширяем тестирование безопасности мобильных приложений для поддержки бинарных файлов .ipa (iOS) и .apk (Android), в дополнение к уже поддерживаемым файлам проектов Xcode и Android-манифестам.

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

Безопасность приложений — ключевое направление GitLab в этом году, и нам очень важна ваша обратная связь. Поскольку тенденции в разработке веб-приложений стремительно смещаются в сторону сложных вычислений на JavaScript и одностраничных приложений, мы столкнулись с потребностью в специально созданном инструменте для DAST, который обеспечивал бы большее покрытие тестами, чем традиционный поисковый робот на основе прокси-сервера. Мы предлагаем пользователям GitLab Ultimate попробовать бета-версию нового поискового робота на основе браузера. Такой робот должен предоставить для современных приложений гораздо большее покрытие безопасности тестами по сравнению с текущим роботом.

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

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

Для опытных пользователей CI/CD, которым требуется больше гибкости в создании конвейеров, мы добавили поддержку подстановочных символов в ключевом слове include:, благодаря чему вы сможете разбить файл .gitlab-ci.yml на несколько маленьких файлов для переиспользования и лучшей читаемости. Мы также представляем возможность определять переменные в правилах, что позволит вам настраивать переменные конвейера в зависимости от выполнения определённых условий. Создание сложных конвейеров означает, что между заданиями могут быть зависимости; граф конвейера теперь показывает зависимости между заданиями, что позволит отслеживать и лучше понимать ожидаемый порядок запуска заданий.

Информация для повышения степени внедрения DevOps

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

Аналитика цикла разработки (Value Stream Analytics) помогает определить, где ваш рабочий процесс неэффективен, и почему. В релизе 13.12 мы представляем разбивку на страницы и сортировку элементов рабочего процесса, что позволит легко визуализировать и сортировать работу на конкретных стадиях для определения узких мест. На графике «дней до завершения» (Days to Completion) теперь отображается среднее время выполнения элементов рабочего процесса, что поможет определить значимые тенденции.

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

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

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

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

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

Присоединяйтесь в конце июня к REMOTE от GitLab, чтобы узнать о будущем работы и культуры.

GitLab MVP badge

MVP этого месяца — Lee Tickett

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

Lee также добавил два мерж-реквеста для улучшения GraphQL API: один для отображения таймлогов мерж-реквеста и второй для поддержки поиска мерж-реквестов через запрос GraphQL.

Спасибо за эту потрясающую работу, Lee! 🙌

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

Запуск DAST-сканирований по требованию

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

После нескольких месяцев работы мы счастливы объявить, что запуск сканирований DAST (Dynamic Application Security Testing, динамическое тестирование безопасности приложений) по требованию вышел в общий доступ! Он готов к использованию всеми, кому требуется просканировать уже развёрнутое приложение или API вне задания на конвейере. С релизом 13.11 мы добавили в профили DAST-сканирований сайтов по требованию возможность указывать авторизационные данные, исключать URL-адреса, добавлять дополнительные заголовки запросов и переключаться между сканированием веб-приложений и API. И это в дополнение к сохранению сканирований для удобного переиспользования, добавленному в релизе 13.9, и возможности выбора ветки, с которой связывается сканирование, добавленной в релизе 13.10! Мы верим, что такой набор фич удовлетворяет потребности большинства пользователей GitLab.

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

On-demand DAST GA launch

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

Полезная информация о GitLab CI/CD в редакторе конвейера

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

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

Useful GitLab CI/CD information in the pipeline editor

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

Поддержка подстановочных символов в YAML файлах конфигурации

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

Ключевое слово includes: в конвейерах CI/CD позволяет разбить один длинный файл .gitlab-ci.yml на несколько файлов меньшего размера, чтобы их было удобнее читать. Оно также облегчает повторное использование конфигурации в нескольких местах. Часто в один конвейер включают несколько файлов, и все они могут храниться в одном месте. В этом релизе мы добавили поддержку использования подстановочного знака * с локальным ключевым словом includes:. Теперь вы можете сделать свои секции includes: более динамичными, менее перегруженными и более удобными для чтения. Посмотрите, как мы сами исользуем это в GitLab.

Support wildcards when including YAML CI/CD configuration files

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

Отображение зависимостей заданий в графе конвейера

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

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

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

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

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

Скриншоты неуспешных тестов в отчёте

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

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

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

Failed test screenshots in test report

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

Оповещения о нарушениях качества кода в диффах мерж-реквестов

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

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

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

Code quality violation notices in MR diffs

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

График частоты развёртываний CI/CD на уровне группы

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

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

Group-level deployment frequency CI/CD chart

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

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

Счётчики групп и проектов в таблице пользователей администратора

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

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

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

Added total group and project count to admin users table

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

Улучшения метрик развёртывания в аналитике цикла разработки

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

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

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

Improvements to the deployment metrics in Value Stream Analytics

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

Просмотр и сортировка элементов рабочего процесса в аналитике цикла разработки

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

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

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

View and sort stage items in a value stream

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

Просмотр количества элементов рабочего процесса на каждой стадии цикла разработки

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

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

View the number of workflow items in a value stream stage

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

Виджет статуса конвейера в редакторе конвейера

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

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

Pipeline status widget in the pipeline editor

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

Запрет на повторную загрузку пакетов

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

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

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

Вы можете изменить эту настройку через GitLab API или через Настройки > Пакеты и реестры (Settings > Packages & Registries) в интерфейсе GitLab. В следующих релизах мы продолжим улучшать эту настройку для каждого формата менеджера пакетов. Следите за прогрессом в эпике и присоединяйтесь к разработке!

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

Инструмент настройки для поиска секретных ключей

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

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

Configuration tool for Secret Detection

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

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

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

Начиная с релиза GitLab 13.5 мы предлагаем поддержку статического сканирования безопасности (SAST) для мобильных проектов под Android и iOS. Изначально наше сканирование SAST для мобильных приложений поддерживало автоматическое определение проектов Xcode и файлов манифеста Android. С этим релизом и отличной работой члена сообщества @proletarius101 GitLab SAST теперь также поддерживает автоматическое определение бинарных файлов .ipa (iOS) и .apk (Android), что позволяет выполнять сканирование безопасности артефактов для полностью собранных мобильных приложений. Это даёт командам мобильной разработки больше гибкости в сборке и сканировании мобильных проектов для поиска уязвимостей с помощью GitLab SAST. Имейте в виду, что сканирование мобильных приложений все ещё является экспериментальной фичей, поэтому для его работы нужно включить в шаблоне CI поддержку экспериментальных фич. Мы сделаем сканирование мобильных приложений общедоступным, а не экспериментальным, в ближайшем будущем.

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

Semgrep — анализатор SAST для JavaScript, TypeScript и Python

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

В GitLab 13.11 мы объявили об экспериментальной поддержке Semgrep — нового анализатора SAST для JavaScript, TypeScript и Python. Мы работали над этим переходом в сотрудничестве с r2c, командой, разрабатывающей Semgrep и разделяющей нашу миссию — помогать разработчикам писать более безопасный код. После обширного бета-тестирования, в котором сотни пользователей опробовали наш экспериментальный анализатор, мы готовы начать переход на Semgrep.

В версии 13.12 мы обновляем наш шаблон CI SAST.gitlab-ci.yml для автоматического запуска этого нового анализатора вместе с нашим существующим анализатором JavaScript и TypeScript — ESlint. В следующем релизе мы полностью отключим ESLint, но пока он будет работать одновременно с Semgrep. Мы дедуплицировали результаты, поэтому вы не заметите никакой разницы в работе анализатора. Если вы используете наш SAST.gitlab-ci.yml, вам не нужно делать ничего, чтобы начать пользоваться анализатором Semgrep, однако, если вы будете самостоятельно управлять своей конфигурацией CI SAST, вам следует обновить конфигурацию CI.

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

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

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

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

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

Deleting deploy keys will inform the user if in use

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

Фоновая миграция GitLab Pages

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

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

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

Ключевое слово release: поддерживает ссылки на материалы релиза

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

Начиная с GitLab 13.2 вы могли использовать для создания релиза ключевое слово release: вместе с release-cli. Теперь ключевое слово release: поддерживает добавление ссылок на материалы релиза, чтобы вы могли создавать релизы и прикреплять к ним файлы в одном задании .gitlab-ci.yml.

release: keyword supports asset links

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

Сохраните контроль над управляемыми GitLab приложениями

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

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

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

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

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

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

Warn administrator when removing an on-call user

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

Geo поддерживает высокую доступность PostgreSQL (бета-версия)

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

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

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

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

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

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

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

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

Согласие на федеративное обучение когорт (FLoC) на уровне инстанса

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

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

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

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

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

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

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

Enforce delayed project removal for all subgroups

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

Количество групп пользователей теперь отображается в панели администратора

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

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

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

Users' group counts now displayed in Admin Area

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

Просмотр среднего времени выполнения элементов рабочего процесса

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

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

Вместо этого теперь график показывает среднее время до завершения, что подчёркивает значимые тенденции.

View average time to complete workflow items

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

Отчёты об отслеживании времени для тикетов и мерж-реквестов

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

Участники проекта могут записывать время, потраченное на тикет или мерж-реквест, с помощью быстрого действия “/spend”, но ранее было нелегко понять, сколько времени потратил каждый человек. Чтобы улучшить прозрачность отчётов о времени в проектах и группах теперь можно просмотреть отчёт о времени для отдельного тикета или мерж-реквеста. После того, как вы поработали над тикетом, выберите отчёт Об отслеживании времени (Time tracking report) на боковой панели, чтобы просмотреть список всех записей, относящихся к этому тикету или мерж-реквесту. Спасибо @leetickett за вклад!

Time tracking reports for issues and merge requests

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

Блокировка последнего артефакта конвейера для предотвращения его удаления

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

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

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

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

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

Поддержка переменных ‘workflow:rules’ в конвейере CI/CD

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

Ранее у ключевого слова rules была ограниченная область действия и оно определяло только, следует ли включать задание в конвейер. В 13.8, мы добавили возможность использовать ключевое слово variables вместе с rules для установки значений переменных в задании на основе того, какому правилу соответствует. В этом релизе мы расширили эту возможность до workflow: rules, чтобы вы могли устанавливать значения переменных для всего конвейера, если выполняются определённые условия. Это поможет вам сделать ваши конвейеры ещё более гибкими.

Support variables in CI/CD pipeline 'workflow:rules'

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

Удаление связанных файлов пакета через API

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

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

До GitLab 13.12 в GitLab не было возможности удалять файлы из пакета. Вы могли удалить только весь пакет. Эти дополнительные файлы могут загромождать пользовательский интерфейс или привести к установке неправильной или устаревшей зависимости.

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

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

Фильтрация отчёта об уязвимостях проекта по имени поставщика

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

GitLab стремится хорошо работать с другими инструментами, и безопасность тут не исключение. Мы предлагаем целый блок Secure, включающий множество сканеров безопасности. Мы также рекомендуем сторонним поставщикам интегрировать свои инструменты сканирования с использованием нашего открытого API и форматов обмена данными. С помощью GitLab вы сможете управлять уязвимостями от нескольких сканеров в едином интерфейсе. Раньше вы уже могли фильтровать список уязвимостей по типу сканера (SAST, DAST), но нельзя было фильтровать по поставщику.

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

Filter Project Vulnerability Report by vendor name

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

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

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

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

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

Мы рады любым отзывам и сообщениям об ошибках. Не стесняйтесь комментировать в тикете 327394 или создайте новый тикет и назначьте его @derekferguson. Мы с нетерпением ждём возможности представить эту функцию в общем доступе в ближайшие несколько месяцев и обеспечить лучшее покрытие DAST для современных приложений.

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

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

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

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

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

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

Фильтрация активных токенов развёртывания

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

До релиза 13.12 конечные точки API токенов развёртывания для перечисления токенов возвращали все записи, хранящиеся в базе данных, включая отозванные и просроченные токены, — без возможности отфильтровать список. Теперь мы добавили возможность отфильтровать активные токены из REST API. Огромное спасибо Devin Christensen за этот невероятный вклад!

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

Новый шаблон CI-страниц для Pages: Gatsby

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

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

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

Интеграция кластера Elastic Stack

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

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

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

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

Создание инцидентов через API

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

Самые эффективные инструменты управления инцидентами позволяют автоматически создавать инциденты из различных источников. Для автоматического создания инцидентов вы можете интегрировать свои собственные системы с GitLab через API. GitLab 13.12 вводит атрибут issue_type в REST API GitLab и поле type в GraphQL API GitLab. При создании тикетов с этими API вы можете создавать инциденты, установив issue_type в incident (REST API) или установив type в INCIDENT (GraphQL API).

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

Geo реплицирует файлы LFS с помощью автоматизированной платформы

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

Хотя Geo уже реплицирует файлы LFS, перемещение этой фичи для использования автоматизированной платформы Geo улучшает удобство обслуживания и производительность репликации файлов LFS. Это обновление позволит нам удалить около 200 строк кода и легче добавить поддержку верификации в предстоящем релизе. События репликации и удаления файлов LFS также будут запускаться раньше (в некоторых случаях до минуты). Чтобы узнать больше об автоматизированной платформе Geo, прочитайте пост в блоге о том, как мы стремимся к репликации всего в Geo.

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

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

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

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

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

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

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

Благодаря интеграции Elasticsearch администраторы GitLab могли настраивать только защищённый паролем сервер Elasticsearch, используя URL-адрес в формате http(s)://<username>:<password>@<elastic_host>:<elastic_port>/. Однако пароль отображался в виде обычного текста в пользовательском интерфейсе администратора GitLab. Отзывы, полученные от наших пользователей, показали нам, что потенциально это может быть проблемой, поскольку не все администраторы инстансов GitLab должны видеть этот пароль.

В этом релизе мы предоставляем отдельные поля ввода для имени пользователя и пароля Elasticsearch, и пароль скрыт, чтобы пользователи не могли видеть его символы как обычный текст.

Obfuscate Elasticsearch password in Admin UI

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


Полный текст релиза и инструкции по обновлению/установке вы можете найти в оригинальном англоязычном посте: GitLab 13.12 released with On-Demand DAST and Deployment Frequency Chart .

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