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