Вышел GitLab 11.3 с репозиторием Maven и защищенными окружениями

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

С новым релизом GitLab 11.3 мы рады представить вам поддержку репозиториев Maven, владельцев кода (Code Owners), защищенные окружения и прогнозы для эпиков. Все это поможет автоматизировать управление окружениями и кодом, что позволит разработчикам на Java быть еще эффективнее.

Репозиторий Maven

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

Владельцы кода и защищенные окружения

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

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

Прогнозы для эпиков

В GitLab Ultimate появилось Управление Портфолио (Portfolio Management), что позволит автоматически предсказать даты начала и завершения эпика, основываясь на сроках задач в майлстоунах. Благодаря этому нововведению управляющие портфолио смогут сопоставлять планируемые даты начала и завершения с работой, запланированной на майлстоуны, получая представление о потенциальных отставаниях в рамках эпика. Это позволит быстрее принимать решения о том, что вы успеете доделать, и когда стоит корректировать планы.

Каждый может внести свой вклад

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

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

Приглашаем на наши встречи и на вебкаст релиза 11.3.

GitLab MVP badge

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

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

Спасибо, George, за постоянные вклады в улучшение GitLab, скоро ты получишь крутой набор мерча!

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

Репозиторий Maven

(PREMIUM, ULTIMATE, SILVER, GOLD)

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

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

Взгляните на тестовый проект, который пушит сборку в Maven-репозиторий GitLab, и вы увидите, как это просто!

Maven repository

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

Интерактивные веб-терминалы для Shell и Kubernetes Runners

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

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

Interactive web terminals for Shell and Kubernetes Runners

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

Улучшили переиспользование кода в .gitlab-ci.yml

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

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

Improve includes in <code>.gitlab-ci.yml</code> for reusing scripts

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

Вклады в приватные репозитории теперь можно включить в график на странице пользователя

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

Мы в GitLab любим ПО с открытым исходным кодом. Но иногда приходится работать над приватным проектом, который вы (пока) не готовы открыть публике. Или вы можете быть ограничены по причинам конфиденциальности. В любом случае GitLab на вашей стороне.

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

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

Include private contributions in user contribution graph

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

Редизайн страницы проекта

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

GitLab постоянно сохраняет фокус на улучшении интерфейса нашего продукта.

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

Redesigned project overview

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

Защищенные окружения

(PREMIUM, ULTIMATE, SILVER, GOLD)

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

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

Protected Environments

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

Владельцы кода

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

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

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

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

Code Owners

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

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

(ULTIMATE, GOLD)

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

Начиная с этого релиза вы можете переключаться между фиксированным значением этих дат к динамическому значению Из майлстоунов (From milestones). Как планируемое начало будет выбрана самая ранняя дата начала среди всех майлстоунов, привязанных к задачам этого эпика. Этот срок будет динамически меняться при добавлении и удалении задач, добавлении и удалении майлстоунов к этим задачам или при изменении дат майлстоунов. Аналогично будет работать динамическая дата завершения эпика.

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

Epic forecasting with integrated milestone dates

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

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

Уведомление о создании нового эпика можно подключить вручную

(ULTIMATE, GOLD)

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

New epic event as custom notification

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

Быстрое действие для добавления задачи в эпик со страницы задачи

(ULTIMATE, GOLD)

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

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

Также будет добавлено быстрое действие для открепления задачи от присоединенного эпика.

Quick action to add issue to epic (from issues)

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

Разрешение самостоятельного подтверждения мерж-реквестов

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

Пользователь, создавший мерж-реквест, может не быть автором изменений, а другие пользователи могут добавлять дополнительные изменения в открытый мерж-реквест. Maintainers теперь могут разрешать самостоятельное подтверждение (self-approval) мерж-реквестов в настройках проекта.

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

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

Отображение языков репозитория в обзоре проекта

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

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

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

Display repository languages on project overview

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

Настраиваемые шаблоны файлов для пользовательских инстансов

(PREMIUM, ULTIMATE)

Шаблоны для файлов LICENSE, .gitignore, Dockerfile и .gitlab-ci.yml позволяют легко добавлять эти часто встречающиеся файлы в проекты. Собственные шаблоны для таких файлов теперь можно добавлять в пользовательских инстансах GitLab, выбрав репозиторий-шаблон с ними.

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

Спасибо Daniel Barker за добавление настраиваемых шаблонов лицензий.

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

Шаблоны файлов в Web IDE

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

