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

Вышел релиз GitLab 14.8 с новыми типами ключей SSH и механизмом правил по безопасности

Мы рады сообщить о выходе релиза GitLab 14.8 с новыми типами ключей SSH, новым механизмом правил для подтверждения безопасности, автодополнением в редакторе конвейеров (в русской локализации GitLab «сборочные линии»), событиями аудита для действий администратора от имени пользователя и многим другим!

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

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

GitLab MVP badge

MVP этого месяца — Piotr Stankowski

Начиная с релиза 14.5 Piotr тесно работал как с продуктовой, так и с UX-частью GitLab для разработки решения, позволяющего создавать настраиваемые шаблоны сообщений для мерж-коммитов. В 14.6 он добавил такие же шаблоны на основе переменных для squash-коммитов, значительно повысив удобство работы для команд с различными предпочтениями в отношении таких коммитов.

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

Piotr также внёс вклад в улучшение документации API мерж-реквестов и добавил в наш REST API новое поле, которое позволяет унифицировать его с GraphQL. Спасибо, Piotr!

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

Поддержка SSH ключей ecdsa-sk и ed25519-sk

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

Версия OpenSSH 8.2 добавляет поддержку аппаратных аутентификаторов FIDO/U2F с новыми типами ключей ecdsa-sk и ed25519-sk. GitLab теперь поддерживает эти типы ключей, позволяя пользователям воспользоваться преимуществами аппаратной аутентификации с SSH.

Support for ecdsa-sk and ed25519-sk SSH keys

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

События аудита для действий администратора от имени пользователя

