Вышел релиз GitLab 12.0 с визуальными ревью и списком зависимостей

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

Разработка, безопасность и операции

GitLab 12.0 — важный шаг на нашем пути к созданию универсального подхода DevSecOps, поддерживающий нашу миссию «каждый может внести вклад».

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

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

Визуальные ревью

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

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

Список зависимостей проекта

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

Теперь список зависимостей проекта доступен в одном удобном месте.

Ограничение доступа по IP-адресам

Некоторые организации ограничивают доступ к своим репозиториям по определенным IP-адресам. С релизом GitLab 12.0 вы можете запретить доступ к данным на GitLab не с разрешенных IP-адресов.

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

GitLab MVP badge

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

Wolphin сделал в GitLab 12.0 очень важную фичу: поддержку множественных extends в CI GitLab. Эта мощная функциональность стала еще более удобной!

Огромное спасибо за этот вклад, Wolphin!

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

Визуальные ревью

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

У пользователей GitLab есть возможность автоматически создавать приложения для ревью для каждого мерж-реквеста (в русской локализации GitLab «запрос на слияние»). Благодаря этому каждый может следить за изменениями в дизайне или UX.

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

Visual Reviews

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

Список зависимостей проекта

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

Теперь список зависимостей проекта (или BOM — Bill of Materials) доступен в левом боковом меню.

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

Project dependency list

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

Ограничение доступа по IP-адресам

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

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

Restrict access by IP address

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

Синхронизация файлов с веб-терминалом

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

С релизом 12.0 изменения, сделанные в Web IDE, будут автоматически синхронизироваться с веб-терминалом, так что вы сможете протестировать их в терминале перед отправкой в проект. Это поможет новым участникам быстрее начинать работу и просматривать, редактировать и тестировать проект без установки локальных зависимостей.

Обратите внимание, что на GitLab.com интерактивные веб-терминалы работают только с частными обработчиками заданий (private runner).

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

Интеграция Git для JupyterHub

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

Развертывание JupyterHub через интеграцию GitLab с Kubernetes помогает быстрее начать работу с блокнотами Jupyter, которые можно использовать для создания и обмена документами с «живым» кодом, графиками и перечнями задач (runbook).

Начиная с релиза GitLab 12.0 расширение Git для JupyterLab настраивается автоматически при установке JupyterHub на ваш кластер Kubernetes. Эта интеграция позволяет целиком контролировать версии ваших блокнотов и выполнение команд Git в Jupyter; команды Git могут быть вызваны через левую панель или с помощью командной строки Jupyter.

Git integration for JupyterHub

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

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

Поддержка множественных extends в .gitlab-ci.yml

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

Ключевое слово extends помогает пользователям поддерживать их код для CI/CD GitLab аккуратным. Продвинутые пользователи часто используют это ключевое слово для переиспользования частых секций кода CI/CD; наши команды тоже используют его для самого GitLab и для улучшения Auto DevOps.

В релизе 12.0 мы рады добавить улучшение, которое внес Wolphin — теперь в рамках одного задания может быть несколько блоков extends, и благодаря этому вы сможете дальше улучшать свои конфигурации для CI.

Спасибо, Wolphin!

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

Цепочки последовательных мерж-реквестов

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

Вместе с релизом 12.0 мы представляем новый способ поддерживать ваши master-ветки и ветки релизов «зелеными»: цепочки мерж-реквестов. Цепочки последовательных мерж-реквестов основываются на конвейерах (в русской локализации GitLab «сборочные линии») по результатам мерж-реквеста и дают возможность последовательно запускать такие конвейеры.

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

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

Sequential merge trains

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

Сворачиваемые логи заданий

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

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

Разработка этой фичи началась со вклада Matthias van de Meent. Спасибо, Matthias!

Collapsible job logs

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

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

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

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

Group-specific notification email addresses

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

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

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

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

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

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

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

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

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

Это позволит командам по обеспечению безопасности и разработчикам делать ревью истории и разбираться в причинах отсутствия исправлений.

Add a reason when dismissing vulnerabilities

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

Работа с разрешениями пользователей только через LDAP

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

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

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

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

Предотвращение удаления проектов не-админами

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

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

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

Prevent non-admins from deleting projects

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

GitLab Insights

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

GitLab Insights, представленные в GitLab Ultimate 11.9 как подключаемая фича, теперь общедоступны в GitLab Ultimate 12.0.

Настраивайте Insights, которые важны для ваших проектов, для поиска данных, таких как чистота сортировки, созданные/закрытые тикеты за выбранный период, среднее время принятия мерж-реквестов и многое другое.

GitLab Insights

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

Email-уведомления для неудачных сборок на master

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

Интеграция с сервисом Pipeline Emails позволяет пользователям создавать уведомления на email нескольким получателям при удачном и неудачном завершении сборки.

В GitLab 12.0 мы добавили опцию для отправления уведомления о неудачной сборке только на ветке проекта, установленной по умолчанию (например, master).

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

Email notifications for broken master builds

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

Улучшенная поддержка передачи переменных в конвейеры на уровень ниже

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

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

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

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

Более быстрое создание клонов для всех новых проектов в GitLab CI/CD

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

Начиная с GitLab 8.9 наши CI/CD поддерживали небольшие git-клоны через переменную GIT_DEPTH в определении задания.

