В этом месяце мы рады представить улучшения в управлении конвейерами и в удобстве использования, призванные повысить продуктивность вашей работы, а также обновления, повышающие безопасность развёртывания, и аналитические данные, которые помогут вам внедрять 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
на несколько маленьких файлов для переиспользования и лучшей читаемости. Мы также представляем возможность определять переменные в правилах, что позволит вам настраивать переменные конвейера в зависимости от выполнения определённых условий. Создание сложных конвейеров означает, что между заданиями могут быть зависимости; граф конвейера теперь показывает зависимости между заданиями, что позволит отслеживать и лучше понимать ожидаемый порядок запуска заданий.
Вы не можете починить то, что вы не можете измерить. Следуя этой идее, мы продолжаем расширять поддержку метрик DORA4. В этом релизе мы добавили график частоты развёртываний на уровне группы. Такой график поможет вам понять эффективность ваших развёртываний, находить узкие места и сосредоточиться на улучшении областей, охватывающих все ваши проекты и команды.
Аналитика цикла разработки (Value Stream Analytics) помогает определить, где ваш рабочий процесс неэффективен, и почему. В релизе 13.12 мы представляем разбивку на страницы и сортировку элементов рабочего процесса, что позволит легко визуализировать и сортировать работу на конкретных стадиях для определения узких мест. На графике «дней до завершения» (Days to Completion) теперь отображается среднее время выполнения элементов рабочего процесса, что поможет определить значимые тенденции.
Мы благодарим участника нашего сообщества @leetickett за вклад, благодаря которому с этого релиза вы можете просматривать отчёты по отслеживанию времени по тикетам и мерж-реквестам. Эти отчёты позволят оценить, сколько времени потратил каждый участник.
Для многих наших пользователей мерж-реквесты являются основным местом для совместной работы. В этом релизе мы добавили к мерж-реквестам возможность просмотреть нарушения качества кода и скриншоты неуспешных тестов, предоставляя вам весь необходимый контекст в рамках вашего обычного рабочего процесса в GitLab.
Мы продолжаем с каждым релизом вкладываться в улучшение удобства использования GitLab. Некоторые из наших любимых улучшений в 13.12:
Далее вы узнаете всё о новых фичах, улучшениях производительности и других изменениях этого релиза! Чтобы узнать, что будет в следующем месяце, зайдите на страницу предстоящих релизов и посмотрите видео по релизу 14.0.
Присоединяйтесь в конце июня к REMOTE от GitLab, чтобы узнать о будущем работы и культуры.
Lee проделал великолепную работу над нашей фичей Отслеживание времени: он добавил отчёт по отслеживанию времени. Благодаря его вкладу вы сможете узнать, кто и сколько времени потратил на задачу, а также общее время, потраченное всеми участниками. При логировании времени вы также можете оставлять заметки и просматривать их в отчёте.
Lee также добавил два мерж-реквеста для улучшения GraphQL API: один для отображения таймлогов мерж-реквеста и второй для поддержки поиска мерж-реквестов через запрос GraphQL.
Спасибо за эту потрясающую работу, Lee! 🙌
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
После нескольких месяцев работы мы счастливы объявить, что запуск сканирований DAST (Dynamic Application Security Testing, динамическое тестирование безопасности приложений) по требованию вышел в общий доступ! Он готов к использованию всеми, кому требуется просканировать уже развёрнутое приложение или API вне задания на конвейере. С релизом 13.11 мы добавили в профили DAST-сканирований сайтов по требованию возможность указывать авторизационные данные, исключать URL-адреса, добавлять дополнительные заголовки запросов и переключаться между сканированием веб-приложений и API. И это в дополнение к сохранению сканирований для удобного переиспользования, добавленному в релизе 13.9, и возможности выбора ветки, с которой связывается сканирование, добавленной в релизе 13.10! Мы верим, что такой набор фич удовлетворяет потребности большинства пользователей GitLab.
По мере добавления новых фич, таких как планирование сканирований, мы рассчитываем, что ручной запуск DAST-сканирований будет охватывать всё большее количество сценариев использования. Как и всегда, мы будем рады получить как можно больше отзывов об этих фичах. Пожалуйста, дайте нам знать, всё ли вас устраивает, — оставьте комментарий в специальном тикете.
Документация по запуску DAST-сканирований по требованию и оригинальный эпик.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Создание первого CI/CD-конвейера в GitLab может оказаться сложной задачей, особенно для новичков в CI/CD. Вы можете потратить много времени, переключаясь между документацией и GitLab, чтобы настроить свой первый конвейер. В этом релизе мы добавили в редактор конвейера панель с полезной информацией, которая проведёт вас по всем шагам создания вашего первого конвейера.
Документация по редактору конвейера и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Ключевое слово includes:
в конвейерах CI/CD позволяет разбить один длинный файл .gitlab-ci.yml
на несколько файлов меньшего размера, чтобы их было удобнее читать. Оно также облегчает повторное использование конфигурации в нескольких местах. Часто в один конвейер включают несколько файлов, и все они могут храниться в одном месте. В этом релизе мы добавили поддержку использования подстановочного знака *
с локальным ключевым словом includes:
. Теперь вы можете сделать свои секции includes:
более динамичными, менее перегруженными и более удобными для чтения. Посмотрите, как мы сами исользуем это в GitLab.
Документация по подстановочным символам в 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, которые сохраняют скриншоты неудачных тестов в качестве артефактов. Это довольно удобно, до тех пор, пока вам не придётся просматривать огромный архив скриншотов в поисках конкретного скриншота, необходимого для отладки непрошедшего теста. В конце концов, вы можете сдаться из-за разочарования и просто локально запустить тест, чтобы попытаться выяснить источник проблемы, вместо того чтобы тратить время на поиск.
Теперь вы сможете перейти к полученному скриншоту с экрана подробностей в отчёте по юнит-тесту на странице конвейера. Это позволит вам быстро просмотреть скриншот рядом с логом падения, и как можно скорее определить, что пошло не так.
Документация по скриншотам тестов в отчёте и оригинальный тикет.
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Verify
Во время код ревью вы можете захотеть указать на нарушения качества кода и на то, как их можно исправить. До этого вам приходилось смотреть их в браузере на странице отчёта по мерж-реквесту, а изменения мерж-реквеста в другом окне или в вашей IDE. Переключение между этими страницами могло быть слишком неудобным и иногда заставляло сдаться.
Теперь при ревью диффа мерж-реквеста вы сможете увидеть, появились ли в просматриваемом файле новые нарушения качества кода. Так у вас будет необходимый контекст для предложения исправлений в рамках вашего обычного рабочего процесса в GitLab, — и не нужно открывать дополнительные окна и переключать контекст.
Документация по отображению нарушений качества кода в диффе и оригинальный тикет.
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Release
В рамках нашей работы по добавлению встроенной поддержки метрик DORA4 в GitLab мы сделали график частоты развёртывания доступным на уровне группы. На этом графике будут отображаться показатели частоты развёртываний для всех проектов, входящих в группу, так что вы сможете получить полную картину частоты развёртываний для нескольких проектов и команд, что позволит лучше оценивать их эффективность. Мониторинг частоты развёртываний помогает отслеживать эффективность развёртываний с течением времени, находить узкие места и сосредоточиться на улучшении областей, охватывающих все ваши проекты и команды.
Документация по графику частоты развёртываний и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Раньше было непросто узнать количество групп и проектов, к которым принадлежит конкретный пользователь. Однако организациям, следящим за соответствием требованиям, важно отслеживать, к каким системам и ресурсам имеют доступ их пользователи. Эта информация даёт представление о членстве пользователей и позволяет убедиться, что у пользователя не слишком высокий уровень доступа и не осталось лишних доступов после изменения должности, а также помогает определить масштабы участия пользователя в проектах компании.
Теперь вам будет проще получить общее представление о членстве ваших пользователей для аудита. В этой итерации мы добавили на панель администратора инстанса счётчики общего числа групп и проектов, к которым принадлежит пользователь. Это — ещё один шаг в сторону экспортируемого отчёта о доступах пользователей.
Документация по управлению пользователями с панели администратора и оригинальный эпик.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Мы улучшили метрики развёртывания и частоты развёртываний в аналитике цикла разработки (Value Stream Analytics) на уровне группы. Эти метрики теперь учитывают не все развёртывания, а только развёртывания в окружениях с типом production. Теперь эти метрики станут более полезными, так как зачастую развёртывания в не-продакшен окружениях не дают ценной информации.
Кроме того, эти метрики теперь вычисляются на основе времени завершения развёртывания, а не времени создания. Это повышает точность данных за заданный период времени.
Документация по измерению метрик и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Ранее на странице аналитики цикла разработки отображались только 20 последних элементов рабочего процесса для каждой стадии. Это обновление добавляет разбивку на страницы и сортировку элементов рабочего процесса.
Теперь вы можете просматривать элементы каждой стадии вашего цикла разработки и сортировать их по времени, проведённому на определённой стадии, что поможет определять узкие места. Например, если изменения мержились дольше чем обычно, отсортируйте элементы стадии Code, чтобы определить самый медленный процесс и разобраться в возможных причинах задержки.
Документация по аналитике цикла разработки и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Аналитика цикла разработки показывает среднее время, которое потребовалось элементам рабочего процесса для завершения стадии цикла разработки, а также список элементов, которые прошли эту стадию. В этом релизе мы добавили счётчик, с помощью которого вы сможете легко определить число элементов рабочего процесса, которые завершили стадию и были использованы для расчёта среднего значения.
Документация по аналитике цикла разработки и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Раньше после коммита изменений через редактор конвейера вам приходилось переходить на другую страницу, чтобы узнать актуальный статус вашего конвейера. В этом релизе мы добавили виджет состояния в редактор конвейера, чтобы вы могли отслеживать состояние конвейера, не покидая редактора.
Документация по редактору конвейера и оригинальный тикет.
(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.
Документация по настройкам безопасности и оригинальный эпик.
(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 и оригинальный тикет.
(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
В этом релизе мы добавили дополнительную меру безопасности — уведомление пользователей при попытке удаления ключей развёртывания, которые сейчас используются. Это поможет предотвратить случайные сбои в рабочем процессе.
Документация по ключам развёртывания проекта и оригинальный тикет.
(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
.
Документация по добавлению ссылок на материалы релиза и оригинальный тикет.
(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, это влияет на график дежурств. Теперь администраторы будут получать предупреждение перед удалением пользователя, который есть в графике дежурств.
Документация по графикам дежурств и оригинальный тикет.
(self-managed: PREMIUM, ULTIMATE) Доступность
Patroni — это решение для обеспечения высокой доступности PostgreSQL, которое также позволяет настраивать высокодоступный резервный кластер PostgreSQL на вторичной ноде Geo. Эта конфигурация пригодится, когда вторичная нода используется как часть стратегии аварийного восстановления, поскольку позволяет системным администраторам зеркалировать количество нод базы данных на первичной и вторичной нодах. Это означает, что после сбоя не потребуется дополнительных нод базы данных для восстановления высокой доступности.
Geo теперь обеспечивает бета-версию поддержки высокодоступных конфигураций PostgreSQL с использованием Patroni. Мы улучшили обновления нод резервного кластера Patroni, добавили автоматическое восстановление после смены лидера на первичной ноде, устранили проблемы с начальной настройкой и исправили ряд ошибок.
Документация по поддержке Patroni и оригинальный эпик.
(self-managed: PREMIUM, ULTIMATE) Доступность
Geo теперь автоматически верифицирует целостность данных реплицированных файлов состояния Terraform. Это позволяет убедиться, что пакеты не были повреждены при хранении или передаче. Если Geo используется как часть стратегии резервного восстановления, это позволит предотвратить потерю данных пользователей.
Документация по репликации в Geo, оригинальный тикет и оригинальный эпик.
(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
Теперь владельцы групп могут включить и принудительно применить отложенное удаление проекта для всех подгрупп и проектов в своей группе. Отложенное удаление проекта защищает ваши данные, переводя удалённые проекты в состояние только для чтения после удаления, так что при необходимости их можно восстановить. В будущих релизах мы планируем расширить нашу модель настроек и разрешить наследование и применение большего количества настроек в подгруппах и проектах. Наша новая модель управления настройками даёт владельцам групп возможность убедиться, что настройки их подгрупп и проектов соответствуют требованиям безопасности и соответствуют требованиям их организации.
Документация по отложенному удалению проекта и оригинальный тикет.
(self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
В списке пользователей на панели администратора теперь отображается общее количество групп, к которым у пользователей есть доступ. При подсчёте учитываются членства как в группах, так и в подгруппах.
Это важное дополнение для списка пользователей, так как теперь администраторы смогут легко увидеть, какой доступ есть у пользователей инстанса, и определить, когда требуется предпринять какие-то меры. Например, можно использовать эту информацию, чтобы убедиться, что деактивированные учётные записи больше не имеют доступа к каким-либо проектам или группам в GitLab.
Документация по администрированию пользователей и оригинальный эпик.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
График «дней до завершения» в аналитике цикла разработки ранее показывал сумму дней, которые потребовались для выполнения всех элементов рабочего процесса, которые были завершены в определённый день. Если в один и тот же день было выполнено необычно большое количество заданий, на графике отображалось большое значение за этот день, что не имело особого смысла.
Вместо этого теперь график показывает среднее время до завершения, что подчёркивает значимые тенденции.
Документация по графику «дней до завершения» и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
Участники проекта могут записывать время, потраченное на тикет или мерж-реквест, с помощью быстрого действия “/spend”, но ранее было нелегко понять, сколько времени потратил каждый человек. Чтобы улучшить прозрачность отчётов о времени в проектах и группах теперь можно просмотреть отчёт о времени для отдельного тикета или мерж-реквеста. После того, как вы поработали над тикетом, выберите отчёт Об отслеживании времени (Time tracking report) на боковой панели, чтобы просмотреть список всех записей, относящихся к этому тикету или мерж-реквесту. Спасибо @leetickett за вклад!
Документация по отслеживанию времени и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Теперь GitLab автоматически блокирует последний артефакт успешного конвейера в любой активной ветке, мерж-реквесте или теге. Это предотвратит его удаление по истечении срока действия, если он все ещё остаётся самым последним артефактом.
Это упрощает установку более жёстких правил истечения срока действия для очистки старых артефактов, помогает снизить потребление дискового пространства и гарантирует, что у вас всегда будет копия последнего артефакта из вашего конвейера.
Артефакты конвейера, например артефакты, используемые функцией визуализации тестового покрытия, не управляются явно настройками в .gitlab-ci.yml
.
Документация по истечению срока действия артефактов и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Ранее у ключевого слова rules
была ограниченная область действия и оно определяло только, следует ли включать задание в конвейер. В 13.8, мы добавили возможность использовать ключевое слово variables
вместе с rules
для установки значений переменных в задании на основе того, какому правилу соответствует. В этом релизе мы расширили эту возможность до workflow: rules
, чтобы вы могли устанавливать значения переменных для всего конвейера, если выполняются определённые условия. Это поможет вам сделать ваши конвейеры ещё более гибкими.
Документация по переменным в CI/CD и оригинальный тикет.
(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, так и сторонним инструментом. Новый фильтр теперь доступен в отчётах об уязвимостях проекта.
Документация по настройке отчётов об уязвимостях и оригинальный тикет.
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
Мы рады объявить, что с 13.12 запускается бета-версия нашего нового поискового робота на базе браузера. Поскольку сейчас идёт бета-тестирование, мы активно ищем пользователей DAST, которые включат новый сканер и дадут нам обратную связь. Этот новый сканер разработан специально для обеспечения лучшего покрытия приложений тестами за счёт поиска в приложении с большим количеством JavaScript большего количества страниц, которые могут быть скрыты от традиционного поискового робота на основе прокси. Поскольку веб-сайты и приложения содержат всё больше и больше JavaScript, мы увидели потребность в инструментах нового поколения, специально созданных для одностраничных приложений с большим количеством JavaScript. Это наш первый шаг на пути к лучшему сканированию и тестированию этих современных приложений.
В тестировании производительности наш сканер на базе браузера показал значительное улучшение охвата сканирования по сравнению с текущим поисковым роботом на основе прокси. Нам нужны отзывы об использовании в реальных приложениях, чтобы подтвердить, что новый сканер может сканировать большинство страниц для большинства приложений. Процесс включения этого нового поискового робота описан на странице поискового робота DAST на основе браузера.
Мы рады любым отзывам и сообщениям об ошибках. Не стесняйтесь комментировать в тикете 327394 или создайте новый тикет и назначьте его @derekferguson
. Мы с нетерпением ждём возможности представить эту функцию в общем доступе в ближайшие несколько месяцев и обеспечить лучшее покрытие DAST для современных приложений.
Документация по сканированию безопасности на основе браузера для DAST и оригинальный тикет.
(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 токенов развёртывания и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Release
Предыдущий шаблон страниц для Gatsby не работал «из коробки». Вам нужно было вручную исправить ваши конвейеры после использования предопределённого шаблона. В этом релизе мы предоставили вам новый шаблон, который приводит к зелёному статусу конвейера уже при первом запуске. Спасибо Takuya Noguchi за этот большой вклад, который поможет тем членам сообщества GitLab, которые раньше не пользовались страницами Gatsby, начать ими пользоваться.
Документация по CI-шаблонам для Pages и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure
Ранее, чтобы воспользоваться всеми преимуществами обозревателя логов Gitlab, вы должны были установить Elastic Stack с помощью приложений, управляемых GitLab. Это было проблематично, потому что управление и обслуживание Elastic Stack важны, так что их не хотелось бы передавать эту работу GitLab.
Начиная с этого релиза вы можете интегрировать существующий Elastic Stack с GitLab. Вы и сохраните контроль, и сможете использовать фичи, предлагаемые обозревателем логов GitLab.
Документация по интеграции Elastic Stack и оригинальный тикет.
(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).
Документация по созданию тикетов и оригинальный тикет.
(self-managed: PREMIUM, ULTIMATE) Доступность
Хотя Geo уже реплицирует файлы LFS, перемещение этой фичи для использования автоматизированной платформы Geo улучшает удобство обслуживания и производительность репликации файлов LFS. Это обновление позволит нам удалить около 200 строк кода и легче добавить поддержку верификации в предстоящем релизе. События репликации и удаления файлов LFS также будут запускаться раньше (в некоторых случаях до минуты). Чтобы узнать больше об автоматизированной платформе Geo, прочитайте пост в блоге о том, как мы стремимся к репликации всего в Geo.
Документация по репликации в Geo и оригинальный тикет и оригинальный эпик.
(self-managed: PREMIUM, ULTIMATE) Доступность
Вторичные сайты Geo используют отдельную базу данных PostgreSQL в качестве базы данных для отслеживания состояния репликации и автоматического восстановления после потенциальных проблем с репликацией. Без базы данных для отслеживания Geo не может реплицировать данные на другой сайт. Geo теперь поддерживает настройку отдельного высокодоступного кластера PostgreSQL для базы данных Geo. Эта конфигурация пригодится, когда вторичный сайт используется в рамках стратегии аварийного восстановления, поскольку гарантирует, что репликация не будет затронута даже в случае сбоя единственной ноды PostgreSQL, на которой запущена база данных для отслеживания.
Документация по конфигурации отслеживающей базы данных PostgreSQL и оригинальный тикет.
(self-managed: PREMIUM, ULTIMATE) Доступность
Благодаря интеграции Elasticsearch администраторы GitLab могли настраивать только защищённый паролем сервер Elasticsearch, используя URL-адрес в формате http(s)://<username>:<password>@<elastic_host>:<elastic_port>/
. Однако пароль отображался в виде обычного текста в пользовательском интерфейсе администратора GitLab. Отзывы, полученные от наших пользователей, показали нам, что потенциально это может быть проблемой, поскольку не все администраторы инстансов GitLab должны видеть этот пароль.
В этом релизе мы предоставляем отдельные поля ввода для имени пользователя и пароля Elasticsearch, и пароль скрыт, чтобы пользователи не могли видеть его символы как обычный текст.
Документация по конфигурации Elasticsearch и оригинальный тикет.
Полный текст релиза и инструкции по обновлению/установке вы можете найти в оригинальном англоязычном посте: GitLab 13.12 released with On-Demand DAST and Deployment Frequency Chart .
Над переводом с английского работали @cattidourden, @maryartkey, @ainoneko и @rishavant.