(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

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

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

User impersonation audit events for groups

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

Дополнительные параметры отображения дорожных карт

(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan

В этом релизе мы добавили в дорожные карты (в русской локализации GitLab «планы развития») дополнительные возможности отслеживания прогресса. Теперь вы можете узнать процент завершённых эпиков (в русской локализации GitLab «цели») на основе количества тикетов (в русской локализации GitLab «обсуждения»), а не на основе их веса. Эта возможность будет полезна для организаций, использующих Kanban или другие методы, которые не требуют, чтобы команды устанавливали вес тикетов.

Вы также можете настроить уровень майлстоунов (в русской локализации GitLab «этапы»), которые будут включены в вашу дорожную карту, что позволит вам адаптировать её представление в соответствии с потребностями вашей аудитории.

Additional display options for roadmaps

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

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

(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Protect

В GitLab появились гибкие подтверждения безопасности в качестве замены устаревшей фичи проверки уязвимостей Vulnerability-Check. Новый механизм правил похож на Vulnerability-Check в том, что обе эти фичи могут требовать подтверждения мерж-реквестов (в русской локализации GitLab «запросы на слияние»), содержащих уязвимости в безопасности. Однако новый вариант улучшает предыдущую версию в нескольких отношениях:

Правила подтверждения безопасности можно использовать вместе с существующей фичей проверки уязвимостей Vulnerability-Check, поскольку эти два способа являются добавочными и не конфликтуют. Однако мы рекомендуем пользователям перенести свои правила проверки уязвимостей на новый механизм. Фича Vulnerability-Check теперь считается устаревшей, и в GitLab 15.0 мы планируем её удалить. Пользователям самостоятельных инстансов GitLab необходимо включить переключаемую фичу scan_result_policy для использования нового механизма правил. Чтобы начать работу с ними, перейдите в Безопасность и комплаенс > Политики ** (Security & Compliance > Policies**) и создайте новое правило типа Scan Result.

Security approval policies

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

Автодополнение ключевых слов в редакторе конвейеров

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify

Написать корректный CI/CD-конвейер в GitLab может быть сложно, независимо от того, новичок вы в этом деле или опытный пользователь. Синтаксическая структура должна быть точной, и даже небольшая опечатка или неправильный параметр конфигурации могут привести к тому, что ваш конвейер окажется неработоспособным, что приведёт к дополнительным затратам на поиск причины этого. В релизе 14.8 мы добавили автодополнение для ключевых слов CI/CD в редактор конвейеров, что значительно повысит эффективность написания и отладки конвейеров. Теперь у вас будет больше уверенности, что ваш конвейер будет работать так, как вы хотели, с первого же запуска.

Документация по подтверждению CI/CD конфигурации и оригинальный эпик.

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

Дополнительные данные на графике частоты развёртываний

(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Manage

В этом релизе мы добавили количество развёртываний и частоту развёртываний в метрики DORA, отображаемые в разделе Аналитика CI/CD:

Эти данные ранее отображались только в аналитике цикла разработки (Value Stream Analytics, VSA). С помощью этой информации вы сможете лучше отслеживать частоту развёртываний в вашей команде.

Additional data for deployment frequency graph

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

Отображение среднего и медианного значений для графиков метрик DORA4

(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Manage

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

Display average and median for DORA4 metrics graphs

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

Улучшенная очистка файла gitconfig

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create

Gitaly обрабатывает файлы .gitconfig, которые могут стать очень большими, если их не обслуживать. Большие файлы .gitconfig могут сильно повлиять на производительность непродолжительных команд Git. В GitLab 14.8:

В совокупности эти обновления повысили производительность на 50% и более для этих непродолжительных команд Git, что привело к существенному снижению затрат времени при выполнении регулярных операций Git!

Improved cleanup of gitconfig file

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

Улучшенная структура страницы конвейеров

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify

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

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

Improve pipeline index page layout

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

Просмотр информации об обработчиках заданий на панели администратора

(Доступно в планах self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify

Теперь вы можете просматривать информацию об обработчиках заданий (GitLab Runner) на панели администратора. Там вы увидите самую важную информацию о каждом обработчике заданий, связанном с вашим инстансом: последнее соединение, версию и назначенные проекты, которые теперь разбиты по страницам. На вкладке с заданиями вы также сможете посмотреть полный список заданий, запущенных данным обработчиком. Это поможет вам быстро находить и анализировать выполненные задания CI/CD.

View read-only runner details in the Admin Area

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

Настройка встроенных правил SAST и обнаружения секретных ключей

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure

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

Это дополнение к уже существующим возможностям настройки, которые позволяют вам отключать, заменять или дополнять предопределённые правила. Ваши настройки отображаются в файле gl-sast-report.json и артефактах gl-secret-detection-report.json для всех планов GitLab.

С GitLab Ultimate ваши настройки также используются в правилах подтверждения мерж-реквестов и в отчёте об уязвимостях.

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

Страница сканирований по требованию

(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure

Теперь все сканирования по требованию DAST и DAST API можно найти на одной странице. На ней отображаются ваши текущие, ранее запущенные, сохранённые и запланированные сканирования. На этой странице вы также можете найти нужные сканирования через поиск или перезапустить завершённые. В предыдущих версиях GitLab, чтобы посмотреть текущие или завершённые сканирования по требованию, вам нужно было сначала найти нужный конвейер на странице конвейеров. Сохранённые сканирования по требованию располагались в разделе настроек Безопасность и комплаенс (Security & Compliance). Чтобы найти нужное запланированное сканирование, вам нужно было посмотреть на каждое сохранённое сканирование в отдельности, чтобы узнать его расписание. Всё это теперь доступно на одной странице, что упрощает запуск сканирований по требованию вне сборок CI/CD, мерж-реквестов или конвейеров.

On-demand security scan index view

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

Обновления cтатического сканирования безопасности GitLab

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure

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

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

Если вы используете шаблон SAST под управлением GitLab (SAST.gitlab-ci.yml), вам ничего не нужно делать, чтобы получить эти обновления. Однако, если вы переопределяете этот файл или используете свой шаблон CI/CD, для получения обновлений вам нужно будет обновить настройки CI/CD. Чтобы использовать определённую версию любого анализатора, вы можете сделать привязку к минорной версии анализатора. Это предотвратит автоматическое обновление анализатора и потребует ручного обновления версии анализатора в вашем шаблоне CI/CD.

Документация по анализаторам SAST и список анализаторов.

Метка Latest для релизов на странице проекта

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Release

Мы добавили новую метку, чтобы вам было проще увидеть версию вашего последнего релиза на странице проекта. Спасибо Jason D’Amour за эту фичу!

Latest Release badge for the project

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

Сервер агента Kubernetes включён по умолчанию

(Доступно в планах self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Configure

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

Documentation Issue

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

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

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Масштабирование

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

Invite members and groups by using a modal

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

Удаление групп на уровне родительской группы

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage

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

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

Delete groups at the parent group level

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

Добавляйте шаблоны для тикетов и мерж-реквестов в репозиторий проекта

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan

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

Спасибо за этот вклад, @davebarr!

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

Используйте API CI Lint с другими ветками или тегами

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify

Ранее конечная точка API CI Lint проекта, используемая для проверки конфигурации CI/CD, могла вызываться только для конфигурации в ветке по умолчанию. В этом релизе мы добавили необязательный параметр ref для конечной точки, так что теперь вы можете проверять вашу конфигурацию CI/CD в других ветках или тегах.

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

Управление набором фаззинг-тестов по покрытию

(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure

В предыдущих версиях GitLab если вы хотели использовать исходный набор в фаззинг-тестировании по покрытию, вам приходилось загружать файл в определённое место и указывать путь к набору с помощью переменной COVFUZZ_SEED_CORPUS. Управление любым набором, который вы могли бы использовать в тестировании, было полностью ручным, включая обновление набора после запуска теста. С GitLab 14.8 управление наборами теперь относится к настройкам в разделе Безопасность и комплаенс (Security & Compliance). Установите для параметра COVFUZZ_USE_REGISTRY значение "true", присвойте переменной COVFUZZ_GITLAB_TOKEN значение личного токена доступа, укажите имя набора с помощью переменной COVFUZZ_CORPUS_NAME — и вы легко интегрируете управление набором в ваш рабочий процесс тестирования.

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

Coverage-guided fuzz testing corpus management

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

Взаимная аутентификация для сканирований DAST

(Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Secure

Начиная с версии GitLab 14.8 для DAST-сканирований стала доступна взаимная аутентификация через TLS. Это позволяет целевому серверу приложений проверять, что запросы поступают из известного источника. Сайты, использующие взаимный TLS, теперь можно сканировать с помощью DAST. Чтобы использовать взаимный TLS, необходимо создать замаскированную переменную с именем DAST_PKCS12_CERTIFICATE_BASE64 и сохранить в этой переменной значение сертификата PKCS12 в кодировке base64. Кроме того, для хранения пароля сертификата PKCS12 следует использовать замаскированную переменную с именем DAST_PKCS12_PASSWORD. Обратите внимание, что эта фича ещё не поддерживается основанным на браузере сканером DAST, который все ещё находится в стадии бета-тестирования.

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

Уровни серьёзности SAST теперь доступны для .NET

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Secure

Ранее GitLab SAST возвращал степень серьёзности «Неизвестно» (Unknown) для всех уязвимостей, выявленных в проектах .NET. Теперь результатам .NET присваивается значение серьёзности на основе информации из списка CWE, полученной по этой уязвимости.

Уровни серьёзности включены в артефакт gl-sast-report.json для всех тарифных планов GitLab. В GitLab Ultimate эти новые уровни серьёзности упрощают защиту ваших .NET-проектов за счёт требования утверждения мерж-реквестов и анализа общей степени риска.

Для обратной совместимости уровень серьёзности по умолчанию не будет отображаться по умолчанию, пока вы не обновитесь до GitLab 15.0. Чтобы раньше получить результаты .NET SAST со значениями серьёзности, обновите файл .gitlab-ci.yml, чтобы сделать привязку к последней мажорной версии, версии 3 анализатора Security Code Scan. Вы можете добавить этот сниппет в свой файл .gitlab-ci.yml, чтобы попробовать эти новые возможности сканирования. В GitLab 15.0 эта версия будет использоваться по умолчанию.

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

API подтверждения развёртываний

(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Release

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

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

Установите пользовательское ограничение скорости для GitLab Pages

(Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Release

Мы добавили возможности ограничения скорости для нашей фичи Страницы GitLab (GitLab Pages). Неограниченный или нежелательный трафик (например, атака типа «отказ в обслуживании») на размещённые страницы может вызвать непредвиденные проблемы с доступностью и даже простои для пользователей. С этим обновлением можно ограничивать скорость для определённых IP-адресов клиентов и для определённого домена размещённых страниц. Эти лимиты можно настроить отдельно. Если трафик превышает установленные ограничения, запросы будут зарегистрированы и отклонены.

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

Добавили фильтры на панель сайтов Geo

(Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Доступность

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

Filters added to Geo sites dashboard

Документация по администрированию Geo(https://docs.gitlab.com/ee/administration/geo/) и оригинальный тикет.

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

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

В GitLab 14.8 мы поработали над тикетами, проектами, майлстоунами и многим другим. Мы особо выделяем следующие изменения в GitLab 14.8:

Посмотрите все улучшения удобства использования в GitLab 14.8.


Полный текст релиза и инструкции по обновлению и установке вы можете найти в оригинальном англоязычном посте GitLab 14.8 released with new SSH key types and security approval policies.

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