Управление релизами стало намного проще
GitLab 11.7 представляет Релизы для планов начиная с Core. Пользователи теперь будут получать полный «слепок» релиза — исходный код со всеми артефактами проекта. Это избавляет от необходимости вручную собирать в одном месте исходный код, лог сборки, другие метаданные или артефакты, относящиеся к данному релизу. Эта фича послужит основой для более развернутого и проработанного управления релизами в будущем.
Управление портфолио теперь поддерживает более сложные структуры разбивки работы
Многоуровневые вложенные эпики — самое свежее дополнение к Управлению портфолио в GitLab, доступно в плане Ultimate. Вложенные эпики позволяют разбивать работу на многоуровневые структуры для создания более сложных проектов и планов работ. Эпики теперь могут содержать в себе задачи и другие эпики; такая структура позволит создать прямую связь между планированием и задачами для реализации.
Оптимизация разработки на JavaScript с реестрами NPM-пакетов
Gitlab 11.7 в плане Premium добавляет реестры NPM-пакетов напрямую в GitLab, предоставляя стандартный, более безопасный способ совместно использовать NPM-пакеты и управлять их версиями среди проектов. Просто укажите имя пакета и NPM с GitLab сделают все необходимое в том же интерфейсе.
И даже больше
Всегда сложно выбрать, какие фичи включить в краткий обзор ежемесячного релиза, так что мы назовем еще несколько классных нововведений:
Закрытие уязвимости с помощью патч-файла: Инструменты безопасности GitLab помогают в обнаружении уязвимостей. С релизом GitLab 11.7 появилась возможность вылечить уязвимость и предложить решение для проектов на Node.js, управляемых Yarn. Пока что это первая официальная фича, закрывающая уязвимости, но точно не последняя!
Интеграция с Kubernetes по API: Для тех, кто создает действительно много кластеров Kubernetes или считает себя мастером работы с Kubernetes, мы добавили API Kubernetes, что значительно уменьшит работу вручную и упростит жизнь.
Просмотр связей межпроектных конвейеров: Благодаря нашей новой фиче — улучшенному просмотру межпроектных конвейеров — вся необходимая информация теперь будет у вас под рукой.
Дальше вас ждет полный список нововведений релиза GitLab 11.7!
MVP этого месяца — MortyChoi
MortyChoi добавил поддержку приватных пакетов Go в подгруппах. Спасибо за этот вклад, который поможет дальнейшей поддержке этого популярного языка в GitLab!
Основные фичи релиза GitLab 11.7
Выпуск релизов ваших проектов
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Наша новая фича — Релизы — позволяет создавать релизы в GitLab и просматривать их на странице обзора. Релизы — «слепок» текущего состояния кода, ссылок и других метаданных или артефактов, относящихся к выпускаемой версии кода. Пользователи вашего проекта теперь легко смогут получить доступ к его последней выпущенной версии.
Документация по релизам и оригинальный тикет.
Многоуровневые вложенные эпики
(ULTIMATE, GOLD)
Эпики и задачи вместе прекрасно работают на гибкость долгосрочных рабочих планов, но до сих пор с их помощью можно было создавать только двухуровневые структуры.
В этом релизе мы представляем вложенные эпики: они теперь могут содержать в себе задачи и другие эпики, что позволит вам создавать многоуровневую систему разбивки работы. Таким образом, вы сможете строить еще более долгосрочные стратегические планы или цели организации — создавать высокоуровневые эпики с несколькими уровнями эпиков внутри, разбивая работу на измеримые с точки зрения поставки части, вплоть до задач.
Документация по эпикам и оригинальный тикет.
Просмотр связей межпроектных конвейеров
(PREMIUM, ULTIMATE, SILVER, GOLD)
Теперь в графике на странице просмотра конвейера можно развернуть входящие и исходящие зависимости в межпроектных конвейерах и получить представление обо всех задействованных конвейерах — независимо от того, в каком проекте они запускаются или завершаются.
Документация по графикам конвейеров и оригинальный тикет.
Закрытие уязвимости с помощью патч-файла
(ULTIMATE, GOLD)
GitLab может обнаружить различные типы уязвимостей в ваших приложениях и предложить возможные способы их устранения.
Начиная с релиза GitLab 11.7, вы можете скачать патч-файл и применить его к вашему репозиторию с помощью команды git apply
. Затем отправьте изменения в репозиторий, и панель безопасности подтвердит, что уязвимость закрыта. Это упрощает процесс решения подобных проблем и сокращает время, необходимое для применения решения. На данный момент сканирование зависимостей сообщает об известных уязвимостях в проектах на NodeJS, работающих под управлением пакетного менеджера yarn
, и для этого не требуется никаких дополнительных усилий. Патч будет отображаться в окне сведений об уязвимости, когда он будет доступен.
Документация по предлагаемым решениям и оригинальный тикет.
Возможность задать ключи-секреты приложения переменными в Kubernetes
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Операторам и администраторам необходимо, чтобы настройка ключей-секретов осуществлялась вне репозитория приложения в целях снижения риска раскрытия конфиденциальных данных. GitLab теперь предлагает возможность настраивать ключи-секреты как переменные среды, которые доступны для приложения в вашем кластере Kubernetes.
Просто начните название переменной с K8S_SECRET_
, и соответствующий конвейер CI примет ее как ключ-секрет вашего приложения для Kubernetes.
Документация по настройке ключей-секретов и оригинальный тикет.
Реестр NPM-пакетов
(PREMIUM, ULTIMATE, SILVER, GOLD)
Разработчикам на JavaScript нужен надежный, стандартизированный способ совместно использовать пакеты NPM и управлять их версиями среди проектов. Реестр пакетов для NPM дает такую возможность разработчикам низкоуровневых служб при публикации своего кода.
В версии GitLab 11.7 мы добавили встроенный в GitLab реестр NPM-пакетов. Это означает, что теперь разработчики могут использовать простую договоренность по названию пакетов для использования библиотеки в любом проекте Node.js, в то время как все остальное сделают NPM и GitLab. Все это доступно через один и тот же интерфейс. Эта фича будет доступна в GitLab Premium.
Посмотрите образец проекта, в котором происходит сборка и вставка в реестр.
Документация по реестру NPM-пакетов и оригинальный тикет.
Поддержка API для интеграции с Kubernetes
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
В этом релизе мы добавили поддержку API для интеграции с Kubernetes. Это означает что все действия, которые сейчас доступны в GUI — добавление, удаление и вывод списка кластеров Kubernetes — теперь доступны и через API. Это дает командам разработчиков возможность создавать кластеры в процессе разработки.
Документация по API для кластеров и оригинальный тикет.
Другие улучшения в GitLab 11.7
Окно поискового фильтра для навигации по доскам задач
(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
В командах разработчиков часто используется несколько досок задач, что усложняет навигацию по выпадающему списку, если задач слишком много. В этом релизе для решения этой проблемы мы добавили поисковый фильтр. Теперь вы можете просто ввести несколько символов в окне поиска, чтобы быстро сократить количество задач до тех, которые интересны вам, что позволит значительно упростить навигацию.
Документация по панели задач и оригинальный тикет.
Редизайн списка проектов
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Проекты — одна из основных составляющих GitLab, поэтому мы стараемся улучшить внешний вид списков проектов и упростить работу с ними.
В GitLab 11.7 мы представляем новый дизайн пользовательского интерфейса списков проектов, который сфокусирован на удобстве чтения и на предоставлении краткого отчета по активности в проекте. Мы добавили к каждой строке в списке проектов место для дополнительной информации по проекту и пустое пространство и планируем продолжить улучшать дизайн с учетом ваших отзывов.
Документация по проектам и оригинальный тикет.
Поддержка почтовых ящиков с функцией catch-all, включая Microsoft Exchange и Google Groups для фич, использующих входящие email
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
В GitLab есть несколько крутых фич, которые используют входящие email, такие как ответ по email, создание тикета по email, создание мерж-реквеста (в русской локализации GitLab «запрос на слияние») по email и техническая поддержка по email. Ранее эти фичи можно было использовать, только если ваш email-сервер поддерживал функцию суб-адресации.
Начиная с этого релиза GitLab поддерживает и суб-адресацию, и почтовые ящики с функцией catch-all, используя новый формат писем, который позволяет GitLab интеграцию с еще большим числом email-серверов, включая Microsoft Exchange и Google Groups, которые не поддерживают суб-адресацию.
Документация по входящим email и оригинальный тикет.
Импорт задач в формате CSV
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Зачастую, когда команды разработчиков начинают использовать GitLab, может оказаться, что они используют разные инструменты и у них есть унаследованные данные. Возможно сейчас вы пользуетесь Jira, но хотели бы перейти к управлению задачами в GitLab.
Начиная с этого релиза этот переход становится намного проще. Так как многие системы отслеживания задач поддерживают экспорт CSV-файлов, теперь вы можете импортировать такие задачи в GitLab, что позволяет вам продолжать работать над текущими задачами, импортируя унаследованные данные в GitLab для дальнейшего поиска и извлечения по необходимости. Это будет работать с Jira или с любой другой системой отслеживания задач, которые поддерживают экспорт CSV.
Также в GitLab уже есть фича для экспорта CSV-файлов.
Документация по импорту CSV-файлов и оригинальный тикет.
Генерация краткой SHA-последовательности как переменной окружения
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
В Git SHA представляют собой состоящие из 40 символов указатели на определенные объекты (например, коммиты) в репозитории Git. Зачастую нет необходимости в том, чтобы выводить на экран всю строку, и вы хотите, чтобы были показаны только первые восемь символов SHA для быстрого перехода по ссылке, хотя при этом эта последовательность может быть не уникальной. Мы добавили переменную окружения CI_COMMIT_SHORT_SHA
для конвейера CI для решения этой задачи, что позволит вам сгенерировать первую часть SHA коммита.
Документация по переменным окружения и оригинальный тикет.
Более строгие ограничения по подтверждению своих мерж-реквестов
(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)
Ревью кода — это практика, которая должна проводиться в любом успешном проекте кем-то, кто не является автором вносимого изменения. По умолчанию подтверждение своих мерж-реквестов запрещено, однако в этом ограничении учитывалось авторство мерж-реквеста, а не коммитов, входящих в него.
Начиная с GitLab 11.7 ограничения по подтверждению своих мерж-реквестов также будет предотвращать подтверждение мерж-реквестов людьми, которые вносили в них изменения, так что мерж-реквесты за авторством нескольких разработчиков будут получать полностью независимые ревью и подтверждения.
Документация по подтверждению мерж-реквестов и оригинальный тикет.
Поддержка авторизации для сетевых includes
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
При включении внешних файлов в ваше определение конвейера с использованием ключевого слова include
эти файлы запрашиваются через HTTP/HTTPS. Теперь вы можете получить доступ к файлам YAML в другом проекте без публичного доступа (например, приватный проект на GitLab.com), используя данные авторизации, с которыми работает конвейер.
Документация по YAML includes и оригинальный тикет.
Фильтрация уязвимостей на панели безопасности группы
(ULTIMATE, GOLD)
Панель безопасности группы позволяет командам, отвечающим за безопасность, держать все под контролем, показывая уязвимости, которые влияют на их группы.
С GitLab 11.7 пользователи могут фильтровать отображаемые уязвимости по серьезности, типу отчета и имени проекта. Благодаря этому они могут сосредоточиться на том, что им нужно, и быстрее получить доступ к своим данным, что особенно полезно, когда в списке много записей.
Документация по просмотру уязвимостей и оригинальный тикет.
Просмотр результатов сканирования зависимостей на панели безопасности группы
(ULTIMATE, GOLD)
Панель безопасности группы была первоначально выпущена только с результатами SAST, поэтому пользователи не могли управлять другими типами уязвимостей с помощью этой фичи.
С GitLab 11.7 результаты сканирования зависимостей были добавлены в набор доступных данных. Если вы уже используете новый синтаксис отчетов, вы автоматически увидите результаты на панели безопасности. Шаблон Auto DevOps также был обновлен, и теперь для него требуется GitLab Runner версии 11.5 или выше для правильного запуска работы сканирования зависимостей.
Документация по панели безопасности группы и оригинальный тикет.
Включение файлов CI/CD из других проектов и шаблонов
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Ключевое слово include
позволяет пользователям динамически создавать конвейеры CI/CD с включением внешних файлов в конфигурацию. Ранее это было возможно только для файлов в репозитории проекта или для удаленных файлов, загружаемых по HTTP.
С GitLab 11.7 пользователи могут включать свои фрагменты конфигурации также из других проектов и из предопределенных шаблонов. GitLab будет включать фрагменты для конкретных работ, таких как sast
или dependency_scanning
, чтобы пользователи могли ссылаться на них вместо копирования и вставки текущего определения. Работы будут автоматически обновлены до последней версии при обновлении GitLab, поэтому не нужно вносить изменения вручную.
Документация по YAML includes и оригинальный тикет.
Режим RBAC по умолчанию при создании кластера Kubernetes
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Обеспечение безопасности кластера Kubernetes жизненно необходимо для контроля и ограничения доступа пользователей к кластеру и разрешенных этим людям действий.
Начиная с GitLab 11.7, все кластеры по умолчанию будут поддерживать RBAC во время создания, обеспечивая более безопасную и защищенную инфраструктуру.
Документация по кластерам и RBAC и оригинальный тикет.
Поддержка приватных пакетов Go в подгруппах
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Пакеты Go, размещенные на GitLab, могут быть установлены с помощью команды go get
, однако ранее это не поддерживалось для приватных проектов в подгруппах. Начиная с GitLab 11.7, любой проект можно использовать в качестве пакета Go, включая приватные проекты в подгруппах.
Приватные пакеты поддерживаются командой go get
с использованием файла .netrc
и личного токена доступа в поле password
.
Спасибо MortyChoi за эту фичу!
Документация по подгруппам и оригинальный тикет.
Поддержка метрик NGINX Ingress 0.16.0+
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
С релизом NGINX Ingress 0.16.0, метрики Prometheus теперь встраиваются нативным образом, а не полагаются на внешние иструменты экспорта.
GitLab 11.7 теперь включает поддержку метрик, экспортируемых из NGINX Ingress 0.16.0+, и автоматически обнаруживает и отображает пропускную способность, задержку и частоту ошибок развертывания.
Документация по NGINX Ingress и оригинальный тикет.
Пропуск сборок CI во время git push
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Когда пользователи не хотели запускать конвейер CI/CD для некоторого коммита, они могли добавить специальное примечание [ci skip]
или [skip ci]
в описание коммита. Однако многие пользователи не хотят или не могут изменить свои описания коммитов для добавления дополнительной информации.
Начиная с GitLab 11.7 при использовании Git версии 2.10 и выше, пользователи могут задействовать настройки Git push, чтобы предотвратить запуск конвейера при отправке коммита на GitLab. Теперь можно использовать git push -o ci.skip
, чтобы достичь той же цели, не изменяя описание коммита.
Спасибо Jonathon Reinhart за эту фичу!
Документация по пропуску работ CI и оригинальный тикет.
GitLab Runner 11.7
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)
Мы также выпускаем GitLab Runner 11.7! GitLab Runner — это проект с открытым исходным кодом, используемый для запуска работ CI/CD и отправки результатов обратно в GitLab.
Самые важные изменения:
Завершение сеанса веб-терминала (Web Terminal) при отмене сборки
Фикс разделителя путей для CI_PROJECT_DIR в Windows
Список всех изменений можно найти в CHANGELOG GitLab Runner'а.
Документация по GitLab Runner.
Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 11.7 shipped with Releases, Multi-level Child Epics, and NPM Registry.
Над переводом с английского работали cattidourden, maryartkey, ainoneko и rishavant.
Комментарии (10)
MonkAlex
01.02.2019 16:58Наконец то релизы как в гитхабе — с артефактами.
onegreyonewhite
02.02.2019 07:23Артефакты только через API, а библиотек под это нет. Не то чтобы это неудобно, но руками curl дёргать и парсить вывод то ещё удовольствие. Молчу уже о том, что релизы автоматом создаются на tag, что тоже не всегда правильно. Мне нравится Gitlab, больше чем github, но эта фича одно расстройство.
gecube
02.02.2019 13:15Я думаю, что это дело времени. Та же автоматизация gitlab'а через ansible-модули уже существует. Утилиты python, которые оборачивают API, тоже уже есть. Остается только немного подождать. Или написать самому, кстати.
Еще обидно, что сами разрабы не считают нужным делать такие тулинги. Ну, оно и понятно — они все-таки пишут на руби, т.е. новый язык сложно осилить. Да и задачи такой нет. Им важнее припиливать фичи в основной продукт… А там еще работы на сотни человеколет вперед.
Filippok
Кучу бесполезных свистоперделок добавили, а ручной запуск CI тасков с параметрами как в дженкинсе все никак сделать не могут :(
Не у всех пайплайн заточен на "запушил->собралось->тесты->k8s"
Gwynn
Ну там есть возможность запустить пайплайн вручную, и передать ему variables. Но не так удобно как в дженкинсе конечно, но хоть что-то.
Меня больше раздражает, что только один пайплайн на проект и если надо сделать что-то сложнее чем вышеописаннаый пайп, то .gitlab-ci.yml начинает выглядеть ужасно и не читаемо.
Очень жду когда сделают фильтр и сортировку энвов, и когда спрячут пустые энвы в этом списке.
gecube
include и anchor'ы пробовали? Очень помогают
Gwynn
Согласен, помогают сделать компактней. Но логику описания они к сожалению не упрощают. Логика в c only:variables, except:variables — вооще отдельная песня.
В целом, гитлаб растет и развивается, это хорошо. Но его CI/CD далеко не дженкинс, его issue tracker — далеко не жира :)
alexkuzko
Можно несколько костыльно, но через Schedules настроить и внести все переменные, которые нужны. И потом использовать когда надо.
gecube
даешь статью про это!!!
Больше интересных применений стандартных возможностей!