Вышел релиз GitLab 13.8 с редактором конвейеров и первой из метрик DORA

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

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

Новый редактор конвейеров сделает работу с CI/CD проще

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

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

Улучшите степень внедрения DevOps с метриками частоты развёртываний

Как лидеры в сфере IT, так и отдельные специалисты используют DevOps. Разработчикам и инженерам DevOps облегчает работу, в то время как крупным игрокам DevOps помогает повысить эффективность их бизнеса. В течение нескольких лет DORA (DevOps Research and Assessment) проводила первичные исследования о влиянии внедрения DevOps на предприятия. Опубликованные результаты исследований показали, что внедрение DevOps приводит к положительным бизнес-результатам, таким как более довольные клиенты, большая доля рынка и увеличение доходов. Но наиболее тесно коррелируют с показателями эффективности бизнеса четыре показателя, известные как “DORA 4”. Это частота развёртываний, время выполнения изменений, время восстановления сервиса и частота сбоев после новых изменений.

Многие наши пользователи сообщали, что хотят оценивать эти показатели, чтобы их можно было улучшить. Тем не менее, оснащение ваших систем инструментами для сбора данных и составления отчётов по этим показателям может быть сложным и трудоёмким делом. Мы решили встроить эти инструменты в GitLab, чтобы вы могли сосредоточиться на улучшении степени внедрения DevOps, а не на инструментах. Начиная с GitLab 13.8 в CI/CD-аналитике появились графики частоты развёртываний. Это — всего лишь первая из метрик DORA 4, которые появятся в GitLab. На предстоящий год мы запланировали добавить три оставшиеся метрики, чтобы вы могли оценить и оптимизировать вашу работу с DevOps.

Ещё несколько фич для более комфортной работы

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

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

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

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

GitLab MVP badge

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

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

Yogi — фантастический пример того, как участники сообщества могут принять и развивать ценности GitLab: прозрачность, итерирование и совместную работу. Огромное спасибо Yogi за это!

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

Редактор конвейеров

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

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

Наш редактор значительно облегчает процесс написания CI-конфигураций как для начинающих, так и для опытных пользователей. Редактор конвейера — комплексное решение, которое объединяет в одном месте все существующие (и будущие) возможности по созданию конфигураций CI. Таким образом, редактор конвейера — это лучшее место для настройки ваших конвейеров.

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

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

Линтер CI на странице редактора конвейеров

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

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

CI lint tool in the pipeline editor page

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

Подтверждение CI/CD конфигурации в редакторе конвейеров

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

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

CI/CD configuration validation in Pipeline Editor

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

Визуальное отображение конфигурации конвейера

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

Разработчикам может быть трудно разобраться в сложной конфигурации CI, особенно пытаясь спрогнозировать, как поведёт себя конвейер. Без наглядного отображения сложно представить структуру взаимоотношений между всеми заданиями и понять, как все они связаны. В первой итерации отображения структуры конвейеров вы можете увидеть наглядное представление вашего файла .gitlab-ci.yml, что позволит вам лучше представлять и прогнозировать, как ваши конвейеры будут работать.

Visualization of pipeline configuration

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

Графики частоты развёртываний

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

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

Deployment frequency charts

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

Отправляйте комментарии в тикет по электронной почте

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

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

Send an email to an issue

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

Более удобный выбор блока для комментария к нескольким строкам диффа

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

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

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

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

Скачивайте артефакты через виджет мерж-реквеста

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

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

Download artifacts directly from the merge request widget

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

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

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

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

Первая версия (MVC, minimal viable change) счётчика повторений непрохождения теста будет отображать в виджете сводных результатов тестов мерж-реквеста информацию о том, сколько раз тест не прошёл на предыдущих конвейерах. В этом тикете мы ждём обратную связь от нашего сообщества, чтобы понять, что мы можем улучшить в будущих итерациях этой фичи.

Repeat failed test counter

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

Доски развёртывания доступны в плане Core

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

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

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

Deploy Boards are available in Core

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

Быстрое действие для rebase в мерж-реквесте

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

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

В GitLab 13.8 появилась возможность выполнять rebase с помощью быстрого действия в мерж-реквесте. В комментарии к мерж-реквесту введите /rebase и нажмите кнопку Комментировать для быстрого вызова git-утилиты rebase. Всё действительно так просто.

Rebase quick action for merge requests

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

Распределённое чтение для кластеров Gitaly

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

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

Пользователи также хотят предотвратить снижение производительности от активных соседних репозиториев на той же ноде. Эта проблема особенно остро стоит для больших загруженных монорепозиториев, где тысячи инженеров и конвейеров CI обращаются к одному и тому же Git-репозиторию одновременно. Горизонтально распределяя запросы на чтение, кластеры Gitaly улучшают производительность во всех репозиториях кластера. Чтобы узнать больше о кластерах Gitaly и о том, как мы разработали собственное решение по управлению трафиком для них, прочтите пост в нашем блоге: Познакомьтесь с Praefect — менеджером трафика, который отвечает за высокую доступность ваших данных в Git.

