Вышел релиз GitLab 11.8 с SAST для JavaScript, GitLab Pages для подгрупп и отслеживанием ошибок

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

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

Благодаря Static Application Security Testing (SAST) GitLab сканирует код и помогает обнаружить потенциальные уязвимости еще в конвейере. В релизе 11.8 мы добавляем в список поддерживаемых SAST языков JavaScript, на основе существующей поддержки node.js. Теперь можно просканировать любые файлы JavaScript, статические скрипты и HTML. Важной практикой в DevSecOps сейчас является сканирование изменений при каждом коммите, и с этим обновлением SAST мы покрываем один из самых популярных веб-языков, помогая пользователям раньше обнаруживать риски в коде на JavaScript.

GitLab Pages для подгрупп и шаблоны страниц

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

Отслеживание ошибок с Sentry

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

И еще много классных фич!

В этом релизе так много хороших нововведений, что мы хотим осветить еще несколько:

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

GitLab MVP badge

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

Walkafwalka добавил две новых фичи для Auto DevOps в этом релизе: поддержку пользовательских доменов и повторное развертывание при обновлении ключей-секретов приложения. Спасибо за эти великолепные улучшения!

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

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

(ULTIMATE, GOLD)

Static Application Security Testing (SAST) позволяет находить уязвимости в коде каждый раз, когда вы отправляете изменения в репозиторий. С этой информацией, доступной в мерж-реквесте, вы сможете позаботиться о безопасности в первую очередь и обнаруживать проблемы даже до того, как они будут добавлены в стабильную ветку.

С релизом 11.8 мы добавляем JavaScript в список языков, поддерживаемых SAST. Вам не придется ничего менять в своих конвейерах, JavaScript-проекты автоматически определяются и анализируются на уязвимости в безопасности. Также это часть Auto DevOps.

SAST support for JavaScript

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

Отслеживание ошибок с Sentry

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

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

GitLab 11.8 делает отслеживание ошибок более понятным и эффективным, интегрируя популярный трекер с открытым исходным кодом Sentry и отображая последние ошибки прямо в вашем проекте GitLab.

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

Error tracking with Sentry

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

Создание сайтов Pages одним щелчком мыши при помощи шаблонов

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

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

Посмотрите пост в нашем блоге, посвященный использованию шаблонов GitLab Pages.

Create Pages sites in one click using bundled templates

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

Поддержка Pages для подгрупп

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

Также теперь вы можете создавать сайты с помощью Pages для проектов в подгруппах. Сайты, созданные этим способом, будут иметь URL формата toplevel-group.gitlab.io/subgroup/project. Теперь для всех ваших проектов, даже тех, что принадлежат подгруппам, вы сможете создать документацию или другие страницы, необходимые для релиза вашего ПО.

Pages support for subgroups

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

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

(PREMIUM, ULTIMATE, SILVER, GOLD)

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

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

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

По умолчанию правила подтверждения отключены, подключить их может администратор инстанса командой Feature.enable(:approval_rules) в консоли rails. На GitLab.com правила подтверждения временно отключены, мы планируем снова их подключить с релизом GitLab 11.8.1. Следите за этим тикетом для обновлений.

Merge Request Approval Rules

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

Улучшили триггеры межпроектных конвейеров

(PREMIUM, ULTIMATE, SILVER, GOLD)

В релизе GitLab 9.3 (оригинальная статья, перевод) была добавлена возможность создавать межпроектные конвейеры, запустив следующий конвейер вызовом через GitLab API в вашей работе. В релизе 11.8 мы улучшаем запуск этих конвейеров благодаря ключевому слову trigger:, которое может быть добавлено в объединяющую конвейеры работу и обеспечит автоматический запуск следующего конвейера, когда текущий конвейер успешно завершится.

Improved cross-project pipeline triggers

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

Улучшили объединение сообщений к коммитам

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

Когда история состоит из маленьких коммитов для исправления юнит-тестов или решения проблем из фидбека, сложно создавать читаемую и полезную в будущем Git-историю. Объединение коммитов собирает такие изменения в один коммит, вместе с тем убирая все описания.

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

