Первый выпуск Gitea, форка системы совместной разработки Gogs

2017-01-02

Состоялся первый релиз проекта Gitea, в рамках которого развивается легковесная система для организации совместной работы с репозиториями Git, позволяющая на собственном оборудовании или в облачных окружениях развернуть сервис, напоминающий GitHub, Bitbucket и Gitlab. Код проекта написан на языке Go и поставляется под лицензией MIT. Система имеет достаточно низкие требования к ресурсам и может быть развёрнута на плате Raspberry Pi.

Одной из целей проекта является максимальное упрощение процесса развёртывания платформы для совместной разработки, благодаря использованию языка Go этого удалось добиться сформировав готовые бинарные сборки, подготовленные для различных ОС и архитектур, включая Linux (x86, ARM, PowerPC), macOS и Windows. Для систем виртуализации, Docker и облачных платформ сформированы образы преднастроенных окружений.

Проект Gitea был основан в декабре 2016 года как форк проекта Gogs, созданный группой энтузиастов, недовольных организацией управления в проекте. Главными мотивами создания форка было желание передать управление в руки сообщества и упростить участие в разработке независимых разработчиков. Вместо применяемой в Gogs модели, основанной на добавлении кода только через одного главного мэйнтенера, который единолично принимает решения, в Gitea применена модель разделения полномочий с предоставлением права добавления кода в репозиторий нескольким активным разработчикам.

Заявку на пост мэйнтейнера может подать каждый, от кого принято более трёх коммитов, после чего кандидатура будет рассмотрена в ходе голосования разработчиков. Кроме того, ежегодно будут выбираться три участника, которые будут коллективно принимать связанные с проектом решения. По мнению создателей Gitea подобный подход поможет избавиться от лишней бюрократии, существенно ускорит разработку и сделает проект более привлекательным для новых участников.

Основные возможности Gitea и Gogs:

  • Отображение активности по шкале времени;
  • Доступ к репозиторию по протоколам SSH и HTTP/HTTPS;
  • Аутентификация через SMTP, LDAP и Reverse proxy;
  • Встроенные средства управления учётными записями, репозиториями и организациями/командами;
  • Интерфейс для добавления и удаления разработчиков, имеющих доступ к добавлению данных в репозиторий;
  • Система web-хуков для интеграции обработчиков от сторонних сервисов, таких как Slack;
  • Наличие интерфейсов для приёма сообщений об ошибках (issues), обработки pull-запросов и Wiki для подготовки документации;
  • Средства для миграции и зеркалирования репозиториев и wiki из других систем;
  • Web-интерфейс для редактирования кода и wiki;
  • Загрузка аватаров через Gravatar и сторонние сервисы;
  • Сервис отправки уведомлений по электронной почте;
  • Панель администратора;
  • Многоязычный интерфейс;
  • Поддержка хранения параметров в MySQL, PostgreSQL, SQLite3, MSSQL и TiDB.

После ответвления в Gitea 1.0.0 принято 238 pull-запросов и исправлено 44 проблемы. Проведена ревизия и переработка API. В интерфейсе обеспечен показ последнего входа для администраторов. Интегрирована поддержка тестового набора DroneCI и менеджера зависимостей. Добавлена возможность встраивания бинарных данных. Переработана структура контейнера для Docker. Реализована поддержка загрузки по коротким ссылкам. Добавлена поддержка настраиваемых SSH-биндингов.

Тем временем разработчики Gogs выпустили обновление 0.9.113, в котором появилась возможность отображения видео через HTML5-тег video, добавлена опция для отключения доступа по HTTP, добавлена кнопка для удаления ветки, принятой в виде pull-запроса, реализована форма для поиска организаций.