Мы рады сообщить о выходе релиза GitLab 14.8 с новыми типами ключей SSH, новым механизмом правил для подтверждения безопасности, автодополнением в редакторе конвейеров (в русской локализации GitLab «сборочные линии»), событиями аудита для действий администратора от имени пользователя и многим другим! Это — лишь несколько основных из более 25 улучшений этого релиза. Читайте далее, и вы узнаете всё об этих классных обновлениях. Чтобы узнать, что выйдет в следующем месяце, зайдите на страницу предстоящих релизов и посмотрите видео по релизу 14.9. Приглашаем на наши встречи.  Начиная с релиза 14.5 Piotr тесно работал как с продуктовой, так и с UX-частью GitLab для разработки решения, позволяющего создавать настраиваемые шаблоны сообщений для мерж-коммитов. В 14.6 он добавил такие же шаблоны на основе переменных для squash-коммитов, значительно повысив удобство работы для команд с различными предпочтениями в отношении таких коммитов. В GitLab 14.8 он продолжил развивать шаблоны коммит-сообщений. Piotr по-прежнему является замечательным партнёром для команд продукта GitLab, его дизайна, документации и сообщества GitLab в целом. Он добавил замечательное улучшение UX — отображение значения по умолчанию для шаблонов. Теперь пользователи будут лучше понимать текущие настройки шаблонов и то, как их можно изменить. Piotr также внёс вклад в улучшение документации API мерж-реквестов и добавил в наш REST API новое поле, которое позволяет унифицировать его с GraphQL. Спасибо, Piotr! (Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage Версия OpenSSH 8.2 добавляет поддержку аппаратных аутентификаторов FIDO/U2F с новыми типами ключей ecdsa-sk и ed25519-sk. GitLab теперь поддерживает эти типы ключей, позволяя пользователям воспользоваться преимуществами аппаратной аутентификации с SSH.  Документация по работе с аппаратными ключами и оригинальный тикет. (Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage GitLab теперь предоставляет события для начала и завершения работы администратора от имени пользователя на странице событий аудита группы. Ранее эти события отображались только на странице, недоступной для клиентов GitLab SaaS. Мы рады перенести эту информацию на страницу группы, что позволит просматривать эти события как пользователям отдельных инстансов, так и SaaS-пользователям. Эти события помогут понять, запускал ли администратор работу от имени пользователя в вашей группе, и какие действия выполнял в качестве этого пользователя. Вы сможете сопоставить: Это поможет вам понять, действительно ли пользователь выполнял определённые действия, или же их выполнял администратор от его лица. Отсутствие таких событий в журнале аудита также позволяет убедиться в том, что пользователь действительно совершал указанные действия, а не кто-то другой выполнял их под его аккаунтом.  Документация по групповым событиям аудита и оригинальный тикет. (Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan В этом релизе мы добавили в дорожные карты (в русской локализации GitLab «планы развития») дополнительные возможности отслеживания прогресса. Теперь вы можете узнать процент завершённых эпиков (в русской локализации GitLab «цели») на основе количества тикетов (в русской локализации GitLab «обсуждения»), а не на основе их веса. Эта возможность будет полезна для организаций, использующих Kanban или другие методы, которые не требуют, чтобы команды устанавливали вес тикетов. Вы также можете настроить уровень майлстоунов (в русской локализации GitLab «этапы»), которые будут включены в вашу дорожную карту, что позволит вам адаптировать её представление в соответствии с потребностями вашей аудитории.  Документация по настройкам дорожных карт и оригинальный тикет. (Доступно в планах 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.  Документация по новому механизму правил подтверждения безопасности и оригинальный эпик. (Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify Написать корректный CI/CD-конвейер в GitLab может быть сложно, независимо от того, новичок вы в этом деле или опытный пользователь. Синтаксическая структура должна быть точной, и даже небольшая опечатка или неправильный параметр конфигурации могут привести к тому, что ваш конвейер окажется неработоспособным, что приведёт к дополнительным затратам на поиск причины этого. В релизе 14.8 мы добавили автодополнение для ключевых слов CI/CD в редактор конвейеров, что значительно повысит эффективность написания и отладки конвейеров. Теперь у вас будет больше уверенности, что ваш конвейер будет работать так, как вы хотели, с первого же запуска. Документация по подтверждению CI/CD конфигурации и оригинальный эпик. (Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Manage В этом релизе мы добавили количество развёртываний и частоту развёртываний в метрики DORA, отображаемые в разделе Аналитика CI/CD: Эти данные ранее отображались только в аналитике цикла разработки (Value Stream Analytics, VSA). С помощью этой информации вы сможете лучше отслеживать частоту развёртываний в вашей команде.  Документация по графикам частоты развёртываний и оригинальный тикет. (Доступно в планах SaaS: ULTIMATE; self-managed: ULTIMATE) Стадия цикла DevOps: Manage В этом релизе мы добавили возможность просмотра средней частоты развёртываний и медианного времени выполнения в метриках DORA4. Теперь вы можете непрерывно отслеживать ваш DevOps-процесс и определять, насколько ваши реальные показатели отличаются от среднего или медианного темпа.  Документация по метрикам DORA4 и оригинальный тикет. (Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Create Gitaly обрабатывает файлы .gitconfig, которые могут стать очень большими, если их не обслуживать. Большие файлы .gitconfig могут сильно повлиять на производительность непродолжительных команд Git. В GitLab 14.8: В совокупности эти обновления повысили производительность на 50% и более для этих непродолжительных команд Git, что привело к существенному снижению затрат времени при выполнении регулярных операций Git!  Документация по Gitaly и оригинальный тикет. (Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify GitLab ценит эффективность, поэтому мы хотим упростить навигацию по нашей платформе, особенно по страницам заданий и конвейеров. Возможно, вы заметили, что слишком большое число опций и столбцов на этих страницах усложняет поиск информации GitLab CI/CD, релевантной для вашего проекта. Мы изменили структуру этих страниц, чтобы вам было проще находить нужную информацию о конвейерах, включая статус, имя конвейера, ID мерж-реквеста и SHA коммита.  Документация по странице конвейеров и оригинальный тикет. (Доступно в планах self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify Теперь вы можете просматривать информацию об обработчиках заданий (GitLab Runner) на панели администратора. Там вы увидите самую важную информацию о каждом обработчике заданий, связанном с вашим инстансом: последнее соединение, версию и назначенные проекты, которые теперь разбиты по страницам. На вкладке с заданиями вы также сможете посмотреть полный список заданий, запущенных данным обработчиком. Это поможет вам быстро находить и анализировать выполненные задания CI/CD.  Документация по управлению обработчиками заданий и оригинальный тикет. (Доступно в планах 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, мерж-реквестов или конвейеров.  Документация по сканированиям DAST по требованию и оригинальный эпик. (Доступно в планах 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 и список анализаторов. (Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Release Мы добавили новую метку, чтобы вам было проще увидеть версию вашего последнего релиза на странице проекта. Спасибо Jason D’Amour за эту фичу!  Документация по настройкам конвейера и оригинальный тикет. (Доступно в планах 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.  Документация по добавлению пользователей в проекты и оригинальный тикет. (Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Manage В этом релизе мы работали над одним из первых шагов для достижения полного соответствия фич для владельцев групп (во всех установках GitLab) и фич для администраторов, которые есть только на панели администратора для пользователей инстансов с самостоятельным управлением. Владельцы групп теперь могут удалять группу и её подгруппы на уровне родительской группы. До сих пор владельцам групп приходилось заходить в каждую отдельную группу, чтобы её удалить, а это долго и неэффективно. Владельцы групп теперь могут просматривать все группы и удалять их с одной страницы.  Документация по удалению групп и оригинальный тикет. (Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan Теперь шаблоны по умолчанию для описаний тикетов и мерж-реквестов можно установить не только в настройках проекта, но и в директории .gitlab репозитория. Для этого создайте файл Default.md в директории шаблонов тикетов или мерж-реквестов. Если шаблоны по умолчанию есть и в настройках проекта, и в репозитории, то будет использоваться шаблон из настроек. Спасибо за этот вклад, @davebarr! Документация по шаблонам описаний для мерж-реквестов и тикетов и оригинальный тикет. (Доступно в планах 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 — и вы легко интегрируете управление набором в ваш рабочий процесс тестирования. Файлы набора могут автоматически добавляться в реестр из конвейеров по мере выполнения фаззинг-тестов по покрытию. Их также можно обновлять не только вручную, но и автоматически, с помощью артефактов, полученных из задания этого фаззинг-тестирования. Если набор больше не нужен, его можно удалить прямо со страницы реестра. Файлы набора, перечисленные в реестре, также можно загрузить для проверки или использования где-то ещё. Этот интерфейс управления повышает удобство фаззинг-тестирования по покрытию, когда используются исходные наборы.  Документация по фаззинг-тестированию по покрытию и реестру наборов и оригинальный эпик. (Доступно в планах 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 и оригинальный тикет. (Доступно в планах 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 эта версия будет использоваться по умолчанию. Документация по серьёзности уязвимостей и оригинальный тикет. (Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Release Мы рады представить подтверждение развёртывания через API. До появления этой фичи команды могли защитить окружение от любых изменений, требуя ручного запуска задания на конвейере. Теперь подтверждение развёртывания является первостепенной концепцией для нашей платформы. Команды могут настроить несколько подтверждающих для конкретного окружения и использовать новую конечную точку API для подтверждения или отклонения развёртывания в нём. Эта возможность позволяет командам создавать рабочие процессы для получения надлежащих подтверждений перед развёртыванием программного обеспечения в продакшен или другое защищённое окружение. Документация по подтверждениям развёртываний и оригинальный тикет. (Доступно в планах SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Release Мы добавили возможности ограничения скорости для нашей фичи Страницы GitLab (GitLab Pages). Неограниченный или нежелательный трафик (например, атака типа «отказ в обслуживании») на размещённые страницы может вызвать непредвиденные проблемы с доступностью и даже простои для пользователей. С этим обновлением можно ограничивать скорость для определённых IP-адресов клиентов и для определённого домена размещённых страниц. Эти лимиты можно настроить отдельно. Если трафик превышает установленные ограничения, запросы будут зарегистрированы и отклонены. Документация по настройке ограничений скорости и оригинальный эпик. (Доступно в планах SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Доступность Панель инструментов для сайтов Geo позволяет администраторам просматривать и редактировать сведения о своих первичных и вторичных сайтах Geo. Клиентам, работающим с несколькими вторичными сайтами, может потребоваться время, чтобы просмотреть список сайтов и определить те, которые требуют внимания. Мы добавили параметры для фильтрации по состоянию работоспособности, имени сайта или его URL-адресу. Это упрощает и ускоряет поиск на панели.  Документация по администрированию 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. SDLC | ITSM | BPM | QA