Improved squash commit messages

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

Поддержка Auto DevOps для пользовательских доменов, зависящих от окружения

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

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

Теперь вы можете использовать переменную окружения ADDITIONAL_HOSTS для того, чтобы определить один или несколько доменов для вашего приложения. Более того, вы можете настроить ее для определенного окружения, добавив к переменной имя окружения, например: <ENVIRONMENT>_ADDITIONAL_HOSTS.

Спасибо Aaron Walker за эту фичу!

Auto DevOps support for environment-specific custom domain

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

Шкала для функций Knative

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

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

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

Show function scale for Knative functions

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

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

Задание первого дня недели

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

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

Спасибо Fabian Schneider за эту фичу!

Specify the first day of the week

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

Прокрутка дорожной карты вперед в будущее и назад в прошлое

(ULTIMATE, GOLD)

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

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

Scroll roadmap forward into the future and backward into the past

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

Аутентификация при помощи смарт-карт через LDAP

(PREMIUM, ULTIMATE, SILVER, GOLD)

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

В GitLab мы используем подход, соответствующий стандартам RFC4523, с использованием правила certificateExactMatch.

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

Подключаемые фичи для разных окружений

(PREMIUM, ULTIMATE, SILVER, GOLD)

Начиная с этого релиза становится возможным самостоятельно переключать фичи в зависимости от окружения. Поведением ваших фич можно управлять при помощи набора правил, заданного на основе соответствия имени окружения. По умолчанию всегда работает правило (*), однако вы также сможете задавать другие правила, добавляя новые спецификации окружения (например, review/*).

В версии 11.8.0 для работы этой фичи потребуется включить её, выполнив в консоли rails команду Feature.enable(:feature_flags_environment_scope).

Feature Flags for Environments

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

Обновление GitLab Runner через интеграцию с Kubernetes

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

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

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

Upgrade Kubernetes Runner application via Kubernetes integration

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

Отображение времени создания и активности пользователей на панели администратора

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

Администраторам необходимо при помощи простых действий получать информацию об активности пользователей. Чтобы помочь с выполнением этой задачи, мы добавили отображение даты создания пользователя и даты его последней активности в области Users на панели администратора (/admin/users).

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

User activity and creation dates shown in admin panel

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

Возможность поиска по последним действиям пользователей

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

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

Чтобы быть уверенными в том, что мы захватываем активности типа read-only, мы расширили атрибут last_activity_on так, чтобы он обновлялся при посещении страниц, относящихся к панелям активности, проектам, задачам и мерж-реквестам.

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

Топики проектов вместо тегов

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

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

Мы с радостью продолжим делать топики более полезными для поиска по проектам и собираемся добавить фильтрацию по топикам на панели активности в версии 11.9.

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

Поиск тегов репозитория в проекте через API

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

Теперь вы можете искать теги репозитория в проекте через API тегов. Это позволит производить поиск конкретного тега в проекте напрямую. Если вы ищете проекты, соответствующие тегу конкретной версии, теперь вы с легкостью найдете то, что вам нужно.

Спасибо Robert Schilling за эту фичу!

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

Улучшенный вид списка проектов с большей плотностью информации

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

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

Improved project lists with more information density

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

Улучшенная страница просмотра группы

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

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

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

Improved group overview with reduced white space

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

API для управления вложенными эпиками

(ULTIMATE, GOLD)

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

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

Привели к одному виду связанные мерж-реквесты и тикеты

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

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

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

Redesigned related merge requests, consistent with related issues

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

Переместили поле домена Auto DevOps из настроек CI/CD в настройки кластера

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

Указание базового домена для Auto DevOps позволяет вам использовать преимущества таких мощных функций, как автоматическое ревью (Auto-Review Apps) и автоматическое развертывание (Auto-Deploy). Теперь мы упростили указание базового домена, перенеся его непосредственно в настройки кластера. Это позволит легко определить базовый домен при создании кластера, а также определить разные домены для разных кластеров.

Move Auto DevOps domain from CI/CD settings to cluster settings

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

Управление метками групп через API

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

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

Спасибо Robert Schilling за эту фичу!

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

.html расширения теперь автоматически разрешаются для сайтов GitLab Pages

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

Файл /sub-page.html на вашем сайте GitLab Pages теперь доступен и как /sub-page, что дает вам больше вариантов, как как показать ваш сайт пользователям.

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

Предопределенные переменные Pages в CI

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

В конвейеры Pages были добавлены переменные CI_PAGES и ` CI_PAGES_URL`, что дает вам возможность видеть доменное имя и URL страницы. Это обеспечивает большую гибкость при работе с сайтами Pages, размещенными в разных местах.

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

Добавление toleration к Kubernetes executor

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

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

Kubernetes поддерживает это, добавляя taint и toleration к нодам, чтобы учесть эти соображения при планировании подов. Мы добавили встроенную поддержку taint и toleration в Kubernetes executor в GitLab Runner для поддержки этих типов рабочих процессов.

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

Поддержка TLS в Gitaly

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

Gitaly теперь поддерживает TLS, что означает, что вся связь между GitLab и Gitaly будет зашифрована, когда TLS включен. Ранее связь между GitLab и Gitaly не была зашифрована сама по себе, а зависела от настроек безопасности сети.

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

Поддержка Elasticsearch в Gitaly

(STARTER, PREMIUM, ULTIMATE)

Раньше при использовании Elasticsearch не получалось обойтись без NFS для общения с Git в файловой системе. Начиная с этого релиза вы можете использовать Gitaly вместо NFS, что ускорит доступ к Git.

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

Быстрый переход к файлу в диффе мерж-реквеста

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

Ревью больших мерж-реквестов — сложный процесс, особенно когда при этом приходится переходить от одного файла к другому. Новый способ определения файла на основе нечеткой логики (fuzzy file finder) обеспечивает безболезненный переход от одного файла к другому, так что вы можете быстро перемещаться по диффу с помощью клавиатуры.

Jump to file in merge request diff

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

Отображение количества подтверждений в списке мерж-реквестов

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

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

Спасибо Andy Steele за эту фичу!

Approval counts in the merge request list

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

Получение оповещений от настроенных вручную инстансов Prometheus

(ULTIMATE, GOLD)

В GitLab 11.3 появилась поддержка настройки оповещений (оригинальная статья, перевод), однако она была ограничена экземплярами Prometheus, развернутыми через интеграцию GitLab с Kubernetes.

С GitLab 11.8 настроенные вручную серверы Prometheus теперь могут также уведомлять GitLab об оповещениях, если добавить GitLab в качестве получателя для веб-хука в менеджере оповещений (alertmanager). После получения оповещения GitLab отправит электронное письмо maintainer’ам и владельцам проекта.

Receive alerts from manually configured Prometheus instances

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

Удаление неиспользуемых тегов из реестра контейнеров с помощью API

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

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

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

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

Конфиденциальность тикетов для уязвимостей безопасности

(ULTIMATE, GOLD)

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

Начиная с GitLab 11.8, тикеты, относящиеся к уязвимостям, по умолчанию помечаются как конфиденциальные (confidential), но пользователи могут отключить этот флаг, если раскрытие информации допустимо.

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

Принудительное повторное развертывание при обновлении ключей-секретов приложения в Auto DevOps

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

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

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

Спасибо Aaron Walker за эту фичу!

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

Отображение среды кластера в бессерверном списке функций

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

Страница бессерверных функций (Serverless) была улучшена и теперь группирует функции, развернутые в Knative, в зависимости от кластерной среды, в которой они развернуты.

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

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

Обеспечение работы менеджера сертификатов с адресами для Auto DevOps

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

Менеджер сертификатов предоставляет простой способ добавить поддержку HTTPS для ваших приложений Auto DevOps. Этот релиз добавляет поддержку URL, длина которых превышает поддерживаемую Let’s Encrypt по умолчанию (64 символа), что обеспечивает большую гибкость для ваших приложений.

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


Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 11.8 released with SAST for JavaScript, Pages for subgroups, and Error Tracking.

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