Вышел релиз GitLab 12.3 с файерволом для веб-приложений, аналитикой продуктивности и улучшениями для соответствия требованиям

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

Релиз этого месяца — GitLab 12.3 — особенно важен для нас, так как следует за полной событий неделей, на протяжении которой мы провели первую конференцию для пользователей GitLab в Бруклине и объявили о завершении раунда финансирования E в размере 268 миллионов долларов. Благодаря этому финансированию мы сможем вложиться в улучшение наших предложений для DevOps, включая мониторинг, безопасность и планирование — все в лучшем виде.

Файервол для веб-приложений

Современные веб-приложения подвержены множеству новых рисков из разных мест, включая, потенциально, каждого клиента, что подключается и генерирует трафик. Файервол для веб-приложений (Web Application Firewall, WAF) позволяет отслеживать состояние и создавать правила для защиты ваших приложений на продакшне. В релизе 12.3 мы представляем вам первую версию файервола, встроенную в платформу GitLab SDLC. Его основные задачи — мониторинг и создание отчетов о проблемах безопасности вашего кластера Kubernetes. В последующих релизах мы расширим возможности WAF до блокировки подозрительного трафика, создания и управления правилами файервола и оповещения на ранних стадиях разработки для снижения дальнейших рисков.

Аналитика продуктивности (первый релиз)

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

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

Работа над соответствием требованиям

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

И даже больше!

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

Зарегистрируйтесь и принимайте участие в нашей первой европейской конференции в Лондоне 9 октября! Приглашаем на наши встречи

GitLab MVP badge

MVP этого месяца — Cédric Tabin

Благодаря Cédric в этот релизе появилось новое ключевое слово для заданий CI, которое определяет, может ли задание быть отменено. Работа над этой фичей в сотрудничестве с нашими командами ревью велась более 9 месяцев.

Огромное спасибо Cédric за неутомимый труд над этой фичей!

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

Файервол для веб-приложений в Kubernetes Ingress

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

При установке приложения Ingress в ваш кластер Kubernetes GitLab теперь добавляет для веб-приложений файервол-плагин modsecurity.

Этот плагин определяет, не содержит ли HTTP или HTTPS трафик к вашему приложению какого-либо вредоносного кода, например, SQL-инъекцию, межсайтовые скрипты или троян. Предварительная настройка содержит набор правил OWASP ModSecurity Core Rules (CRS), которые позволяют обнаруживать множество разных атак уже из коробки.

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

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

Аналитика продуктивности

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

На данный момент есть не так много источников информации, которая могла бы помочь руководителям понять продуктивность их команды, проекта и группы. Как однажды сказал Peter Drucker: «Улучшается то, что измерено». Мы разделяем это мнение, поэтому мы выпустили первую версию аналитики продуктивности в надежде помочь руководителям команд разобраться в неочевидных паттернах и найти лучшие решения для общего повышения производительности. Для начала мы сконцентрировались на времени, необходимом для принятия мерж-реквеста в зависимости от его размера. Пользователи могут использовать существующие фильтры для того, чтобы получить выборку по конкретному автору или метке в группе за указанный период. В дальнейшем мы добавим больше возможностей для работы с данными, чтобы пользователи могли оценить зависимости, влияющие на время собственно разработки и ожидания.

Обратите внимание, что в первом релизе аналитики продуктивности мы не заполняем данные за прошлые периоды для новых метрик, чтобы эти процессы не замедляли ваше обновление с версии 12.2 на 12.3. Мы работаем над этим, за обновлением вы можете следить в соответствующем тикете.

Productivity Analytics

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

Отображение развертываний и окружений группового кластера

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

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

Global view for group-level cluster deployments/environments

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

<h2 id=”leverage-merge-request-approvals-to-prevent-merging-prohibited-licenses-mvc”>Правила подтверждения мерж-реквестов, ограничивающие запрещенные лицензии</h2> (ULTIMATE, GOLD) Стадия цикла DevOps: “Secure”