Distributed Reads for Gitaly Cluster

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

GitLab Pages в Kubernetes-развёртываниях GitLab

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

GitLab Pages — это популярный сервис хостинга статических сайтов, встроенный в GitLab, и мы рады сообщить, что теперь он доступен для инстансов GitLab, запущенных на Kubernetes. GitLab Pages был одной из последних недостающих фич по сравнению с Omnibus-развёртыванием.

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

GitLab Pages is now available for Kubernetes deployments of GitLab

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

Ограничение доски до текущей итерации

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

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

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

Scope a board to the current iteration

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

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

Владельцы групп на GitLab.com смогут обходить принудительное использование SSO

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

В GitLab 13.8 владельцы групп смогут обходить принудительное использование единого входа для доступа к своим группам верхнего уровня. Это позволит владельцам групп изменять настройки SAML и предотвращать блокировку участников групп из-за ошибок в настройке SAML SSO или изменений на стороне поставщиков учётных записей.

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

Веб-хуки при редактировании и удалении участников групп

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

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

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

Поддержка предопределённых переменных в разделе CI include

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

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

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

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

Отображение всех доступных быстрых действий в автодополнении

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

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

Display all available quick actions in autocomplete

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

Группировка тикетов по меткам в отчёте по итерации

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

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

Group issues by label in the iteration report

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

Отключение фич операций в проекте

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

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

В GitLab 13.8 вы сможете отключать фичи операций для конкретных проектов. При этом у вас не будет доступа к этим фичам, а меню на левой боковой панели будет скрыто. Эту новую настройку можно применить в разделе Настройки > Основные в блоке Уровень доступа, доп. функции проекта, разрешения. Настроив проект таким образом, вы будете уверены, что в вашем интерфейсе видимы и доступны только те фичи, которые вы используете, и которые поддерживает ваш проект.

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

Опциональные разделы в файле владельцев кода

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

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

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

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

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

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

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

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

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

Настройка нескольких правил скачивания образов для исполнителя Docker

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

Когда ваши задания CI загружают образ контейнера из реестра контейнеров, потеря сетевого соединения может привести к потере часов разработки и негативно повлиять на развёртывания со строгими ограничениями по времени. Для решения этой проблемы мы добавили для Docker-исполнителя обработчика заданий GitLab поддержку нескольких значений конфигурации pull_policy, которая задаётся в файле обработчика заданий config.toml. Вы можете использовать эти значения или правила скачивания образов для настройки нескольких правил, что поможет смягчить урон при потере соединения. Например, если вы настроите pull_policy =["always", "if-not-present"], по умолчанию образ будет скачиваться каждый раз заново. Однако, если целевой реестр контейнеров будет недоступен, то Docker будет использовать правило if-not-present, что означает, что для этого задания конвейера будет использована локальная копия образа.

Configure multiple image pull policies for Docker executor

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

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

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

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

Что нового:

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

Список всех изменений обработчика заданий GitLab можно посмотреть в CHANGELOG.

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

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

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

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

Support variables for pipeline rules

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

Установка пакетов NuGet из группы или подгруппы

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

Вы можете использовать реестр пакетов вашего проекта для публикации и установки пакетов NuGet. Для этого нужно просто добавить ваш проект в качестве источника, используя NuGet CLI, Visual Studio или .NET CLI. Например, используя NuGet CLI, вы можете запустить:

nuget source Add -Name <source_name> -Source "https://gitlab.example.com /api/v4/projects/<your_project_id>/packages/nuget/index.json" -UserName <gitlab_username or deploy_token_username> -Password <gitlab_personal_access_token or deploy_token>

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

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

nuget source Add -Name <source_name> -Source "https://gitlab.example.com /api/v4/projects/<your_group_id>/packages/nuget/index.json" -UserName <gitlab_username or deploy_token_username> -Password <gitlab_personal_access_token or deploy_token>

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

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

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

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

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

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

Режим активного сканирования в профиле DAST по запросу

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

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

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

Больше данных SAST о степени опасности для уязвимостей JavaScript

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

Доступное в наших анализаторах безопасности статическое тестирование безопасности приложений (SAST) предоставляет данные о степени опасности найденных уязвимостей. Недавно мы обновили наш анализатор JavaScript ESLint, добавив поддержку степени опасности и данных CWE. Это повысит удобство использования и точность правил подтверждения для мерж-реквестов, так как меньшее число уязвимостей будет отображаться со статусом ‘Unknown’. Кроме того, эти данные будут отображаться на странице с дополнительной информацией по уязвимости и предоставлять ссылки на нужную информацию об уязвимостях. Это поможет разработчикам проще разбираться в проблемах и устранять их. В будущем мы дополним остальные анализаторы недостающими метаданными об уязвимостях и создадим механизм для добавления пользовательских метаданных об уязвимостях, что позволит организациям подстраивать результаты под определённые профили риска.

Improved SAST severity data for JavaScript vulnerabilities

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

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

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

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

Improved pipeline status email subject line

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

