Мы рады представить вам новый релиз GitLab 14.2 с бета-версией Build Cloud для macOS, предварительным просмотром Markdown, расширенной интеграцией Gitpod, новыми метриками внедрения DevOps и многим другим!
Это — лишь несколько основных из более чем 50 улучшений этого релиза. Читайте далее, и вы узнаете всё об этих потрясающих обновлениях. Чтобы узнать, что выйдет в следующем месяце, зайдите на страницу предстоящих релизов, там вы найдёте видео по предстоящему релизу 14.3.
MVP этого месяца — Cornelius Ludmann
Cornelius добавил возможность открывать изменения кода в Gitpod при просмотре мерж-реквеста (в русской локализации GitLab «запрос на слияние»). Более того, даже эта запись в блоге GitLab была создана и отредактирована с помощью Gitpod! Ещё в GitLab 13.5 Cornelius работал над открытием проекта в Gitpod со страницы репозитория. Теперь же вы можете запускать Gitpod прямо со страницы мерж-реквеста, чтобы ускорить его ревью и уменьшить переключения контекста в вашей локальной среде разработки.
Подробнее об этой фиче читайте далее в посте. Спасибо за этот вклад, Cornelius! Мы считаем, что облачные среды разработки, такие как Gitpod, уменьшают количество препятствий и позволяют каждому внести свой вклад.
Основные фичи релиза GitLab 14.12
GitLab Build Cloud для macOS (бета-версия)
(SaaS: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Ранее разработчикам, работающим с GitLab SaaS в экосистеме Apple, приходилось устанавливать и обслуживать обработчики заданий GitLab (GitLab Runner) для выполнения рабочих процессов CI/CD на собственных macOS-системах. Теперь вы можете создавать приложения на бета-версии Build Cloud для macOS — платформе сборки на базе GitLab Runner, интегрированной с CI/CD GitLab SaaS.
Доступ к бета-версии изначально есть только у одобренных пользователей и участников программы GitLab for Open Source. Более подробную информацию вы можете найти в соответствующем посте в блоге.
Вы всегда можете установить обработчик заданий для macOS во всех Apple-окружениях, включая MacStadium или AWS.
Документация по Build Cloud и оригинальный тикет.
Запуск предварительно настроенного рабочего пространства Gitpod из мерж-реквеста
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Интеграция Gitpod, представленная в релизе GitLab 13.5, помогает управлять вашими сложными средами разработки. Определив конфигурацию проекта в коде, вы можете одним щелчком мыши запустить готовую облачную среду разработки. Благодаря этому удобному рабочему процессу вносить новые изменения можно ещё быстрее. Однако, запуск среды Gitpod для ревью существующего мерж-реквеста означал создание среды в основной ветке, а затем переключение на целевую ветку и повторную сборку.
Начиная с релиза 14.2 вы сможете запускать Gitpod прямо со страницы мерж-реквеста, предварительно настроив использование целевой ветки, чтобы ускорить процесс ревью и уменьшить переключения контекста. Включите интеграцию с Gitpod в настройках, и в ваших мерж-реквестах появится объединённая кнопка Открыть в (Open in), с помощью которой вы сможете открыть мерж-реквест либо в Web IDE, либо в Gitpod.
Спасибо Cornelius Ludmann из Gitpod за эту фичу!
Документация по интеграции Gitpod и оригинальный тикет.
Отслеживайте использование сканирования зависимостей и фаззинг-тестирования
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Manage
Теперь вы легко сможете узнать, какие группы в вашей организации включили сканирование зависимостей и фаззинг-тестирование. Ранее вы могли отслеживать внедрение этих фич GitLab только через API, теперь же вы можете сравнить их использование вашими группами в таблице DevOps Adoption. Вы можете отсортировать таблицу, чтобы легко определить, какие группы уже используют эти средства безопасности.
Документация по таблице DevOps Adoption и оригинальный эпик.
Предварительный просмотр Markdown-контента при редактировании
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Markdown — это удобный и быстрый синтаксис для написания расширенного веб-контента. До тех пор, пока он не перестаёт быть таким уж удобным и понятным. К счастью, на вкладке Предварительный просмотр (Preview) в редакторе легко просмотреть отрисованный результат вашей Markdown-разметки, чтобы убедиться в её корректности. К сожалению, переключение контекста между исходным кодом и предварительным просмотром может потребовать много времени и помешать вашей продуктивности.
Теперь для Markdown-файлов (и в Web IDE, и в редакторе одиночного файла) доступен новый режим работы редактора, с предварительным просмотром в реальном времени. Щёлкните правой кнопкой мыши в редакторе и выберите Предварительный просмотр Markdown (Preview Markdown) или используйте комбинацию Command/Control + Shift + P
, чтобы включить предварительный просмотр Markdown-контента на том же экране. Это превью будет обновляться по мере ввода текста, так что вы сможете убедиться, что ваша разметка верна и будет отображаться так, как вы задумали.
Документация по редактору Markdown и оригинальный эпик.
Используйте CI/CD переменные в блоках include в .gitlab-ci.yml
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Теперь вы можете использовать переменные в составе блоков include
в файлах .gitlab-ci.yml
. Это могут быть CI/CD-переменные уровня инстанса, группы или проекта.
Это улучшение предоставляет большую вариативность при создании конвейеров (в русской локализации GitLab «сборочные линии»). Вы можете использовать один и тот же файл .gitlab-ci.yml
для нескольких проектов и изменять его параметры с помощью переменных. Это позволит уменьшить дублирование в файле .gitlab-ci.yml
и уменьшит сложность конфигурации этих файлов для каждого проекта.
Документация по переменным в блоках include и оригинальный тикет.
Улучшенное отслеживание уязвимостей для анализаторов GoSec, Semgrep и Brakeman
(SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure
В течение жизненного цикла проекта код в нём редко остаётся неизменным. Рефакторинг, изменения в базе кода, удаления — всё это наверняка произойдёт. Наша текущая система идентификации обнаруженных уязвимостей работает довольно грубо и приводит к большому количеству дублирующихся результатов по мере перемещения кода. В настоящее время уязвимости, найденные с помощью SAST и Secret Detection, используют положение внутри файла для определения местоположения уязвимости в коде. Со временем мы теряем возможность отслеживать перемещение уязвимости по мере добавления или удаления строк из файла с найденной уязвимостью. Это затрудняет определение действительно новых результатов сканирований, особенно в контексте мерж-реквеста.
Мы разработали новый, более совершенный алгоритм отслеживания уязвимостей, который рассматривает сигнатуру уязвимости, а не только её местоположение в коде. Такой способ повышает точность выявления одной и той же уязвимости, которая переместилась в другое место в результате рефакторинга.
Мы уже добавили эту новую систему отслеживания уязвимостей в наши анализаторы GoSec для Go, Semgrep для JavaScript, TypeScript, React и Python, а также в Brakeman для Ruby и Ruby on Rails. Мы продолжим расширять поддержку этой системы и добавим другие анализаторы в будущих релизах.
Документация по анализаторам SAST и оригинальный эпик.
Конвейеры без этапов
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Использование ключевого слова needs
в конфигурации конвейера помогает уменьшить время цикла благодаря игнорированию порядка этапов и выполнению заданий без ожидания завершения других. Ранее это ключевое слово можно было использовать только между заданиями, находящимися на разных этапах.
В релизе 14.2 мы убрали это ограничение, и теперь вы можете задавать отношения needs
между любыми заданиями. Таким образом, вы можете создать полный CI/CD-конвейер без использования этапов вовсе, добавив needs
в каждое задание для неявной настройки порядка выполнения. Так вы сможете быстрее и проще настраивать конвейеры, которые ещё и будут выполняться быстрее.
Документация по ключевому слову needs и оригинальный тикет.
Новый пользовательский интерфейс для GitLab Kubernetes Agent
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure
Агент для Kubernetes от GitLab обеспечивает безопасное двухстороннее соединение между GitLab и кластером Kubernetes. До сих пор для регистрации нового агента нужно было писать GraphQL-запросы.
Начиная с релиза 14.2 GitLab предоставляет удобный пользовательский интерфейс и форму регистрации, которые помогут вам легко начать работу с GitLab Kubernetes Agent.
Документация по GitLab Kubernetes Agent и оригинальный эпик.
Создавайте ветки GitLab из тикетов Jira
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Пользователи приложения GitLab.com for Jira Cloud теперь могут создавать новые ветки в GitLab непосредственно из панели разработки в тикете Jira. Это позволит разработчикам с лёгкостью начинать работу над задачами без лишних переключений между инструментами и потери контекста.
Документация по интеграции с Jira и оригинальный тикет.
Экспорт CSV-отчёта по участникам группы верхнего уровня
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Теперь вы можете экспортировать в CSV отчёт, в котором перечислены все участники выбранной группы. Этот отчёт уже был доступен на уровне инстанса, и мы рады предоставить его и для групп верхнего уровня.
В отчёт включаются пользователи, их адреса электронной почты и уровни разрешений — по всем пользователям группы.
Этот отчёт позволяет быстро получить представление о том, кто входит в группу и какой тип доступа возможен для ваших групп и проектов, что поможет вам быстро определить необходимые изменения. Эта фича — большой шаг в направлении предоставления пользователям GitLab.com такого же качественного сервиса, который ранее был доступен только для пользовательских инстансов GitLab.
Документация по экспорту отчёта по участникам группы и оригинальный тикет.
Миграция групп теперь соответствует ручному импорту/экспорту групп
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Обновлённая фича миграции групп, GitLab Migration, теперь может переносить группу целиком, вместе со всеми её подгруппами и всеми данными. Теперь при миграции переносится всё то же, что было доступно при экспорте группы, так что эта фича стала самым удобным способом переносить группы. Существовавший ранее процесс импорта и экспорта требовал от вас двух отдельных шагов: сначала экспорта группы в файл, затем его импорта в целевой инстанс GitLab.
Теперь пользователи могут инициировать полную миграцию группы всего лишь одним щелчком мыши. Миграция распространяется на все подгруппы и их данные, выполнять отдельные экспорт и импорт для каждой подгруппы выбранной группы больше не потребуется.
Документация по импорту групп и оригинальный эпик.
Скрывайте все тикеты, созданные заблокированными пользователями
(self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
В дополнение к возможности блокировать и разблокировать пользователей, мы добавляем возможность скрывать все тикеты, созданные заблокированным пользователем. Это пригодится в случаях, когда пользователь бомбардирует инстанс GitLab спамом, создавая ненужные тикеты. Теперь их можно скрыть.
Документация по блокированию и разблокированию пользователей и оригинальный тикет.
Просмотр истории по использованию CI-минут
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
До релиза 14.2 использование минут CI-конвейера на странице Usage Quotas показывало только использование за текущий месяц. Эти данные сбрасывались каждый месяц, и не было никакого способа просмотреть активность за прошлые месяцы для анализа использования в прошлом.
Теперь на этой странице есть два графика, которые показывают использование минут конвейера по месяцам и по проектам, чтобы вы могли принимать взвешенные решения об использовании конвейера.
Документация по CI-минутам и оригинальный тикет.
Другие улучшения в GitLab 14.2
Добавили метки наборов правил по соответствию требованиям в список проектов на уровне группы
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Метки наборов правил по соответствию требованиям теперь отображаются в списке проектов на уровне группы. Так вы сможете уже по списку понять, у каких проектов есть особые наборы правил по соответствию требованиям.
Документация по наборам правил по соответствию требованиям Issue
Назначайте проекту набор правил по соответствию требованиям через GraphQL
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Теперь вы можете добавлять к проекту набор правил по соответствию требованиям не только через интерфейс GitLab, но и с помощью GraphQL API. Создавать и настраивать проекты через API стало удобнее, как и обновлять множество проектов за раз.
Документация по добавлению к проекту набора правил по соответствию требованиям с помощью GraphQL и оригинальный тикет.
Групповые токены доступа для аутентификации в Git
(self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Пользователи с доступом к консоли Rails могут создавать групповые токены доступа для выполнения действий на уровне группы и управления проектами в группе через один токен. Ранее использование группового токена доступа приводило к ошибке аутентификации. В этом релизе мы:
- Добавили поддержку групповых токенов доступа для аутентификации в Git через HTTP, что позволит делать пуш и пулл изменений через групповой токен доступа.
- Подготовили инструкции по созданию групповых токенов доступа в консоли Rails для вашего удобства.
Документация по групповым токенам доступа и оригинальный тикет.
Отображение числа этапов рабочего процесса на каждой стадии аналитики цикла разработки на уровне проекта
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Аналитика цикла разработки для проектов теперь показывает общее число этапов рабочего процесса на каждой стадии цикла. Это поможет вам легко оценить объём работы на каждой стадии.
Документация по аналитике цикла разработки и оригинальный тикет.
Редактирование заголовка тикета на доске задач
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
Сейчас, чтобы отредактировать тикет на доске задач (в русской локализации GitLab «доска обсуждений»), нужно выполнить несколько шагов, что выводит вас из рабочего процесса. Мы добавили простой способ редактировать заголовок тикета прямо на доске задач без необходимости переходить на другую страницу. Чтобы отредактировать заголовок, выберите тикет, затем нажмите Изменить на правой боковой панели.
Документация по редактированию тикетов на панели задач и оригинальный тикет.
Более удобное редактирование страниц вики
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
С новым WYSIWYG-редактором использовать Markdown в ваших вики стало проще чем когда-либо. Однако расположение панели инструментов в редакторе сделало форматирование текста на длинных страницах неудобным.
В GitLab 14.2 все наиболее часто используемые инструменты форматирования (полужирный, курсив, зачёркнутый и код) отображаются во всплывающем меню над выделенным текстом. Это позволит вам работать более эффективно. Пусть больше времени уходит на создание контента, а не на прокрутку страницы вверх-вниз.
Документация по редактору вики-контента и оригинальный тикет.
Загрузка и прикрепление файлов в новом редакторе вики
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
В GitLab 14.1 появилась возможность загружать и вставлять изображения в новом редакторе контента вики.
В GitLab 14.2 вы сможете аналогичным образом загружать и прикреплять файлы в форматах .zip
, .pdf
, .txt
и другие бинарные файлы. Это делает нас на один шаг ближе к полному соответствию фичам классического редактора вики и открывает дополнительные способы совместной работы над контентом на страницах вики.
Документация по редактору контента вики и оригинальный тикет.
Отображение внутреннего ID конвейера на странице конвейеров
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
IID (Internal ID) конвейера — это внутренний ID конвейера относительно проекта, который его запустил. IID увеличивается на единицу для каждого нового конвейера в проекте. IID конвейера растёт гораздо медленнее, чем ID конвейера, который увеличивается на единицу для каждого запущенного конвейера во всем инстансе GitLab. Это делает IID конвейера более полезным значением для таких сценариев, как версионирование релизов проекта на основе конвейеров, отслеживание конвейеров на основе порядка их запуска в проекте, метрик конвейеров в проекте, и т.д.
Чтобы IID конвейера было удобнее использовать, мы добавляем на страницу конвейеров возможность поменять отображение с ID на IID внутреннего проекта. Теперь вы сможете легко посмотреть, какой конвейер соответствует используемым IID.
Документация по странице конвейеров и оригинальный тикет.
Использование токенов развёртывания с прокси зависимостей
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Package
Чтобы ограничить использование внешних зависимостей и сократить время сборок, вы можете использовать прокси зависимостей GitLab для кэширования часто используемых образов из Docker Hub.
Теперь вы можете использовать токены развёртывания при аутентификации для использования прокси зависимостей GitLab. Ранее вам приходилось использовать для аутентификации предопределённые переменные окружения. Такие переменные привязаны к разрешениям пользователя, а значит они плохо подходят для использования в конвейерах для продакшена. Токенами развёртывания для аутентификации проще управлять, и с ними вам не нужно беспокоиться о добавлении пользователей к проекту. Вы можете просто создать токен, задать нужные ограничения, и выдавать разрешения пользователям в соответствии с правилами вашей организации.
Просто создайте групповой токен развёртывания и имя пользователя с разрешениями read_registry
и write_registry
. Затем залогиньтесь в реестре на GitLab.com с именем пользователя и паролем вашего токена развёртывания и пользуйтесь прокси и кэшированием для образов контейнеров из Docker Hub.
Документация по аутентификации через прокси зависимостей и оригинальный тикет.
Анализатор SAST .NET обновлён для поддержки проектов Visual Studio 2019
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure
Мы обновили наше статическое тестирование безопасности приложений (SAST) для .NET, сканирование безопасности кода для миграции на новый базовый образ Alpine, чтобы повысить совместимость, стабильность, производительность и безопасность этого анализатора. Это не должно вызвать проблем, однако, если вы используете before_script
с заданием security-code-scan-sast
, вам, возможно, придётся обновить содержимое вашего before_script
, чтобы разобраться с несовместимыми вызовами функций.
Мы также обновили сканирование безопасности кода до последней мажорной версии v5. Это добавляет поддержку проектов, собранных в Visual Studio 2019, а также является важным обновлением нового механизма межпроцедурного анализа угроз. Так как это мажорный релиз, мы решили сделать это обновление вручную. В будущих релизах эта версия будет использоваться по умолчанию. Чтобы начать пользоваться новой версией, используйте процедуру обновления Security Code Scan до новой версии: SAST_ANALYZER_IMAGE_TAG: 3
.
В будущих версиях GitLab мы обновим версию сканирования безопасности кода по умолчанию до этой новой версии. Тогда вам уже не придётся обновлять её вручную как указано выше.
Документация по анализаторам SAST и оригинальный тикет.
Анализатор SAST Semgrep для языка C
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure
В GitLab 13.12 мы выпустили анализатор Semgrep для Javascript, TypeScript и Python. Сегодня мы расширяем поддержку Semgrep и для проектов, написанных на языке C. Эта фича разработана совместно с r2c, разработчиками Semgrep, которые разделяют нашу миссию — помогать разработчикам писать более безопасный код. После масштабного бета-тестирования, в ходе которого сотни пользователей попробовали наш экспериментальный анализатор, мы готовы начать полноценный переход на Semgrep. Начиная с версии 14.2 мы обновляем наш шаблон CI SAST.gitlab-ci.yml
для автоматического запуска этого нового анализатора наряду с уже существующим анализатором C/C++, Flawfinder. В одном из будущих релизов мы полностью отключим Flawfinder, как только добавим поддержку для C++, но пока он будет работать совместно с Semgrep. Мы проделали работу по дедупликации результатов, так что вы не должны заметить никакой разницы. Если вы используете нашу конфигурацию SAST.gitlab-ci.yml
, вы сможете сразу начать пользоваться Semgrep. Однако, если вы задаёте конфигурацию SAST CI вручную, вам нужно обновить ваш файл конфигурации CI.
Мы с радостью ожидаем будущий переход на Semgrep, который подарит вам быстрое статическое тестирование безопасности приложений с широким покрытием кода. Мы продолжим добавлять в анализатор Semgrep новые правила поиска уязвимостей, а также расширять покрытие на другие языки. В тикете для фидбека вы сможете поделиться вашим опытом по переходу на новый анализатор или задать вопросы.
Документация по поддерживаемым языкам и фреймворкам SAST и оригинальный тикет.
Ключевое слово deployment_tier в веб-хуке событий конвейера
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Release
В GitLab 13.10 мы представили концепцию типа окружения. В этом релизе мы добавили ключевое слово deployment_tier
в веб-хук событий конвейера, чтобы вы могли использовать эту фичу для автоматизации.
Документация по событиям конвейера и оригинальный тикет.
Параметры состояния Terraform в пользовательском интерфейсе
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure
К управляемому GitLab файлу состояния Terraform можно получить доступ из GitLab CI/CD без каких-либо специальных настроек. Чтобы получить доступ к тому же файлу состояния с локальной машины, нужно инициализировать Terraform с несколькими параметрами.
Найти нужные параметры может быть непросто, и при этом легко ошибиться. Поэтому теперь мы предоставляем простой пользовательский интерфейс на странице списка файлов состояний Terraform, который показывает команду, необходимую для инициализации доступа к файлу состояния Terraform из командной строки. Вы можете получить доступ к этому интерфейсу через пункт меню Инфраструктура > Terraform.
Документация по файлам состояния Terraform и оригинальный тикет.
Отправка писем выбранным пользователям в рамках правил эскалации
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Monitor
При создании правил эскалации для уведомлений может быть полезно настроить отправку писем определённому пользователю, помимо дежурного пользователя. В этом релизе мы добавили для команд возможность задавать пользователя, с которым нужно связаться при возникновении инцидента, даже если этого пользователя нет в графике дежурств.
Документация по правилам эскалации и оригинальный тикет.
Geo верифицирует реплицированные сниппеты с контролем версий
(self-managed: PREMIUM, ULTIMATE) Доступность
Geo теперь автоматически верифицирует целостность данных реплицированных сниппетов с контролем версий. Это обеспечит сохранность сниппетов в процессе передачи и при хранении. Если Geo является частью вашей стратегии аварийного восстановления, это защитит ваших пользователей от потери данных.
В следующей итерации мы добавим автоматическое восстановление при обнаружении несоответствия при верификации.
Верификация Geo работает в рамках фреймворка репликации Geo, и мы также планируем добавить верификацию для всех остальных типов реплицируемых данных.
Обратите внимание: Эта фича была ошибочно объявлена в посте, посвящённом релизу GitLab 13.11. Она была доступна как переключаемая фича, но не была включена по умолчанию. В GitLab 14.2 мы убрали необходимость явно подключать её и включили верификацию по умолчанию.
Документация по типам реплицируемых данных в Geo и оригинальный эпик.
Балансировка нагрузки для Sidekiq включена по умолчанию
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Доступность
Sidekiq — менеджер заданий, используемый GitLab, — создаёт несколько заданий с доступом только для чтения. Если кластер базы данных включает основную ноду с доступом для чтения и записи и одну или несколько нод с доступом только для чтения, эти задания не должны выполняться на основной ноде. Вместо этого они могут воспользоваться балансировкой нагрузки базы данных и выполняться на нодах с доступом только для чтения. Это уменьшает общую нагрузку на основную ноду базы данных и может повысить производительность.
Балансировка нагрузки Sidekiq была добавлена в GitLab 14.1 и теперь включена по умолчанию с GitLab 14.2.
Документация по балансировке нагрузки Sidekiq и оригинальный тикет.
Подсказки на странице результатов глобального поиска при тайм-ауте
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Доступность
Иногда при глобальном поиске по GitLab может произойти тайм-аут. Мы добавили страницу для тайм-аута поиска, чтобы помочь пользователям в таких ситуациях и дать им возможность задать более строгие критерии поиска.
Документация по базовому поиску и оригинальный тикет.
Добавьте произношение на страницу профиля GitLab
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Теперь вы можете добавить в свой профиль пользователя произношение. В распределённых командах, где члены команды из разных стран, может быть трудно правильно называть имена друг друга. Эта функция поможет другим узнать, как произносится ваше имя.
Документация по добавлению произношения в профиль и оригинальный тикет.
Отображение местного времени в профиле пользователя
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Местное время теперь отображается в профилях пользователей. В предыдущих релизах вы могли установить часовой пояс, но он не был виден в профиле в GitLab. Это улучшение будет полезно для распределённых команд, помогая их участникам узнать, когда товарищи по команде смогут быть доступны.
Документация по настройке профиля пользователя и оригинальный тикет.
Возможность скрыть секретные ключи приложений
(self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
Ранее поле Секрет (Secret) было видно в пользовательском интерфейсе GitLab на странице конфигурации приложения. Для повышения безопасности мы скрыли это поле и добавили кнопку Копировать (Copy). Вы можете скопировать ключ и сохранить его в защищённом месте. Это гарантирует, что секрет не будет виден открытым текстом тем, кто смотрит на экран.
Документация по OATH-аутентификации и оригинальный тикет.
Просмотр всех метрик аналитики цикла разработки для проектов
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage
До сих пор на уровне проекта и группы отображались разные наборы метрик управления циклом разработки.
В этом релизе вы сможете просматривать одни и те же метрики на уровне проекта и группы в зависимости от вашей подписки в GitLab. Аналитика, как проекта, так и группы, теперь включает Новые тикеты, Коммиты, Развёртывания, Частоту развёртывания, Время выполнения (планы Premium и Ultimate) и Время цикла (планы Premium и Ultimate).
Документация по аналитике цикла разработки и оригинальный тикет.
Немедленное удаление проектов, запланированных для отложенного удаления
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
Отложенное удаление проекта защищает ваши данные, переводя удалённые проекты в состояние, доступное только для чтения, чтобы вы могли их восстановить. До сих пор отложенное удаление проекта было отключено на GitLab.com, так как не было способа при необходимости удалить проект немедленно.
В этом релизе мы добавили для инстанса настройку, позволяющую включить отложенное удаление по умолчанию для всех новых проектов. Вы также можете немедленно удалить проекты, которые запланированы для отложенного удаления, не отключая настройку глобально.
Отложенное удаление проекта теперь включено по умолчанию для новых групп и проектов, созданных на GitLab.com, и владельцы групп могут отключить его.
Документация по отложенному удалению проектов и оригинальный тикет.
Отображение выбранной метки при фильтрации тикетов Jira
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Теперь пользователи могут видеть, какие метки они использовали для фильтрации списка тикетов Jira. Это изменение делает удобнее работу с тикетами, предоставляя пользователям полный контекст того списка, который они просматривают.
Документация по интеграции с Jira и оригинальный тикет.
Просмотр проектов, использующих пользовательские настройки интеграции
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
В этом релизе мы значительно упростили управление конфигурацией интеграции проекта. Администраторы GitLab теперь могут видеть список проектов, не использующих конфигурацию интеграции по умолчанию. Эта фича помогает администраторам гарантировать, что проекты используют правильные настройки интегрированных систем.
Документация по просмотру проектов с настройками интеграций не по умолчанию и оригинальный тикет.
Отображение связанных конвейеров на мини-графике конвейера
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Мини-график конвейера показывает состояние каждого этапа в вашем конвейере и даёт простой и быстрый способ перехода к любому заданию. Объединение нескольких мини-графиков конвейеров обеспечивает одинаковые функциональные возможности для связанных вышестоящих и нижестоящих конвейеров.
В этом релизе у вас появляется возможность видеть связанные вышестоящие и нижестоящие конвейеры на мини-графике в новых частях пользовательского интерфейса GitLab: на вкладке конвейера, на странице конвейера проекта, на странице коммита и на вкладке конвейера страницы коммита.
Документация по визуализации конвейеров и оригинальный тикет.
Предоставляйте доступ к своему реестру контейнера, не открывая исходный код
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Package
При настройке проекта вы можете для разных фич по-разному настраивать разрешения для таких вещей, как тикеты или репозиторий. Например, в общедоступном проекте вы всё равно можете предпочесть разрешить доступ к репозиторию только участникам проекта.
Проблема в том, что, хотя вы можете управлять несколькими подобными фичами, для реестра контейнеров вы могли только включать и выключать эту фичу. Это проблематично для многих организаций, которые хотели бы контролировать доступ к реестру контейнеров отдельно от репозитория.
Теперь вы можете избежать этой проблемы, настроив свой проект на определение уровня доступа для вашего реестра контейнеров независимо от уровня доступа вашего репозитория и других фич. Вы можете сделать это с помощью API проекта и через пользовательский интерфейс.
Документация по настройке видимости реестра контейнеров и оригинальный тикет.
Стало удобнее использовать страницу конфигурации безопасности и соответствия требованиям
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure
За последний год GitLab значительно расширил возможности обеспечения безопасности и соответствия требованиям. По мере роста и развития фич увеличивается и количество соответствующих параметров конфигурации. На текущей странице конфигурации безопасности и соответствия требованиям появилось гораздо больше возможностей, чем было предусмотрено изначально, что затрудняет поиск подходящего варианта.
Чтобы решить эту проблему, мы переработали страницу конфигурации безопасности и соответствия. Новый дизайн не только делает её удобнее, но и обеспечивает гибкую схему, которая будет масштабироваться по мере того, как мы продолжим расширять наши предложения по безопасности и соответствию требованиям.
Документация по настройке безопасности и соответствия требованиям и оригинальный тикет.
Анализатор SAST для Go теперь поддерживает Go 1.16
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure
Мы обновили наш анализатор для статического тестирования безопасности приложений (SAST), работающий с языком Go, GoSec. Теперь он поддерживает Go 1.16. Это обновление вводит поддержку проектов Go, для которых требуется эта версия Go, но также ограничивает использование GOPATH
только проектами без модулей Go. Если вам потребуется использовать GOPATH
, теперь вы можете зафиксировать младшую версию анализатора, использующую GoSec версии 3.1.3. В таком случае вы не сможете автоматически получать обновления анализатора, и вам придётся вручную указывать версию анализатора в шаблоне CI.
Документация по настройке анализаторов SAST и оригинальный тикет.
Обновления анализаторов SAST
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure
Статическое тестирование безопасности приложений (SAST) в GitLab включает в себя множество анализаторов безопасности, активно управляемых, поддерживаемых и обновляемых командой статического анализа GitLab. Ниже представлены обновления анализаторов, выпущенные в релизе 14.2. В этих обновлениях появилось расширенное покрытие, исправление ошибок и другие улучшения.
-
GoSec обновили до версии 2.8.1: мерж-реквест, список изменений, уведомление о поддержке версии 1.16.
-
Security Code Scan обновили до версии 5.2.1: мерж-реквест, список изменений, уведомление об обновлении мажорной версии.
-
ESLint обновили до версии 7.32.0: мерж-реквест, список изменений.
-
Semgrep обновили до версии 0.60.0: мерж-реквест, список изменений.
Если вы:
- Используете поставляемый GitLab шаблон SAST (SAST.gitlab-ci.yml), то вам не нужно ничего делать, чтобы получить эти обновления. Однако если вы переопределяете или используете свой собственный шаблон CI/CD, вам потребуется обновить конфигурации CI/CD.
- Хотите использовать определённую версию любого анализатора, теперь вы можете закрепить минорную версию анализатора. Закрепление одной из предыдущих версий отменит автоматические обновления анализатора, и вам потребуется вручную менять версию анализатора в шаблоне CI/CD.
Документация по настройке анализаторов SAST и оригинальный тикет.
Автоматическое создание файла конфигурации для CI/CD-туннеля
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure
До сих пор пользователям туннеля CI/CD агента GitLab Kubernetes приходилось вручную добавлять соответствующий файл конфигурации kubeconfig
в задание CI/CD. Для создания файла kubeconfig
нужно было редактировать определение конвейера CI/CD, знать идентификатор агента и понимать структуру kubeconfig
. К тому же, определение конвейера CI/CD содержит шаблонный код.
Теперь GitLab добавляет файл kubeconfig
, содержащий все доступные соединения агента для данного проекта. Пользователю нужно только выбрать для использования правильный kubecontext
.
Документация по CI/CD-тоннелю и оригинальный тикет.
Быстрое действие для обновления серьёзности инцидента
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Monitor
Теперь вы можете изменить серьёзность тикета, созданного из инцидента, с помощью быстрого действия /severity
. Например, быстрое действие /severity 3
в тикете инцидента устанавливает степень серьёзности 3. Этот удобный способ позволяет реагирующим на инциденты быстро обновлять инцидент и сразу же возвращаться к решению проблемы.
Документация по изменению серьёзности инцидентов и оригинальный тикет.
К результатам поиска добавить возможность копирования пути к файлу
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Доступность
При поиске по GitLab пользователи зачастую хотят после открыть найденные файлы в каком-либо редакторе. Поэтому в GitLab 14.2 рядом с путём к файлу в результатах поиска мы добавили значок для копирования найденного пути. Пользователи могут нажать на значок, чтобы скопировать/вставить путь и открыть файл в своём редакторе.
Документация по расширенному поиску и оригинальный тикет.
Улучшения удобства использования
В каждом релизе мы делаем шаги в сторону повышения общей эффективности и полезности нашего продукта. У нас также есть Галерея UI Polish для отслеживания важных обновлений наших интерфейсов. Эти обновления, хоть часто и небольшие, заметно улучшают удобство использования.
Некоторые из заметных улучшений, делающих удобнее GitLab 14.2:
- Предотвращение случайного удаления репозиториев образов контейнеров.
- Улучшены сообщения об ошибках при сбое получения тикета Jira.
- Всплывающие окна вместо подсказок для встроенных советов по улучшению качества кода.
- Теперь стало понятнее, где визуальное ревью, а где ревью в отдельном приложении.
Посмотрите все улучшения удобства использования в GitLab 14.2
Полный текст релиза и инструкции по обновлению/установке вы можете найти в оригинальном англоязычном посте: GitLab 14.2 released with the Build Cloud for macOS beta and Markdown preview.
Над переводом с английского работали cattidourden, maryartkey, ainoneko и rishavant.
RainbowJose
Напомню, что обновлять гитлаб нужно постепенно(в данном случае я про omnibus сборки), хуярить latest раз в пол года - плохая идея.
Изучите:
https://docs.gitlab.com/ee/update/#version-specific-upgrading-instructions
https://docs.gitlab.com/ee/update/#upgrade-paths
aionin Автор
Мат уберите из комментария
AlexGluck
По моему это крик души, а не мат)
RainbowJose
Забыли спросить.