[Перевод] Вышел GitLab 17.9 с GitLab Duo Self-Hosted в общем доступе
Мы с радостью объявляем о новом релизе GitLab 17.9 с GitLab Duo для самостоятельного развёртывания, доступным широкой аудитории, возможностью создавать несколько сайтов GitLab Pages с параллельными развёртываниями, возможностью добавлять файлы проекта в Duo Chat из VS Code и IDE JetBrains, автоматическим удалением старых конвейеров и многими другими фичами!
Это лишь несколько из более 110 улучшений, добавленных в этом релизе. Читайте дальше, чтобы узнать обо всех основных изменениях.
Внимание! В перевод НЕ вошли изменения и улучшения, которые доступны только в плане Ultimate.
Мы благодарны сообществу GitLab за 322 изменения, которые вы внесли в релиз 17.9! В GitLab каждый может сделать свой вклад, и мы не смогли бы это сделать без вас!
Основные улучшения в GitLab 17.9
Общий доступ к фиче Gitlab Duo с возможностью самостоятельного развёртывания
(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 и оригинальный тикет.
Параллельное развёртывание нескольких сайтов GitLab Pages
(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 и оригинальный эпик.
Добавление файлов проекта в Duo Chat из VS Code и IDE JetBrains
(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 и оригинальный эпик.
Поддержка контейнеров с Sysbox в рабочих пространствах GitLab
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Рабочие пространства GitLab теперь поддерживают сборку и запуск контейнеров прямо в вашем рабочем окружении. Когда ваше рабочее пространство работает на кластере Kubernetes, настроенном через Sysbox, вы можете собирать и запускать контейнеры без дополнительной настройки конфигурации.
Эта фича была представлена в GitLab 17.4 как часть нашей фичи по sudo-доступу. Сейчас она позволяет вам поддерживать весь рабочий цикл работы с контейнерами в вашем окружении GitLab.
Документация по сборке и запуску контейнеров в рабочем пространстве GitLab и оригинальный тикет.
Создание рабочих пространств без файла devfile
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Ранее настройка рабочего пространства GitLab требовала создания файла конфигурации devfile.yaml
. Теперь же GitLab предоставляет файл по умолчанию, который включает в себя популярные инструменты для разработки. Данное улучшение позволяет:
- Избавиться от сложностей, связанных с первоначальной настройкой;
- Быстро создавать рабочие пространства из любого проекта;
- Пользоваться популярными инструментами разработки без предварительной настройки;
- Сосредоточить усилия на разработке, а не на конфигурации.
Создайте рабочее пространство прямо сейчас и приступайте к разработке без дополнительных усилий.Документация по файлу devfile.yaml
и оригинальный эпик.
Автоматическое управление ресурсами Kubernetes
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
Для лучшей автоматизации и управления ресурсами своих приложений при развёртываниях в Kubernetes используйте ресурсы Kubernetes под управлением GitLab. Ранее вам приходилось вручную настраивать ресурсы Kubernetes для каждого окружения. Теперь вы можете использовать нашу новую фичу, чтобы автоматически подготавливать эти ресурсы и управлять ими.
Используя ресурсы Kubernetes под управлением GitLab, вы можете:
- Автоматически создавать пространства имён и сервисные аккаунты для новых развёртываний;
- Управлять правами доступа через настройки ролей;
- Настраивать другие ресурсы, необходимые для работы с Kubernetes.
Когда ваши разработчики развёртывают приложения, GitLab автоматически создаёт необходимые ресурсы Kubernetes на основе заранее подготовленных шаблонов, что упрощает процесс развёртывания и позволяет поддерживать единообразие между разными окружениями.
Документация по автоматическому управлению ресурсами Kubernetes и оригинальный эпик.
Упрощённый доступ к развёртываниям в окружениях проекта
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Deploy
Ранее для просмотра детальной информации о развёртываниях проекта вам приходилось разворачивать каждое из них в списке окружений. Теперь для каждого окружения в списке отображается последнее успешное развёртывание, и, в случае неуспеха, — последняя попытка развёртывания.
Документация по окружениям CI и оригинальный тикет.
Комментарии на страницах Wiki
(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 — в качестве конечного.
С этим улучшением команды разработки смогут получать больше информации о возможностях оптимизации времени ревью мерж-реквестов, что поможет сократить общее время разработки и быстрее поставлять продукт.
Документация по событиям аналитики цикла разработки и оригинальный тикет.
Автоматическое удаление конвейеров CI/CD
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Verify
Раньше удаление старых конвейеров CI/CD можно было выполнять только через API GitLab.
В GitLab 17.9 мы добавили настройку проекта, которая позволяет вам задать время жизни конвейера. Все конвейеры и связанные с ними артефакты старше этого значения автоматически удаляются. Это позволит сэкономить место, занимаемое на диске проектами с большим числом конвейеров, в которых создаются артефакты большого размера, и повысить общую производительность ваших рабочих процессов.
Документация по автоматическому удалению конвейеров и оригинальный тикет.
Другие улучшения в GitLab 17.9
Управление интеграциями проекта из группы через REST API
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Foundations
Ранее вы могли управлять интеграциями проекта из группы только через графический интерфейс GitLab. Новая фича даёт возможность делать это также через REST API.
Документация по API для работы с интеграциями групп и оригинальный тикет.
Управление доступом к GitLab Pages для групп
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
Теперь вы можете ограничивать доступ к GitLab Pages на уровне группы. Владельцы групп могут при помощи одной настройки сделать все сайты Pages, принадлежащие к группе и её подгруппам, видимыми только для участников проекта. Такое централизованное управление упрощает управление безопасностью без изменения настроек отдельных проектов.
Документация по ограничению доступа к Pages и оригинальный тикет.
Новые фильтры запросов для рабочих элементов API GraphQL
(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) Стадия цикла DevOps: Plan
API GraphQL для рабочих элементов (work items) теперь включает дополнительные фильтры запросов для фильтрации по:
- Датам создания, обновления, закрытия и планируемой готовности;
- Состоянию работоспособности;
- Весу.
Эти новые фильтры позволят лучше управлять запросами и организовывать рабочие элементы при работе с ними через API.
Документация по GraphQL и оригинальный тикет.
Начало работы с Kubernetes в GitLab
(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
для ротации токенов доступа. Это можно делать для личных, проектных или групповых токенов доступа. Раньше для этого требовалось два запроса: один для получения нового токена, другой для выполнения ротации.
Документация по личным токенам доступа и оригинальный тикет.
Участие в дополнительных группах в случае нескольких поставщиков OIDC
(self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Теперь можно настроить участие в дополнительных группах при использовании нескольких поставщиков OIDC. Раньше, если вы настраивали несколько поставщиков OIDC, вы были ограничены одной группой.
Документация по настройке дополнительных групп в случае нескольких поставщиков OIDC и оригинальный тикет.
Просмотр IP-адресов токенов доступа
(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
Теперь можно легко менять тип рабочих элементов, что позволяет более эффективно управлять проектами.
Документация по изменению типа рабочего элемента и оригинальный тикет.
Расширения рабочих пространств теперь поддерживают предлагаемые API
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Create
Расширения рабочих пространств теперь поддерживают возможность использования предлагаемых API, что повышает совместимость и надёжность в продакшен-окружениях. Это обновление позволяет расширениям, зависящим от предлагаемых API, работать без ошибок, включая критически важные инструменты разработки, такие как отладчик Python. Это изменение расширяет доступ к API, сохраняя при этом стабильность.
Документация по расширениям рабочих пространств и оригинальный тикет.
Обнаружение и миграция кластеров Kubernetes на основе сертификатов
(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 проверить, касается ли их это изменение, и как можно скорее запланировать свои миграции.
Документация по обнаружению кластеров и оригинальный тикет.
Внедрение GitOps на основе OCI с помощью компонента FluxCD CI/CD
(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 мы дали владельцам групп возможность применять и удалять фреймворки соответствия для всех проектов в группе с помощью центра соответствия у группы.
Теперь мы расширили эту возможность: владельцы групп теперь могут применять и удалять фреймворки соответствия на уровне проекта. Это ещё больше упрощает владельцам групп применение и мониторинг фреймворков соответствия на уровне проекта.
Возможность применять и удалять фреймворки соответствия на уровне проекта доступна только владельцам групп, но не владельцам проектов.
Документация по настройкам центра соответствия проекта и оригинальный эпик.
Уведомления по email для сервисных аккаунтов
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Теперь можно указать кастомный email для получения уведомлений по электронной почте для сервисных аккаунтов. Если при создании сервисного аккаунта указан кастомный email, GitLab отправляет уведомления на этот адрес, при этом для каждого сервисного аккаунта должен использоваться уникальный email. Это поможет вам эффективнее отслеживать процессы и события.
Документация по сервисным аккаунтам и оригинальный тикет.
Событие аудита для авторизации приложения OAuth
(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) Стадия цикла DevOps: Software Supply Chain Security
Раньше, когда пользователь авторизовывал приложение OAuth, событие аудита не создавалось. Однако это событие важно для команд безопасности, чтобы отслеживать приложения OAuth, авторизованные пользователями на конкретном инстансе GitLab.
В этом релизе GitLab предоставляет событие аудита Пользователь авторизовал приложение OAuth (User authorized an OAuth application) для отслеживания успешной авторизации OAuth-приложений пользователями. Это новое событие аудита ещё больше расширяет ваши возможности по аудиту инстанса GitLab.
Документация по типам событий аудита и оригинальный тикет.
Использование API для отключения 2FA отдельным корпоративным пользователям
(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»). Этот параметр включён по умолчанию, что разрешает пользователям выбирать приватные профили.
Документация по разрешению пользователям делать свой профиль приватным и оригинальный тикет.
Экспериментальные фичи
Детальные настройки разрешений для токенов заданий
Токены заданий — это эфемерные учётные данные, которые предоставляют доступ к ресурсам в конвейерах. Поскольку эти токены наследуют права от пользователя, они часто имеют излишне широкие возможности доступа. Детальные настройки разрешений для токенов заданий позволяют вам контролировать, к каким ресурсам в проекте токен задания может получить доступ.
Мы очень ждём отзывов об этой фиче. Если у вас есть вопросы, комментарии или вы хотите пообщаться с нашей командой, напишите в этом тикете обратной связи.