В GitLab 12.0 мы добавили возможность задавать глубину клона на уровне проекта, позволяя maintainers (в русской локализации GitLab «сопровождающие») проекта при желании устанавливать создание небольшого клона по умолчанию. Создать такой git-клон быстрее, чем каждый раз клонировать весь репозиторий. Если ваши задания CI/CD работают на сборку последней версии, зачастую достаточно небольшого клона.

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

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

Задание прокси для зависимостей по умолчанию для всей группы

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

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

В GitLab 12.0 мы подключили эту фичу по умолчанию на уровне группы.

Dependency proxy is enabled per-group by default

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

Шаблон Maven теперь автоматически делает пуш в Maven Repository

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

Java-разработчикам нужен простой способ производить сборку зависимостей и управлять ими при работе с конвейерами GitLab CI/CD.

В GitLab 12.0 мы изменили стандартный шаблон Maven.gitlab-ci.yml так, чтобы пользователям было проще загружать свои Java-зависимости и управлять ими через конвейеры GitLab CI/CD в репозитории Maven.

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

Удаление тегов из реестра контейнера через API

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

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

В GitLab 12.0 мы обновили модель разрешений, чтобы позволить разработчикам удалять теги.

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

Дедупликация объектов git (бета-версия)

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

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

В GitLab 12.0 дедупликация объекта может быть включена администраторами инстанса при помощи подключаемой фичи object_pools. Когда фича включена, при создании ветвления также будет создан пул объектов и будет использован objects/info/alternates для уменьшения требований к хранилищу.

Дедупликация объектов требует, чтобы родительский проект и текущий проект использовали хэшированное хранилище. Существующие ветвления пока не перемещаются в пулы объектов автоматически. Информацию по обновлениям смотрите здесь: gitaly#1560.

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

Дедупликация объектов появилась на GitLab.com 30 мая 2019, но пока она по умолчанию выключена для пользовательских инстансов из-за предупреждения о дупликации битовой карты (bitmap) при извлечении. Эта задача была решена в версии 12.0, но нам не хватило времени, чтобы подключить эту функциональность к выходу этого релиза.

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

Включили кэширование хэша битовой карты Git для ускорения переупаковки

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

В GitLab 12.0, при перепаковке репозиториев Git, кэш хэша битовой карты будет сохранен в его индексе. Кэширование ускоряет перепаковку, особенно при использовании дельта-островов.

Обратите внимание, что версии JGit до 3.5.0 несовместимы с этой фичей.

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

Проверка учетных данных Kubernetes, предоставленных при создании кластера

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

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

Если что-то пойдет не так, появятся соответствующие предупреждения.

Validate Kubernetes credentials provided at cluster creation

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

Использование бессерверной архитектуры GitLab с существующими установками Knative

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

До этого релиза бессерверные функции GitLab (GitLab Serverless) можно было использовать только при установке Knative через GitLab. С GitLab 12.0 существующие установки Knative теперь могут использовать GitLab Serverless. Просто добавьте существующий кластер вручную, потом добавьте соответствующие бессерверные шаблоны в ваш проект, и GitLab доделает все остальное.

Это значит, что теперь вы можете использовать GitLab Serverless с размещенными предложениями Knative, такими как Cloud Run on GKE от Google или размещенный сервис Knative от IBM.

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

Ссылка и доступ к конференции Zoom из тикета

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

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

Link and access a Zoom meeting from an issue

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

Ссылка на внешние панели мониторинга из панелей управления окружением

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

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

Link to external dashboards from environment dashboards

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

Уведомления о лимитах для общих обработчиков заданий CI на GitLab.com

(FREE, BRONZE, SILVER, GOLD)

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

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

Добавили возможность запрашивать эпики в GraphQL

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

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

В этом релизе GitLab теперь поддерживает возможность запрашивать эпики (в русской локализации GitLab «цели») в API GraphQL.

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

API тикетов теперь выдает статистику завершения задачи

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

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

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

Новый дизайн обсуждения по темам

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

Наш существующий дизайн для обсуждения мерж-реквестов и тикетов включал в себя множество рамок и границ, часто затрудняя отслеживание разговора.

В GitLab 12.0 мы провели редизайн для улучшения удобства обсуждений.

New threaded discussion design

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

Дополнительная статистика из API тикетов

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

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

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

Улучшения системных заметок для добавления и удаления отношений эпиков

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

Изменения в отношениях между эпиками ранее не записывались как системные заметки в ленте обсуждения эпика. С этим релизом в системные заметки теперь записывается добавление или удаление отношений между эпиком и вложенным эпиком.

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

Добавление и удаление вложенных эпиков с помощью быстрых действий.

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

Раньше вложенные эпики нельзя было добавить или удалить с помощью быстрых действий. С GitLab 12.0 стало возможным добавлять и удалять вложенные эпики с помощью команд быстрых действий /child_epic и /remove_child_epic.

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

Больше не требуется Docker в Docker для DAST

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

Для Dynamic Application Security Testing (DAST) больше не требуется использование Docker. В результате образ DAST Docker (3 ГБ) теперь будет кэшироваться в Runners.

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

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

GitLab Runner 12.0

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

Мы также выпускаем обновление обработчика заданий GitLab 12.0! GitLab Runner — проект с открытым исходным кодом, который используется для выполнения заданий CI/CD и отправки результатов обратно в GitLab.

Самые важные изменения:

Как упоминалось в предыдущих статьях, в версии GitLab Runner 12.0 мы также убрали несколько ранее устаревших (deprecated) вещей:

Список всех изменений можно найти в CHANGELOG для GitLab Runner.

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


Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 12.0 released with Visual Reviews and Dependency List.

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