Мы с радостью объявляем о новом релизе GitLab 17.9 с GitLab Duo для самостоятельного развёртывания, доступным широкой аудитории, возможностью создавать несколько сайтов GitLab Pages с параллельными развёртываниями, возможностью добавлять файлы проекта в Duo Chat из VS Code и IDE JetBrains, автоматическим удалением старых конвейеров и многими другими фичами!
Это лишь несколько из более 110 улучшений, добавленных в этом релизе. Читайте дальше, чтобы узнать обо всех основных изменениях.
Мы благодарны сообществу GitLab за 322 изменения, которые вы внесли в релиз 17.9! В GitLab каждый может сделать свой вклад, и мы не смогли бы это сделать без вас!
(self-managed: ULTIMATE, DUO ENTERPRISE) Стадия цикла DevOps: AI-powered
Теперь вы можете использовать выбранные LLM для хостинга на собственной инфраструктуре, а также настраивать эти модели как источник предложений для GitLab Duo Code и GitLab Duo Chat. Эта фича доступна каждому пользователю в окружениях с самостоятельным управлением с соответствующим лицензированием.
Вы можете использовать для GitLab Duo Chat или GitLab Duo модели, размещённые на вашем сервере или в частном облаке. В настоящее время мы поддерживаем модели Mistral на vLLM, Claude 3.5 Sonnet на AWS Bedrock и модели OpenAI на Azure OpenAI. С использованием самостоятельного хостинга вам становятся доступными возможности генеративного ИИ — и при этом ваши данные остаются независимыми и приватными.
Вы можете оставить фидбек по этой фиче в тикете 512753.
Документация по Gitlab Duo Self-Hosted и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
Теперь вы можете создавать несколько версий ваших сайтов GitLab Pages одновременно, развёртывая их параллельно. Каждому развёртыванию присваивается свой уникальный URL на основе заданного вами префикса. Например, с уникальным именем домена ваш сайт будет доступен по адресу project-123456.gitlab.io/prefix
, а без уникального имени — по namespace.gitlab.io/project/prefix
.
Эта фича будет особенно полезной, если вам нужны:
По умолчанию параллельные развёртывания завершаются спустя 24 часа, чтобы не занимать лишнее место в вашем хранилище. При желании вы можете задать неограниченную длительность развёртывания с помощью соответствующей настройки или изменить длительность по умолчанию. Для автоматической очистки хранилища параллельные развёртывания, созданные из мерж-реквестов, удаляются, когда закрывается или мержится сам мерж-реквест. Документация по параллельному развёртыванию GitLab Pages и оригинальный эпик.
(SaaS: PREMIUM, ULTIMATE, DUO PRO, DUO ENTERPRISE; self-managed: PREMIUM, ULTIMATE, DUO PRO, DUO ENTERPRISE) Стадия цикла DevOps: Create Чтобы ваши ИИ-помощники лучше генерировали предложения, учитывая контекст задачи, вы можете добавлять файлы ваших проектов напрямую в Duo Chat из VS Code и сред разработки JetBrains. Загрузка в Duo Chat файлов проекта даёт ему глубокое понимание вашей кодовой базы, что позволяет ему давать очень точные ответы, учитывающие контекст. С пониманием контекста Duo Chat будет генерировать более правильные объяснения кода, давать полезную помощь с устранением ошибок и предложения, которые можно бесшовно встраивать в ваш код. Мы будем рады фидбеку на эту новую крутую фичу. Ждём ваших мыслей в нашем тикете для фидбека. Документация по загрузке файлов проекта в GitLab Duo Chat и оригинальный эпик.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create Рабочие пространства GitLab теперь поддерживают сборку и запуск контейнеров прямо в вашем рабочем окружении. Когда ваше рабочее пространство работает на кластере Kubernetes, настроенном через Sysbox, вы можете собирать и запускать контейнеры без дополнительной настройки конфигурации. Эта фича была представлена в GitLab 17.4 как часть нашей фичи по sudo-доступу. Сейчас она позволяет вам поддерживать весь рабочий цикл работы с контейнерами в вашем окружении GitLab. Документация по сборке и запуску контейнеров в рабочем пространстве GitLab и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Ранее настройка рабочего пространства GitLab требовала создания файла конфигурации devfile.yaml
. Теперь же GitLab предоставляет файл по умолчанию, который включает в себя популярные инструменты для разработки. Данное улучшение позволяет:
devfile.yaml
и оригинальный эпик.(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy Для лучшей автоматизации и управления ресурсами своих приложений при развёртываниях в Kubernetes используйте ресурсы Kubernetes под управлением GitLab. Ранее вам приходилось вручную настраивать ресурсы Kubernetes для каждого окружения. Теперь вы можете использовать нашу новую фичу, чтобы автоматически подготавливать эти ресурсы и управлять ими. Используя ресурсы Kubernetes под управлением GitLab, вы можете:
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy Ранее для просмотра детальной информации о развёртываниях проекта вам приходилось разворачивать каждое из них в списке окружений. Теперь для каждого окружения в списке отображается последнее успешное развёртывание, и, в случае неуспеха, — последняя попытка развёртывания. Документация по окружениям CI и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan Теперь вы можете оставлять комментарии прямо на страницах Wiki. Это позволит создать пространство для совместной работы над документацией без сторонних инструментов. Комментарии и обсуждения на страницах Wiki помогут вашим командам:
Документация по комментариям и обсуждениям в GitLab и оригинальный эпик.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan Чтобы улучшить отслеживание рабочего процесса разработки, в аналитику цикла разработки было добавлено новое событие — время последнего подтверждения мерж-реквеста (Merge request last approved at). Событие подтверждения мерж-реквеста соответствует окончанию ревью и началу мержа либо запуска последнего конвейера. Чтобы, к примеру, рассчитать общее время ревью мерж-реквеста, вы можете создать этап аналитики цикла разработки с Merge request reviewer first assigned в качестве начального события, а Merge request last approved at — в качестве конечного. С этим улучшением команды разработки смогут получать больше информации о возможностях оптимизации времени ревью мерж-реквестов, что поможет сократить общее время разработки и быстрее поставлять продукт. Документация по событиям аналитики цикла разработки и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify Раньше удаление старых конвейеров CI/CD можно было выполнять только через API GitLab. В GitLab 17.9 мы добавили настройку проекта, которая позволяет вам задать время жизни конвейера. Все конвейеры и связанные с ними артефакты старше этого значения автоматически удаляются. Это позволит сэкономить место, занимаемое на диске проектами с большим числом конвейеров, в которых создаются артефакты большого размера, и повысить общую производительность ваших рабочих процессов. Документация по автоматическому удалению конвейеров и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Foundations Ранее вы могли управлять интеграциями проекта из группы только через графический интерфейс GitLab. Новая фича даёт возможность делать это также через REST API.
Документация по API для работы с интеграциями групп и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan Теперь вы можете ограничивать доступ к GitLab Pages на уровне группы. Владельцы групп могут при помощи одной настройки сделать все сайты Pages, принадлежащие к группе и её подгруппам, видимыми только для участников проекта. Такое централизованное управление упрощает управление безопасностью без изменения настроек отдельных проектов. Документация по ограничению доступа к Pages и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan API GraphQL для рабочих элементов (work items) теперь включает дополнительные фильтры запросов для фильтрации по:
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
В этом релизе мы добавили новые инструкции по началу работы с Kubernetes, которые показывают, как использовать GitLab для развёртывания приложений в Kubernetes напрямую и с помощью FluxCD. Эти понятные туториалы не требуют глубоких знаний Kubernetes, поэтому как начинающие, так и опытные пользователи могут научиться интегрировать GitLab и Kubernetes.
В дополнение к этим инструкциям мы также включили несколько рекомендаций по интеграции GitLab в окружения Kubernetes.
Документация по началу работы Kubernetes и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
При ротации токена доступа для сервисного аккаунта теперь можно использовать атрибут expires_at
, чтобы установить свою дату истечения срока действия. Ранее срок действия токенов автоматически истекал через семь дней после ротации. Теперь можно детальнее настраивать сроки действия токенов, что позволяет эффективнее управлять безопасностью доступа.
Документация по ротации токенов для сервисных аккаунтов и оригинальный тикет.
self_rotate
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Теперь можно использовать область видимости self_rotate
для ротации токенов доступа. Это можно делать для личных, проектных или групповых токенов доступа. Раньше для этого требовалось два запроса: один для получения нового токена, другой для выполнения ротации.
Документация по личным токенам доступа и оригинальный тикет.
(self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Теперь можно настроить участие в дополнительных группах при использовании нескольких поставщиков OIDC. Раньше, если вы настраивали несколько поставщиков OIDC, вы были ограничены одной группой.
Документация по настройке дополнительных групп в случае нескольких поставщиков OIDC и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Раньше при просмотре личных токенов доступа вы могли видеть лишь сколько минут назад токен был использован. Теперь вы также можете видеть до семи последних IP-адресов, с которых использовались токены. Эта объединённая информация может помочь вам отслеживать, где используется ваш токен.
Документация по просмотру времени и IP-адресов использования личных токенов доступа и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: AI-powered
Ранее запрос к GitLab можно было аутентифицировать только от имени одного пользователя. С помощью составного идентификатора мы теперь можем аутентифицировать запрос одновременно как сервисный аккаунт и как пользователя. В случаях использования ИИ-агента часто требуется, чтобы разрешения были основаны на пользователе, который инициировал выполнение задач в системе, и в то же время указывались отдельные идентификаторы, отличные от инициирующего пользователя. Составной идентификатор — это наша новая сущность для идентификации, который представляет собой идентификатор ИИ-агента. Этот идентификатор связан с идентификатором обычного пользователя, который запрашивает действия у агента. Всякий раз, когда действие ИИ-агента пытается получить доступ к ресурсу, используется составной идентификационный токен. Этот токен принадлежит сервисному аккаунту и также связан с пользователем-человеком, который инструктирует агента. Проверка авторизации, выполняемая с помощью токена, учитывает обоих участников перед предоставлением доступа к ресурсу. Они оба должны иметь доступ к ресурсу, в противном случае доступ будет запрещён. Эта новая фича расширяет наши возможности по защите ресурсов, хранящихся в GitLab. Дополнительные сведения о том, как можно использовать составной идентификатор для сервисных аккаунтов, смотрите в документации.
Документация по составным сущностям идентификации и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
Теперь можно легко менять тип рабочих элементов, что позволяет более эффективно управлять проектами.
Документация по изменению типа рабочего элемента и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Расширения рабочих пространств теперь поддерживают возможность использования предлагаемых API, что повышает совместимость и надёжность в продакшен-окружениях. Это обновление позволяет расширениям, зависящим от предлагаемых API, работать без ошибок, включая критически важные инструменты разработки, такие как отладчик Python. Это изменение расширяет доступ к API, сохраняя при этом стабильность.
Документация по расширениям рабочих пространств и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
Интеграция Kubernetes на основе сертификатов будет отключена на GitLab.com для всех пользователей с 6 мая 2025 г. 9:00 UTC по 8 мая 2025 г. 22:00 UTC и будет удалена из инстансов с самостоятельным управлением в GitLab 19.0 (ожидается в мае 2026 г).
Чтобы помочь пользователям с миграцией, мы добавили новую конечную точку кластерного API, которую владельцы групп могут использовать, чтобы найти все кластеры на основе сертификатов, зарегистрированные в группе, подгруппе или проекте. Мы также обновили документацию по миграции, чтобы предоставить инструкции для различных вариантов использования.
Мы призываем всех пользователей GitLab.com проверить, касается ли их это изменение, и как можно скорее запланировать свои миграции.
Документация по обнаружению кластеров и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
Вы когда-нибудь задумывались, как реализовать лучшие практики GitOps с GitLab? Новый компонент FluxCD упрощает эту задачу. Используйте компонент FluxCD, чтобы упаковывать манифесты Kubernetes в образы OCI и хранить образы в совместимых с OCI реестрах контейнеров. При желании можно подписать образы и запустить немедленное согласование FluxCD.
Документация по компоненту FluxCD и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
В GitLab 17.2 мы дали владельцам групп возможность применять и удалять фреймворки соответствия для всех проектов в группе с помощью центра соответствия у группы.
Теперь мы расширили эту возможность: владельцы групп теперь могут применять и удалять фреймворки соответствия на уровне проекта. Это ещё больше упрощает владельцам групп применение и мониторинг фреймворков соответствия на уровне проекта.
Возможность применять и удалять фреймворки соответствия на уровне проекта доступна только владельцам групп, но не владельцам проектов.
Документация по настройкам центра соответствия проекта и оригинальный эпик.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Теперь можно указать кастомный email для получения уведомлений по электронной почте для сервисных аккаунтов. Если при создании сервисного аккаунта указан кастомный email, GitLab отправляет уведомления на этот адрес, при этом для каждого сервисного аккаунта должен использоваться уникальный email. Это поможет вам эффективнее отслеживать процессы и события.
Документация по сервисным аккаунтам и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Раньше, когда пользователь авторизовывал приложение OAuth, событие аудита не создавалось. Однако это событие важно для команд безопасности, чтобы отслеживать приложения OAuth, авторизованные пользователями на конкретном инстансе GitLab.
В этом релизе GitLab предоставляет событие аудита Пользователь авторизовал приложение OAuth (User authorized an OAuth application) для отслеживания успешной авторизации OAuth-приложений пользователями. Это новое событие аудита ещё больше расширяет ваши возможности по аудиту инстанса GitLab.
Документация по типам событий аудита и оригинальный тикет.
(SaaS: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Теперь можно использовать API для отключения двухфакторной аутентификации (2FA) для отдельного корпоративного пользователя. Раньше это было возможно только в пользовательском интерфейсе. Использование API позволяет выполнять автоматизированные и массовые операции, экономя время, когда нужно массово сбросить 2FA.
Документация по 2FA для корпоративных пользователей и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Теперь можно просматривать в пользовательском интерфейсе неактивные токены доступа к группам и проектам. Раньше GitLab сразу удалял токены доступа к проектам и группам после их отзыва или истечения срока действия. Отсутствие записи о неактивных токенах затрудняло аудит и проверки безопасности. Теперь GitLab хранит записи неактивных групповых и проектных токенов доступа в течение 30 дней, что помогает командам отслеживать использование и истечение срока действия токенов для соответствия требованиям и мониторинга.
Документация по отзыву и истечению срока действия токенов доступа к проектам и оригинальный тикет.
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Tenant Scale
Мы рады объявить о расширении видимости совместного доступа к группам в GitLab. Раньше вы только могли видеть общие проекты на странице обзора группы, но не могли видеть, к каким группам пригласили присоединиться вашу группу. Теперь на странице обзора группы есть вкладки Общие проекты (Shared projects) и Общие группы (Shared groups), что даёт полное представление о том, как ваши группы связаны и как они совместно используются в вашей организации. Это облегчает аудит и управление доступом к группам в вашей организации.
Ждём отзывов об этом изменении в эпике 16777.
Документация по просмотру общих групп и оригинальный тикет.
(self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Tenant Scale
Пользователи могут выбирать, сделать ли свой профиль пользователя публичным или приватным. Теперь администраторы могут контролировать, есть ли у пользователей такая возможность в их инстансе GitLab. На панели администратора эта настройка контролируется параметром «Разрешить пользователям делать свои профили приватными» (“Allow users to make their profiles private”). Этот параметр включён по умолчанию, что разрешает пользователям выбирать приватные профили.
Документация по разрешению пользователям делать свой профиль приватным и оригинальный тикет.
Токены заданий — это эфемерные учётные данные, которые предоставляют доступ к ресурсам в конвейерах. Поскольку эти токены наследуют права от пользователя, они часто имеют излишне широкие возможности доступа. Детальные настройки разрешений для токенов заданий позволяют вам контролировать, к каким ресурсам в проекте токен задания может получить доступ.
Мы очень ждём отзывов об этой фиче. Если у вас есть вопросы, комментарии или вы хотите пообщаться с нашей командой, напишите в этом тикете обратной связи.