Управление файлами состояния Terraform через пользовательский интерфейс

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

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

Manage Terraform state files through the UI

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

Сравнение репозиториев и проверка на идентичность

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

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

Новое задание gitlab:git:checksum_projects позволяет системным администраторам выбрать несколько проектов по ID или обойти все проекты, и получить на выходе контрольную сумму всех ссылок Git, которые можно сравнить с копией конкретного проекта.

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

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

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

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

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

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

Улучшенный поиск файлов в расширенном поиске

(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Доступность

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

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

Improved file searching in Advanced Search

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

Однонодовые инстансы теперь по умолчанию будут обновляться до PostgreSQL 12

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

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

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

Многонодовые инстансы и любые вторичные ноды Geo должны будут переключиться с repmgr на Patroni перед обновлением с помощью Patroni. Затем вторичные ноды Geo можно будет обновить и синхронизировать повторно.

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

Индикатор состояния занятости

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

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

Busy status indicator

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

Перенос групп напрямую между инстансами

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

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

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

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

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

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

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

Экспорт требований в CSV-файл

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

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

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

Export requirements to a CSV file

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

Информация о правилах подтверждения для ревьюеров

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

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

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

Approval Rule information for Reviewers

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

Ссылайтесь на источник мерж-реквестов для squash и мерж коммитов

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

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

При использовании коммитов, выполняющих squash или мерж, информация о мерж-реквесте ранее не включалась. С релиз GitLab 13.8 ссылки на мерж-реквесты добавляются для всех типов коммитов, чтобы вы всегда могли узнать, где было внесено изменение.

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

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

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

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

Благодаря замечательному вкладу пользователя GitLab Frank Li, начиная с GitLab 13.8 в правом верхнем углу страницы вики появилась кнопка Редактировать боковую панель (Edit sidebar). Нажатие на эту кнопку автоматически создаст файл _sidebar, если он ещё не существует, и откроет его в редакторе страниц. Благодаря такому быстрому доступу создание и обслуживание пользовательской навигации в вики становится гораздо проще.

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

Используйте расширенный вывод для блокнотов Jupyter

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

Блокноты Jupyter — это документы, содержащие «живой код», уравнения, визуализации и повествовательный текст. Они широко используются для очистки и преобразования данных, численного моделирования, статистического моделирования, визуализации данных, машинного обучения и многого другого. Они могут использовать «расширенный вывод» для визуального отображения объекта, например файлов HTML, JPEG, SVG или LaTeX. Ранее для того, чтобы увидеть полностью отрендеренный контент блокнота Jupyter, было необходимо открыть его.

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

Use rich output for Jupyter notebooks

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

Управление статусом задания с помощью кодов завершения

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

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

Control job status using exit codes

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

Конфигурация проекта для управления хранением последних артефактов

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

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

В будущем изменение из gitlab#276583 позволит вам полностью отключить сохранение последних артефактов на уровне инстанса.

Project configuration to control storage of latest artifacts

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

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

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

Раньше нельзя было сначала запустить конвейеры для веток, а потом переключиться на конвейеры для мерж-реквестов при создании мерж-реквеста. Поэтому с некоторыми конфигурациями пуш в ветку мог привести к дублированию конвейеров, если в этой ветке уже был открыт мерж-реквест: один конвейер для ветки, а другой — для мерж-реквеста. Теперь вы можете использовать новую предопределённую переменную окружения $CI_OPEN_MERGE_REQUESTS в ваших конфигурациях CI, чтобы переключаться с конвейеров для веток на конвейеры для мерж-реквестов в нужное время и предотвращать создание избыточных конвейеров.

Use both branch and MR pipelines without duplication

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

Результаты фаззинг-тестирования API теперь видны в панели безопасности

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

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

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

API Fuzz Testing results now visible in Security Dashboard

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

Новый шаблон .latest.gitlab-ci.yml в DAST

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

В DAST GitLab всегда был только один шаблон, у которого не было версий и который обновлялся всякий раз, когда нам нужно было что-то изменить. Это оказалось неудобно для пользователей, чьи тесты ломались после обновления шаблона. Начиная с GitLab 13.8 мы представляем версию шаблона .latest. Этот шаблон включает все изменения шаблона, сделанные между основными релизами, включая несовместимые изменения. Это предупреждает пользователей о предстоящих изменениях и позволяет им протестировать изменения самостоятельно, прежде чем придётся переключиться.

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

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

Обновления провайдера GitLab Terraform версии 3.4

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

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

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

Загрузка скриншотов метрик сразу в инциденты

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

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

Upload metrics images directly to incidents

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

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

(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Доступность

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

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

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

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

Улучшение чартов GitLab

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

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

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

(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)

Вот некоторые баги, которые мы исправили в релизе 13.8, и о которых стоит упомянуть:

Все исправленные баги в GitLab 13.8.

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


Полный текст релиза и инструкции по обновлению/установке вы можете найти в оригинальном англоязычном посте: GitLab 13.8 released with a Pipeline Editor and DORA metrics.

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