Если у вас есть строгие ограничения по лицензиям, вы можете настроить License Compliance и запретить мерж, когда в мерж-реквесте присутствует запрещенная лицензия. Так вы предотвратите появление в коде запрещенных лицензий. Сейчас вы можете задать подверждающих для группы License-Check в настройках проекта и потребовать проверку.

Leverage merge request approvals to prevent merging prohibited licenses MVC

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

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

Аналитическое рабочее пространство

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

Продуктовые команды и разработчики могут входить в разные группы и проекты GitLab, а аналитика обычно разрабатывается на уровне проекта. Поэтому мы создали специальное рабочее пространство, где пользователи могут собирать данные из разных групп, подгрупп и проектов. Рабочее пространство для аналитики упрощает анализ и управление метриками участниками команды и ее руководителями. Эта фича доступна в плане Core, но в некоторых случаях определенные ее функции будут доступны только для Enterprise Edition. По мере ее развития мы гарантируем, что текущая функциональность аналитики на уровне проекта будет доступна пользователям Community Edition при переходе в новое рабочее пространство.

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

Analytics Workspace

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

Уведомления для управления дизайном

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

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

Design Management notifications

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

API для правил подтверждения мерж-реквестов

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

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

В этом релизе мы добавили правила подтверждения в API проектов и мерж-ревестов.

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

Горячие клавиши для следующего и предыдущего нерешенного обсуждения

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

Ревью, обсуждение и закрытие фидбэка лежат в основе ревью кода на GitLab. Кнопка Jump to next unresolved discussion (к следующему нерешенному обсуждению) позволяет быстро переключаться между обсуждениями.

В релизе 12.3 мы добавляем новые горячие клавиши n для следующего и p для предыдущего нерешенного обсуждения в мерж-реквестах для большего удобства ревью.

Keyboard shortcut for next and previous unresolved discussion

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

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

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

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

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

Обратите внимание, что эта фича доступна только через API в GitLab 12.3. В следующем релизе 12.4 она будет также доступна через настройки защищенных веток. Вы можете следить за обновлениями здесь: #13251.

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

Ключевое слово ‘rules’ для гибкого управления поведением конвейера

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

Правила only/except в конвейерах могут иметь множество вариантов поведений, и, по мере того, как к вашему конвейеру добавляется все больше правил, становится все сложнее понять, будет ли данная задача запускаться в той или иной ситуации. Мы добавили новый синтаксис с ключевым словом rules:, при помощи которого будет намного проще применять сложные правила и разбираться в их поведении. Этот синтаксис опционален и может работать в рамках одного и того же конвейера, но не в одних и тех же заданиях, как при использовании правил only/except.

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

Правильное отображение ‘only/except: external_pull_requests’ для внешних репозиториев

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

В GitLab CI есть внешние репозитории для управления источником и использования GitLab для CI/CD. Однако, до сих пор CI_PIPELINE_SOURCE всегда выводила в качестве источника push, поскольку он был основан на зеркале пула, а не на внешнем репозитории или ссылке. Из-за этого GitLab не мог правильно отображать опции вроде only/except: merge_requests. В релизе 12.3 мы избавились от этой проблемы.

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

Удаление образов конвейера из CI/CD

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

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

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

Remove container images from CI/CD

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

Валидация областей при проведении полного активного сканирования DAST

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

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

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

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

Обновление анализатора SAST Spotbugs для Java 11

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

Для сканирования кода, написанного на Java 11 мы обновили анализатор SAST SpotBugs. Для активации этой возможности настройте переменную SAST_JAVA_VERSION в вашем проекте.

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

Кнопка запуска для конвейеров мерж-реквестов

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

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

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

Пользовательские переменные CI для сборок Docker с Auto DevOps

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

