Доступна платформа совместной разработки Forgejo 12.0

Опубликован выпуск платформы совместной разработки Forgejo 12.0, позволяющей развернуть на своих серверах систему для совместной работы с репозиториями Git, напоминающую по решаемым задачам GitHub, Bitbucket и Gitlab. Forgejo является форком проекта Gitea, который в свою очередь ответвился от платформы Gogs. Отделение Forgejo произошло в 2022 году после попыток коммерциализации Gitea и перехода управления в руки коммерческой компании. Проект Forgejo придерживается принципов независимого управления и подконтрольности сообществу. На использование Forgejo перешёл Git-хостинг Codeberg.org. Код проекта написан на языке Go и распространяется под лицензией GPLv3.

Ключевыми особенностями платформы является низкое потребление ресурсов (может использоваться на плате Raspberry Pi или в дешёвых VPS) и простой процесс установки. Предоставляются типовые возможности работы с проектами, такие как управление задачами, отслеживание проблем (issues), pull-запросы, wiki, средства для координации групп разработчиков, подготовка релизов, автоматизация размещения пакетов в репозиториях, управление правами доступа, сопряжение с платформами непрерывной интеграции, поиск кода, аутентификация через LDAP и OAuth, доступ к репозиторию по протоколам SSH и HTTP/HTTPS, подключение web-хуков для интеграции со Slack, Discord и другими сервисами, поддержка Git-хуков и Git LFS, инструменты для миграции и зеркалирования репозиториев. Отдельно выделяется возможность использования протокола ActivityPub для объединения в федеративную сеть отдельных серверов разработчиков.

Основные изменения:

  • Переработана страница с профилем пользователя. Добавлены дополнительные действия в меню профиля.

  • Улучшен интерфейс рецензирования pull-запросов на уровне отдельных коммитов (вместо полного списка изменений, охватывающего все коммиты, в данном режиме последовательно рецензируются отдельные коммиты). Для навигации по коммитам при рецензировании добавлены кнопки “вперёд” и “назад”. Разрешено использование кнопки завершения рецензирования для отдельных коммитов. На страницах рецензирования оставлен видимым текст пояснения к коммиту.

  • Добавлена опция для отправки на email уведомлений о сбоях при выполнении работ по расписанию (Forgejo Actions).
  • Оптимизирован процесс проверки конфликтов с открытыми pull-запросами при помещении в целевую ветку новых коммитов. Ранее подобная проверка приводила нагрузке на ввод/вывод, пропорциональной числу открытых pull-запросов из-за применения операции к рабочему дереву.
    Переход на использование команды “git merge-tree –write-tree” позволил выполнять слияния, не обращаясь к рабочему дереву, что существенно снизило нагрузку в крупных внедрениях.
  • Добавлена возможность использования SSH для задач, ранее завязанных на OpenPGP. Для подписи коммитов после редактирования файлов или приёма изменений, вместо ключа GPG теперь может применяться ключ SSH (подпись формируется в TPM через ssh-agent).
  • По умолчанию добавлен файл robots.txt для информирования ботов о разделах, которые не следует индексировать.
  • Добавлена функция для поддержания форка в состоянии, синхронизированном с основным проектом.

  • Добавлена поддержка предпросмотра 3D-моделей в формате glTF.

  • В редакторе комментариев реализована возможность расстановки отступов клавишей Tab.
  • На базе Alpine 3.22 сформирован готовый образ контейнера для запуска Forgejo 12, использующий Git 2.49.1, GnuPG 2.4.7, SQLite 3.49.2 и OpenSSH 10.0.
Release. Ссылка here.