GitLab 12.0 — важный шаг на нашем пути к созданию универсального подхода DevSecOps, поддерживающий нашу миссию «каждый может внести вклад».
За последний год мы прошли огромный путь, работая вместе над созданием решения, которое поможет командам работать более сплоченно. Сообщество внесло тысячи изменений, которые сделали GitLab лучше.
Мы верим, что каждый может внести свой вклад. Для этого мы создали единую среду для разработчиков, операторов и специалистов по безопасности, упрощая коллаборацию между командами и быструю поставку качественного кода.
Приложения для ревью в GitLab — отличный инструмент для всех (от операторов и тестировщиков до владельцев бизнеса) для оценки и подтверждения изменений перед их выпуском в продакшн.
Теперь можно легко и просто предоставить визуальный фидбек прямо из приложения для ревью. Для этого не потребуется переключаться между вкладками и писать текст фидбека, так что благодаря этой фиче ускорятся как циклы ревью, так и поставка.
Проекты часто включают немало индивидуальных компонентов, что может привести к уязвимостям. Часто специалистам по безопасности и соответствию стандартам нужно знать все компоненты, подключенные к проекту.
Теперь список зависимостей проекта доступен в одном удобном месте.
Некоторые организации ограничивают доступ к своим репозиториям по определенным IP-адресам. С релизом GitLab 12.0 вы можете запретить доступ к данным на GitLab не с разрешенных IP-адресов.
Wolphin сделал в GitLab 12.0 очень важную фичу: поддержку множественных extends в CI GitLab. Эта мощная функциональность стала еще более удобной!
Огромное спасибо за этот вклад, Wolphin!
(STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”
У пользователей GitLab есть возможность автоматически создавать приложения для ревью для каждого мерж-реквеста (в русской локализации GitLab «запрос на слияние»). Благодаря этому каждый может следить за изменениями в дизайне или UX.
В релизе 12.0 мы расширяем возможность обсуждать эти изменения с помощью инструментов визуального ревью прямо в приложении для ревью. Благодаря небольшому сниппету дизайнеры, менеджеры продукта и другие важные члены команды смогут быстро предоставить обратную связь по мерж-реквесту, не покидая приложение.
Документация по визуальному ревью и оригинальный тикет.
(ULTIMATE, GOLD) Стадия цикла DevOps: “Secure”
Теперь список зависимостей проекта (или BOM — Bill of Materials) доступен в левом боковом меню.
BOM показывает, какие компоненты подключены в вашем проекте, он часто требуется специалистам по безопасности и соответствию стандартам. Кроме простой возможности просмотреть этот отчет, вы также можете экспортировать его в JSON.
Документация по списку зависимостей и оригинальный тикет.
(ULTIMATE, GOLD) Стадия цикла DevOps: “Manage”
Организации, в которых требуется строгий контроль доступа к своим ресурсам, теперь могут ограничивать доступ указанными IP-адресами, что может быть особенно удобно при использовании VPN. Вы можете настроить ограничения по трафику вне указанной подсети на уровне группы через интерфейс GitLab как в пользовательских экземплярах, так и на GitLab.com. Это поможет вам защищать самый ценный код вашей организации.
Документация по ограничению доступа по IP-адресам и оригинальный тикет.
(ULTIMATE, GOLD) Стадия цикла DevOps: “Create”
С релизом 12.0 изменения, сделанные в Web IDE, будут автоматически синхронизироваться с веб-терминалом, так что вы сможете протестировать их в терминале перед отправкой в проект. Это поможет новым участникам быстрее начинать работу и просматривать, редактировать и тестировать проект без установки локальных зависимостей.
Обратите внимание, что на GitLab.com интерактивные веб-терминалы работают только с частными обработчиками заданий (private runner).
Документация по синхронизации файлов с веб-терминалом и оригинальный тикет.
(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 с JupyterHub и оригинальный тикет.
(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 «сборочные линии») по результатам мерж-реквеста и дают возможность последовательно запускать такие конвейеры.
Для первой версии этой фичи конвейеры в цепочке запускаются последовательно по одному, так что учитывайте частоту запусков и продолжительность работы ваших конвейеров при ее подключении.
Мы планируем в дальнейшем включить эту фичу по умолчанию, но сначала хотим добавить поддержку параллельного запуска.
Документация по последовательным цепочкам мерж-реквестов и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”
Мы добавили возможность раскрывать и сворачивать вывод лога заданий CI/CD, так что теперь отладка конкретных шагов станет проще, и вы сможете как получить общее впечатление о ходе выполнения задания, так и более подробный отчет.
Разработка этой фичи началась со вклада Matthias van de Meent. Спасибо, Matthias!
Документация по сворачиваемым логам заданий и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Plan”
В релизе 12.0 мы добавили возможность выбрать отдельный адрес для уведомлений каждой группы, что позволит пользователям получать уведомления от разных групп раздельно: например, на рабочую почту получать уведомления рабочей группы, а на личную — по личным проектам.
Документация по уведомлениям и оригинальный тикет.
(ULTIMATE, GOLD) Стадия цикла DevOps: “Secure”
Наш проект по базе данных уязвимостей теперь можно посмотреть здесь. Теперь вы сможете просматривать записи и подтверждать уязвимости, в проверке которых вы наиболее заинтересованы.
Кроме того, если вы хотите сделать вклад в улучшение работы базы данных уязвимостей, держите руководство по тому, как это сделать.
Документация по вкладу в разработку базы данных уязвимостей и оригинальный тикет.
(ULTIMATE, GOLD) Стадия цикла DevOps: “Secure”
При отклонении уязвимости, обнаруженной нашими сканерами, теперь в отдельном поле можно подробно описать причину отклонения.
Это позволит командам по обеспечению безопасности и разработчикам делать ревью истории и разбираться в причинах отсутствия исправлений.
Документация по добавлению причины отклонения и оригинальный тикет.
(PREMIUM, ULTIMATE) Стадия цикла DevOps: “Manage”
Организации, работающие с LDAP, обычно синхронизируют его с GitLab для управления разрешениями.
В GitLab 12.0 для инстанса можно настроить запрет на изменение разрешений вне LDAP от не-админов. Этот подход позволит организациям, которые уделяют много внимания безопасности, использовать эту опцию для обеспечения того, чтобы разрешения в LDAP отражались на разрешениях в инстансе и не могли изменяться рядовыми пользователями.
Документация по групповой привязке пользователей и оригинальный тикет.
(PREMIUM, ULTIMATE) Стадия цикла DevOps: “Manage”
Организации, которые уделяют много внимания безопасности, зачастую хотят, чтобы их проекты, в том числе проекты, код которых хранится в репозитории, могли быть только заархивированы, но не удалены и безвозвратно потеряны.
Настроив на уровне инстанса запрет на удаление проектов не-админами, администраторы могут спать спокойно, зная, что их проекты архивируются и сохраняются.
Документация по управлению видимостью и доступом и оригинальный тикет.
(ULTIMATE, GOLD) Стадия цикла DevOps: “Manage”
GitLab Insights, представленные в GitLab Ultimate 11.9 как подключаемая фича, теперь общедоступны в GitLab Ultimate 12.0.
Настраивайте Insights, которые важны для ваших проектов, для поиска данных, таких как чистота сортировки, созданные/закрытые тикеты за выбранный период, среднее время принятия мерж-реквестов и многое другое.
Документация по Insights и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”
Интеграция с сервисом Pipeline Emails позволяет пользователям создавать уведомления на email нескольким получателям при удачном и неудачном завершении сборки.
В GitLab 12.0 мы добавили опцию для отправления уведомления о неудачной сборке только на ветке проекта, установленной по умолчанию (например, master
).
Спасибо Peter Marko за эту фичу!
Документация по email-уведомлениям от конвейеров и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Verify”
В GitLab 11.8 мы добавили возможность запускать триггеры для конвейеров на уровень ниже с заданий на конвейере более высокого уровня. Мы также добавили базовую поддержку для передачи переменных в конвейеры на уровень ниже.
В GitLab 12.0 мы также добавили поддержку передачи текущих переменных окружения в конвейеры на уровень ниже. Это позволит пользователям задавать контекст как для этих конвейеров, так и для коммита, мерж-реквеста и т.д. с конвейера, который запустил триггер.
Документация по передаче переменных в конвейеры на уровень ниже и оригинальный тикет.
(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 мы подключили эту фичу по умолчанию на уровне группы.
Документация по прокси зависимостей и оригинальный тикет.
(PREMIUM, ULTIMATE, SILVER, GOLD) Стадия цикла DevOps: “Package”
Java-разработчикам нужен простой способ производить сборку зависимостей и управлять ими при работе с конвейерами GitLab CI/CD.
В GitLab 12.0 мы изменили стандартный шаблон Maven.gitlab-ci.yml
так, чтобы пользователям было проще загружать свои Java-зависимости и управлять ими через конвейеры GitLab CI/CD в репозитории Maven.
Документация по репозиторию Maven и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Package”
API реестра контейнеров позволяет пользователям GitLab легко программно управлять своим реестром.
В GitLab 12.0 мы обновили модель разрешений, чтобы позволить разработчикам удалять теги.
Документация по удалению тегов репозитория и оригинальный тикет.
(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, но нам не хватило времени, чтобы подключить эту функциональность к выходу этого релиза.
Документация по хэшированным пулам объектов и оригинальный эпик.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Create”
В GitLab 12.0, при перепаковке репозиториев Git, кэш хэша битовой карты будет сохранен в его индексе. Кэширование ускоряет перепаковку, особенно при использовании дельта-островов.
Обратите внимание, что версии JGit до 3.5.0 несовместимы с этой фичей.
Документация по записи битовой карты и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Configure”
Ручное добавление кластера Kubernetes требует ручного ввода большого количества данных, что легко приводит к ошибкам. Для эффективного выявления проблем с доступом и разрешениями при добавлении кластера вручную интеграция с Kubernetes теперь будет проверять доступность URL-адреса API, а также действительность токена кластера и сертификата CA.
Если что-то пойдет не так, появятся соответствующие предупреждения.
Документация по добавлению существующего кластера Kubernetes и оригинальный тикет.
(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 и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Monitor”
В GitLab 12.0 мы упростили сотрудничество с товарищами по команде по тикету посредством группового звонка в Zoom. Вставьте ссылку на встречу Zoom в описание тикета. GitLab обнаружит ссылку и отобразит кнопку «Присоединиться к встрече» в верхней части под заголовком, отображая ее для всех работающих над тикетом.
Документация по действиям в тикетах и оригинальный тикет.
(CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD) Стадия цикла DevOps: “Monitor”
Команды операторов часто используют более сложные панели метрик для визуализации состояния своего окружения. Начиная с GitLab 12.0 вы можете предоставлять и легко получать доступ к внешним панелям мониторинга прямо из панелей мониторинга окружения.
Документация по ссылкам на внешние панели мониторинга и оригинальный тикет.
(FREE, BRONZE, SILVER, GOLD)
Владельцы группы на GitLab.com теперь будут получать уведомления по электронной почте о том, что квота использования минут CI истекла, вместе с инструкцией, как докупить минут CI.
Документация по CI и дополнительным минутам и оригинальный тикет.
(ULTIMATE, GOLD) Стадия цикла DevOps: “Plan”
API GraphQL позволяет пользователям запрашивать именно те данные, которые им нужны, что дает возможность получать все необходимые данные в ограниченном количестве запросов.
В этом релизе GitLab теперь поддерживает возможность запрашивать эпики (в русской локализации GitLab «цели») в API GraphQL.
Документация по запросам GraphQL и оригинальный тикет.
(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 мы провели редизайн для улучшения удобства обсуждений.
Документация по обсуждениям и оригинальный тикет.
(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
.
Документация по быстрым действиям для эпиков и оригинальный тикет.
(ULTIMATE, GOLD) Стадия цикла DevOps: “Secure”
Для Dynamic Application Security Testing (DAST) больше не требуется использование Docker. В результате образ DAST Docker (3 ГБ) теперь будет кэшироваться в Runners.
Обратите внимание, что образ обновляется еженедельно, поэтому кэш будет сбрасываться каждый понедельник.
Документация по DAST и оригинальный тикет
(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.