Forgejo давно зарекомендовал себя как мощный и удобный инструмент для управления исходным кодом, предоставляя возможность организовывать совместную работу над проектами и вести эффективный контроль версий. В июле 2025 года вышла версия 12.0, которая привнесла масштабные изменения и обновления, направленные на повышение производительности, улучшение интерфейса и безопасность. Давайте подробно рассмотрим ключевые новшества и преимущества Forgejo v12, которые делают его привлекательным выбором для профессиональных команд и сообществ. Одним из главных направлений развития Forgejo была работа над пользовательским интерфейсом и опытом взаимодействия.
Адресуя потребности реальных пользователей, команда разработчиков провела масштабные исследования и внесла ряд улучшений, не копируя решения других платформ, но ориентируясь на привычки и пожелания аудитории. В частности, был полностью переработан профиль пользователя — теперь он занимает пространство более рационально, добавлено больше доступных действий, при этом сохранён удобный для пользователей порядок элементов. Интересно, что многие функциональные возможности Forgejo изначально оставались малоизвестными из-за сложностей в использовании. Например, возможность ревью pull-реквестов по отдельным коммитам стала существенно удобнее. Появились кнопки «Следующий» и «Предыдущий» для навигации по списку коммитов вместо прежнего сложного выпадающего меню.
Кнопка завершения ревью стала активной на странице отдельного коммита, а информации о сообщении коммита теперь доступна прямо при ревью, что экономит время и упрощает работу. Важной новой возможностью стала синхронизация форков. Платформа теперь показывает, насколько форк отстаёт или опережает основной проект по числу коммитов и предлагает удобный механизм для обновления своего форка, что существенно облегчает поддержку актуальности кода. В сфере работы с 3D-моделями Forgejo v12 представил интегрированный просмотр glTF файлов. Это значит, что пользователям больше не требуется скачивать модели и открывать их в сторонних программах — можно просто просмотреть их внутри интерфейса системы, упрощая сотрудничество и обмен данными, особенно в проектах с 3D-анимацией и графикой.
Технические улучшения коснулись и автоматизации через Forgejo Actions. Теперь можно настроить email-уведомления в случае неудачного выполнения задач, что предотвращает длительное незамечание сбоев, особенно при регулярных расписанных заданиях. Адреса получателей зависят от контекста: авторы pull-реквестов, авторы коммитов, владельцы репозиториев и лица, инициирующие диспатчи, — все они получают своевременную информацию о состоянии процессов. Работа с большими репозиториями и нагрузкой стала более эффективной благодаря оптимизации проверки конфликтов для pull-реквестов. Раньше проверка конфликтов при каждом новом коммите требовала значительных ресурсов, особенно если было много открытых запросов.
Использование команды git merge-tree без создания временной рабочей копии существенно снизило I/O нагрузку и ускорило операции с ветками. Безопасность системы была усилена через добавление поддержки подписей SSH вместо OpenPGP. SSH-подписи могут быть выполнены даже с использованием аппаратных модулей безопасности (TPM) через ssh-agent, что расширяет возможности защиты и упрощает интеграцию с современными средствами криптографии. Переход к SSH также отражается в более ясной и доступной документации для администраторов. Для борьбы с чрезмерной активностью поисковых роботов и краулеров теперь Forgejo поставляется с файлом robots.
txt по умолчанию, который ограничивает индексирование ресурсоёмких URL и существенно снижает нагрузку на серверы. Это помогает сохранять стабильность работы, особенно у популярных больших инстансов. В обновлённом интерфейсе улучшена поддержка вставки изображений в комментарии — теперь сразу после вставки пользователи видят загруженную картинку, а не только заглушку. Переключение между режимами редактора «Написать» и «Предпросмотр» теперь реализовано при помощи современного переключателя, что делает процесс редактирования заметок и обсуждений более комфортным. Обновлён механизм отображения относительного времени в UI.
Ранее использовался сторонний компонент github/relative-time-element, но в новом релизе применена собственная реализация Forgejo. Она поддерживает локализацию и устраняет некоторые ошибки в вычислении времени, обеспечивая более корректное отображение даты и времени событий. Что касается API, к v12 добавлено несколько новых эндпоинтов для работы с действиями (Actions), включая возможность получения результатов нескольких запусков и метаданных с информацией о дате последнего коммита непосредственно в ответах API. Кроме того, информация о пакетах стала частично общедоступной без необходимости предоставления токена, если профиль пользователя открыт. Forgejo также начал интеграцию с федеративной сетью, преобразуя fediverse-хэндлы пользователей в ссылки через сервис Webfinger, который позволяет находить профили в других социальных сетях федерации.
Хотя это пока не полноценная система федеративных упоминаний, работа в этом направлении уже ведётся. Важным изменением стала реализация поддержки табуляции в редакторе комментариев, отвечающая за удобное создание вложенных списков и отступов. Этот функционал был тщательно выверен и протестирован на доступность и соответственно отзывам пользователей. Сняты прежние ограничительные требования к формату email-адресов, которые ранее были ужесточены из-за проблем безопасности. После исправления уязвимостей возращена более гибкая и стандартная поддержка адресов, что решает проблемы с некорректным отверганием легитимных контактов.
В системе API полностью удалены небезопасные методы аутентификации, использующие параметры в URL. Это усиление безопасности предотвращает случайное раскрытие токенов в логах и историях браузеров. Ещё одно техническое нововведение — оптимизация процесса сборки. Впервые применена технология сжатия фронтенд-ассетов Zstd, которая гораздо быстрее традиционного gzip и уменьшает размер бинарника на два мегабайта. При этом используется умный fallback, позволяющий работать и в браузерах без поддержки Zstd.
На уровне базы данных Forgejo внедрил балансировку запросов с помощью EngineGroup xorm, направляя «читающие» запросы на реплики, а основные операции записи поддерживая на первичной ноде. Это значительно повышает масштабируемость и устойчивость при HA-сценариях с несколькими серверами базы данных, что особенно полезно для крупных инстансов. Для фронтенда часть кода, связанная с библиотекой Fomantic-UI, была очищена и оптимизирована. Исчезли избыточные CSS-классы и заменены некоторые модули на собственные решения Forgejo, что улучшило производительность и доступность интерфейса, а также избавило от ненужной зависимости от JS-библиотек. Контейнерные образы Forgejo v12 теперь базируются на Alpine Linux версии 3.
22 и содержат обновлённые компоненты, включая Git 2.49.1 и OpenSSH 10.0. Это гарантирует использование современных, безопасных и стабильных инструментов.
График релизов Forgejo стал более предсказуемым — полноценные обновления выходят каждые три месяца, а патчи с исправлениями безопасности публикуются по мере необходимости. Важным для администраторов является рекомендация об обновлении с версии 7.0 LTS, срок поддержки которой истёк, на более новые версии — 11.0 (LTS) или 12.0.
Процесс обновления предельно простой: достаточно заменить бинарник или контейнерный образ, при этом предусмотрены подробные инструкции по резервному копированию данных. Для тестирования выпускается daily-версия на специальном тестовом сервере, куда любой желающий может зайти и опробовать новые возможности. Forgejo активно привлекает сообщество к развитию проекта. Пользователи и разработчики могут предлагать идеи, сообщать об ошибках через официальный трекер, а также общаться в Matrix-чате и на платформах федеративной сети. Финансирование происходит прозрачно с помощью сервиса Liberapay, а также через Codeberg e.