Переменные CI позволяют вам настраивать работу процессов, запускаемых при сборке приложений в ходе работы конвейера CI. Начиная с GitLab 12.3 вы можете делать переменные CI доступными для стадии docker build в Auto DevOps через новое значение build secret. Перечислите необходимые переменные, используя AUTO_DEVOPS_BUILD_IMAGE_FORWARDED_CI_VARIABLES, и они станут доступными для сборки Docker.

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

Knative для кластеров уровня группы и инстанса

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

Кластеры уровня группы и инстанса теперь поддерживают установку Knative — платформы на основе Kubernetes для развертывания бессерверных разработок и управления ими. Это позволит нескольким проектам использовать возможности GitLab Serverless в пределах одного кластера.

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

Линейные графики для панели метрик

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

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

Line charts for metrics dashboard

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

Быстрые действия для добавления/удаления Zoom-встреч в тикетах

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

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

Как только пользователь создает Zoom-встречу, он может прикрепить ее к тикету, используя быстрое действие и добавляя ссылку на нее (например, /zoom https://gitlab.zoom.us/s/123456). В тикете появится кнопка, по нажатию на которую пользователь получит прямой доступ к конференц-мосту. После разрешения инцидента Zoom-встречу можно удалить при помощи /remove_zoom.

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

Quick actions to add/remove Zoom meetings on issues

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

Geo отображает задержку репликации при пуше через Git HTTP

(PREMIUM, ULTIMATE) “Enablement”

Скачивание больших объемов данных может занимать много времени для пользователей в удаленных локациях. Репликация репозиториев через Geo уменьшает время клонирования и скачивания репозиториев путем создания вторичных нод, предназначенных только для чтения, неподалеку от удаленного пользователя. Так как вторичные ноды отстают от первичной, Geo теперь дает оценку задержки копирования при каждом выполнении git push через HTTP. Это повышает видимость при использовании нод Geo и позволяет пользователям обнаруживать увеличение задержки копирования и сообщать о них системным администраторам.

Из-за ограничений протокола HTTP это сообщение не будет доступным при выполнении git pull.

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

Отключение двухфакторной аутентификации для выбранных провайдеров OAuth

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

Организации, использующие двухфакторную аутентификацию и поставщик учетных записей, также использующий 2FA, могут считать избыточной необходимость проводить аутентификацию дважды. Благодаря вкладу сообщества, теперь вы сможете обходить двухфакторную аутентификацию для выбранных поставщиков учетных записей OAuth. Для организаций, которые пользуются поставщиками учетных записей с двухфакторной аутентификацией, это сделает вход в GitLab намного проще и удобнее.

Спасибо dodocat за эту фичу!

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

Ограничение IP-адресов поддерживает несколько подсетей

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

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

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

Статусы и информация о дискуссиях по дизайнам

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

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

Design Management status and discussion counts

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

Сжатие объявлений ссылок Git при передаче через HTTP

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

При получении изменений в git-репозиторий сервер Git объявляет список всех ветвей и тегов в хранилище. Это называется Git ref advertisements и может в больших проектах занимать много мегабайт. В GitLab 12.3 при получении объявлений ссылок по HTTP они будут сжиматься для поддерживаемых клиентов, что сократит объем передаваемых данных и ускорит операции получения данных.

За средний рабочий день GitLab.com выдает около 850 ГБ объявлений ссылок по HTTP. После включения сжатия количество переданных байтов уменьшилось примерно на 70 процентов.

Compress Git ref advertisements over HTTP

Оригинальный тикет

События Git Push в журнале аудита (бета-версия)

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

Историю Git можно переписать, изменив коммиты, авторов и временные метки, чтобы создать ясную и полезную историю для будущих разработчиков. Для аудита с этим возникают проблемы.

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

В следующем релизе запись событий Git push в журнал аудита будут включена по умолчанию. Подробнее смотрите в тикете #7865.

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

Более «умные» параметры коммита по умолчанию в Web IDE

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

Ранее в Web IDE по умолчанию использовался вариант Коммит в текущую ветку при выполнении коммита. Это приводило к тому, что те, у кого есть достаточные права доступа, могли случайно запушить изменения в master или в другие защищенные ветви. Теперь при внесении изменений через Web IDE параметры коммита по умолчанию более разумны, чтобы предотвратить изменение не той ветки. Улучшенные параметры коммита предотвращают случайные изменения в master и в защищенных ветках для пользователей, имеющих права на запись. Когда у пользователя нет прав на запись, предоставляются дополнительные сведения о том, почему варианты недоступны. Кроме того, новые параметры также поддерживают коммиты в ветке не по умолчанию с существующим мерж-реквестом или без него.

Smarter Web IDE default commit options

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

Таймауты для каждого задания для конвейеров CI/CD

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

Разные задания имеют разные характеристики выполнения, и могут потребоваться разные таймауты для каждого задания. Значение таймаута можно настроить, добавив ключевое слово timeout: к заданию в .gitlab-ci.yml вместе с числом, указывающим количество минут ожидания сбоя задания.

Спасибо Michal Siwek за эту фичу.

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

Ключевое слово 'interruptible’ для указания, можно ли безопасно отменить задание

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

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

Из-за ошибки в Runner некоторые исполнители не останавливают выполняемые задания при отмене. Это планируется исправить в 12.4.

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

Проверка состояния для триггеров конвейера

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

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

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

Конечная точка API для отображения образов/тегов Docker для группы

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

Реестр контейнеров GitLab позволяет пользователям создавать и помещать образы/теги Docker в свой проект из командной строки, из CI/CD или из API. Однако до GitLab 12.3 мы не предлагали никакой возможности просматривать образы/теги на уровне группы, что очень часто запрашивали пользователи.

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

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

Сканирование SAST без Docker-in-Docker

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

Сканирование SAST теперь можно выполнять и без использования Docker-in-Docker. Это значит, что сканирование SAST можно настроить так, чтобы ему не требовались повышенные привилегии.

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

Редактирование причины отклонения уязвимости

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

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

Edit vulnerability dismissal reasons

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

Улучшение начальной настройки страниц

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

Чтобы улучшить пользовательский интерфейс страниц (GitLab Pages), мы добавили баннер, который уведомляет пользователей о возможном времени начальной настройки. Мы понимаем, что сообщение «Поздравляем» может раздражать, если страница недоступна. Баннер помогает понять, чего ожидать.

Improve Pages initial setup experience

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

Отображение кластера Kubernetes, используемого для развертывания

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

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

Show Kubernetes cluster used for deployment

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

JupyterHub для групповых кластеров Kubernetes

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

Кластеры на уровне группы теперь поддерживают установку JupyterHub, многопользовательской службы для простого запуска блокнотов, а также для создания перечней задач (runbooks) для операторов. Это повысит доступность JupyterHub для кластеров как на уровне проекта, так и на уровне группы.

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

Можно закрыть тикет с помощью слэш-команды в Slack

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

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

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

Close issue via slash command in Slack

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

Geo нативно поддерживает репликацию реестра Docker

(PREMIUM, ULTIMATE) “Enablement”

Geo нативно поддерживает репликацию реестра Docker между первичной и вторичной нодами Geo. Это позволяет пользователям Geo использовать реестр Docker на соседней вторичной ноде. Этот подход не зависит от хранилища и может использоваться для локального хранилища или хранения таких объектов, как S3.

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

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

Активность через API включена в ограничение для группы IP-адресов

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

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

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

Системные хуки для обновлений участников проекта и группы

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

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

Спасибо Brandon Williams за эту фичу!

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

Подписание электронной почты с помощью S/MIME

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

Письма-уведомления, отправленные GitLab, теперь могут быть подписаны с помощью S/MIME для повышения безопасности на уровне инстанса.

Спасибо Siemens, @bufferoverflow и @dlouzan за эту фичу!

Документация по подписанию электронной почты с помощью S/MIME и оригинальный тикет.


Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 12.3 released with Web Application Firewall and Productivity Analytics.

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