Шаблоны файлов для LICENSE, .gitignore, Dockerfile и .gitlab-ci.yml упрощают добавление этих общих файлов в проекты и теперь могут использоваться в Web IDE. Шаблоны файлов в Web IDE облегчают запуск нового проекта в веб-среде IDE и своевременное обновление этих важных файлов.

File templates in the Web IDE

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

Добавили поле названия проекта при создании нового проекта

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

Чтобы добавить название проекта в свой недавно созданный проект GitLab, раньше приходилось заходить в настройки проекта и прописывать соответствующую «человекочитаемую» часть адреса проекта (семантический URL).

С GitLab 11.3 мы добавляем поле названия проекта в форму «Создать проект». Кроме того, семантический URL теперь автоматически генерируется из названия проекта, при этом его все еще можно изменить вручную. Это ускоряет и упрощает создание нового проекта.

Define project name when creating a new project

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

Хранение загруженных файлов Wiki в репозитории Wiki

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

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

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

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

Поддержка SAST для Groovy

(ULTIMATE, GOLD)

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

С GitLab 11.3 мы добавляем Groovy в список языков, поддерживаемых GitLab SAST. Проекты, использующие этот язык, теперь обнаруживаются автоматически, так что для включения этой фичи не нужно ничего менять ни в коде, ни в определения конвейера. Auto DevOps также поддерживает ее как часть своей конфигурации по умолчанию.

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

Фильтр push-событий веб-хуков по веткам

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

Веб-хуки (webhook) для push-событий легко позволяют автоматически уведомлять внешние службы о новых коммитах. Однако ветви обычно имеют разную важность. Push-события теперь можно отфильтровывать по веткам, так что внешние службы будут уведомлены только о важных для вас изменениях.

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

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

Filter webhook push events by branch

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

Оповещения для метрик библиотек

(ULTIMATE, GOLD)

В GitLab 11.2 была добавлена возможность установки оповещений (alert) для настраиваемых метрик, что позволило разработчикам получать уведомления в случае возникновения каких-либо проблем с их приложениями.

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

Alerts for library metrics

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

Auto DevOps включен по умолчанию

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

Auto DevOps стал общедоступным в версии GitLab 11.0, и, хотя он получил широкое распространение, мы хотим, чтобы все пользователи GitLab воспользовались его широкими возможностями. Auto DevOps уже «из коробки» дает значительные преимущества, от автоматической сборки (Auto Build) до автоматического мониторинга (Auto Monitoring).

Начиная с GitLab 11.3, Auto DevOps будет включен по умолчанию как на GitLab.com, так и на пользовательских инстансах, чтобы каждый проект мог воспользоваться этими возможностями.

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

Auto DevOps enabled by default

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

Улучшения в GitLab Geo

(PREMIUM, ULTIMATE)

Мы постоянно сосредоточены на улучшении Geo, нашей фичи для географически распределенных команд. Некоторые из важных улучшений в GitLab 11.3:

Вы также можете прочитать о том, как мы создавали GitLab Geo.

Документация по конфигурации Geo и доска задач по Geo.

Автоматическое отключение Auto DevOps для проекта при первом сбое конвейера

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

В компании GitLab одна из ключевых продуктовых ценностей — “по умолчанию включено”. Когда мы вводим новую настраиваемую фичу, которая по нашему мнению очень важна, мы включаем ее по умолчанию, чтобы каждый смог получить от нее пользу. Хотя Auto DevOps поддерживает проекты, использующие наиболее популярные языки программирования, могут быть специализированные проекты, для которых требуется дополнительная настройка.

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

Automatically disable Auto DevOps for project upon first pipeline failure

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

Gitaly v1.0

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

Доступ к Git для регулярного использования GitLab теперь может происходить полностью через Gitaly, службу gRPC GitLab для доступа к Git. Это означает, что можно запустить Gitaly на своем сервере без NFS, когда включены все дополнительные фичи.

В следующем релизе Gitaly v1.1 все фичи будут включены по умолчанию. Все оставшиеся фичи будут использовать Gitaly, так что можно будет обойтись без NFS.

Читайте у нас в блоге о пути к Gitaly v1.0.

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

GitLab Runner 11.3

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

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

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

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

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

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

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

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

Теперь мы сразу размещаем эту информацию онлайн, чтобы ее можно было легче находить, а также ссылаться на нее. Список доступен для GitLab CE и GitLab EE.


Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 11.3 released with Maven Repository and Protected Environments.

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