Представлена новая версия Forgejo 9.0, платформы для совместной работы с репозиториями Git, которая может быть развернута на собственных серверах и предлагает функционал, схожий с GitHub, Bitbucket и GitLab. Forgejo возник в результате ответвления от Gitea, который, в свою очередь, является продолжением проекта Gogs. В 2022 году Forgejo отделился после попыток коммерциализации Gitea, что привело к передаче управления проектом частной компании. Forgejo стремится к независимому управлению и прозрачности для сообщества. Git-хостинг Codeberg.org также перешел на использование этой платформы. Исходный код написан на Go и распространяется под лицензией MIT.
Среди ключевых характеристик Forgejo – низкие системные требования, что позволяет запускать платформу даже на Raspberry Pi или недорогих VPS, а также простота установки. Платформа включает стандартные функции управления проектами, такие как отслеживание задач, управление проблемами (issues), pull-запросы, вики, средства для координации команды разработчиков, автоматизация релизов и управление доступом. Кроме того, Forgejo поддерживает интеграцию с платформами непрерывной интеграции, аутентификацию через LDAP и OAuth, доступ по протоколам SSH и HTTP/HTTPS, а также вебхуки для работы с сервисами, такими как Slack и Discord. Пользователи также могут применять протокол ActivityPub для создания федеративной сети из отдельных серверов.
В числе основных нововведений в этой версии:
- Переход с лицензии MIT на копилефт-лицензию GPLv3+ для нового кода. Это изменение позволит легче использовать код, лицензированный под копилефт, и снизит риск недобросовестного использования платформы, включая привязку пользователей к конкретным поставщикам и создание ограниченных версий Forgejo.
- Внедрение системы настраиваемых квот, позволяющих ограничивать объем пользовательских данных на сервере. Новая реализация основана на мягких квотах, которые проверяются перед выполнением операций, но не останавливают их, если квота превышена.
- Теперь можно использовать SSH-ключи для аутентификации при зеркалировании, что повысит безопасность.
- Упрощение поддержки платформы за счет исключения бэкенда go-git, который был основан на реализации Git на языке Go. Это поможет избежать проблем с повреждением репозиториев и сосредоточиться на стандартном инструменте Git.
- Удаление провайдера сеансов на базе Couchbase, так как он использует проприетарное ПО с ограниченными возможностями тестирования.