Этот текст - перевод релизного поста из блога ГитЛаба. Перевод подготовлен компанией Softmart. Мы понимаем, что наш перевод далек от идеала, но считаем что даже такой перевод будут полезен многим, кто не владеет английским языком в достаточной мере. Иван Немытченко - @nem - евангелист ГитЛаба по мере возможности редактирует текст. Если вы готовы предложить свою помощь в переводе статей, будем только рады. Спасибо за понимание!

С GitLab 8.9 комфортнее работать в больших сложных проектах. Блокировка файлов, назначение приоритетов меткам, гибкие настройки уровня вовлеченности в проект, и возможность запретить объединение веток(merge) до момента, пока билд не выполнится успешно. В GitLab CI теперь можно указывать среды(production, staging, и т.д.) и задавать срок хранения артефактов. Появились шаблоны настроек CI, так что начать им пользоваться теперь еще проще.

Персона месяца(MVP) - Руи Сантос. Он разработал возможность ограничивать обьединение веток до прохождения билда. Спасибо Руи!

С версии 8.8.0 добавилось 1761 коммитов, 1947 файла были изменены. Что конкретно изменилось - смотрите ниже.

Блокировка файлов (опция EE)

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

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

Пример: Game assets

Вы разрабатываете игру. В разработке уровней игры может быть задействована куча народу. Заблокируйте файл уровня, над которым вы работаете, из интерфейса, кликнув на “Lock”:

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

Работа над уровнем закончена? Удаляйте блокировку! Список всех заблокированных файлов в репозитории найдете в Repository → Locked Files:

Функция блокирования файлов доступна только в редакции Enterprise Edition и на GitLab.com. Мы приветствуем ваши дополнительные предложения для расширения этой функциональности.

Среды и Развертывание в CI

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

В новой версии 8.9 Вы можете добавить дополнительные Среды в конфигурационном файле CI проекта (.gitlab-ci.yml). Это позволит настроить конфигурацию GitLab максимально близко к фактическому окружению проекта и наглядно отслеживать динамику развертывания в этих средах.

Метки с приоритетом

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

Метка с приоритетом - такая же текстовая метка, но с указанием приоритета, который влияет на сортировку объектов, которым эта метка присвоена.

Например, самым высоким приоритетом для GitLab является P1. Если отсортировать дефекты по приоритету, то сверху отобразятся дефекты с P1, затем с P2 и т.д. Помечая метку “Безопасность” высоким приоритетом P1, дефекты, относящиеся к этой категории, автоматически получат максимальный приоритет.

Пользовательский тип уведомлений

Чтобы быть в курсе важных для Вас событий, мы добавили новый тип уведомлений - пользовательский. В предыдущих версиях GitLab можно было настроить уведомления Участника (participating level), т.е. подписаться на события в объектах, в которых Вы участвуете, или в которых Вы упомянуты. В новой версии 8.9 Gitlab позволяет настроить уведомления по другому принципу - отметить интересующие типы событий (новое примечание, новый дефект, закрытие дефекта, новый запрос на объединение, переназначение дефекта и т.д.)

Запрос доступа к проекту

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

Шаблоны gitlab-ci.yml

Модуль поддержки непрерывной интеграции CI, встроенный в GitLab, управляется с помощью .gitlab-ci.yml файла, где определяются объекты тестирования, сборки и развертывания. Чтобы упростить первые шаги по настройке этого файла, попробуйте воспользоваться готовыми шаблонами.

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

Изменения в навигации пользовательского интерфейса

Базовая навигация по элементам проектов осуществляется с помощью верхней панели. Страницы, которые формируются специально для текущего пользователя ( дефекты, группы, активность и т.д.) теперь перенесены в новую боковую всплывающую панель.

Поддержка Универсальной 2-факторной аутентификации

GitLab теперь поддерживает стандарт универсальной 2-факторной аутентификации (u2f). Это означает, что вы можете использовать U2F ключи безопасности на Yubico, известного как YubiKeys, в качестве 2-го фактора при входе в GitLab.

Подробнее о поддержке u2f в нашем блоге и документации по 2-факторной аутентификации в GitLab.

Импорт / Экспорт проектов

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

Запрет объединения веток до успешной сборки

В новой версии у Вас есть возможность запретить объединение веток(merge) до момента, пока билд не выполнится успешно, Благодаря Руи Сантос.

Другие изменения

Подробнее об остальных изменениях можно ознакомиться в Changelog. Ниже приведены только наиболее значимые.

Улучшенная подсветка синтаксиса

GitLab 8.9 включает в себя первый релиз Rouge с сентября (!) с поддержкой более чем 20 новых языков, а также поддержкой новых возможностей Swift, Ruby, Python и C / C ++, а также некоторых критических исправлений ошибок для Apache, JavaScript, Objective - C и Groovy.

Award Emoji в комментариях

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

Ручное добавление Todos

Каждый дефект и запрос на объединение теперь может быть помечен как “Todo” или “Done”.

Массовое присвоение меток

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

Срок действия артефактов

Если Вы используете артефакты в GitLab, встроенных в CI, у Вас может накопиться большой архив старых данных. Теперь вы можете указывать срок действия артефактов путем добавления строки expire_in в свой . gitlab-ci.yml файл. Артефакты будут считаться устаревшими, после указанного периода времени.

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

3 mins 4 sec 2 hrs 20 min 2h20min 6 mos 1 day 47 yrs 6 mos and 4d 3 weeks and 2 days

Примечание: эта функция требует Runner 1.3, выпущенный одновременно с GitLab 8.9

Ключевое слово « Когда» для Артефактов

Теперь Вы можете иметь артефакты только на провал, успех или на все события.

Поведение по умолчанию такое же, как и раньше, создание артефактов только «на успех».

Примечание: эта функция требует Runner 1.3, выпущенный одновременно с GitLab 8.9

Поддержка Docker реестра Manifest V1

GitLab 8.9 добавляет поддержку Manifest V1, порожденного старыми версиями Docker (до 1.10)

GitLab Mattermost 3.1

Mattermost 3.1 отгружается в GitLab 8.9 с мульти-командными аккаунтами, переводом японского языка, Apple Watch, с модернизированными уведомлениями, новыми горячими клавишами и переключателем каналов, новыми вариантами отображения, новыми смайликами, плюс обновление для системы безопасности и многие другие улучшения.

Обновление требует ручных операций! Перед обновлением обязательно прочитайте документацию для обновления с версий до 8.9