Представлен третий выпуск системы управления репозиториями Kallithea, основанной энтузиастами и представителями организации Software Freedom Conservancy с целью продолжения развития свободной кодовой базы RhodeCode, после превращения данной платформы в полупроприетарный коммерческий продукт. Kallithea позволяет развернуть инфраструктуру управления разработкой, которая поддерживает системы контроля версий Git и Mercurial, и по решаемым задачам напоминает GitHub, GitLab и Bitbucket. Код проекта распространяется под лицензией GPLv3. Код проекта написан на языке Python.
Kallithea включает в себя высокопроизводительный сервер обработки push/pull-запросов и веб-интерфейс для организации совместной разработки, который позволяет управлять репозиториями, разделять права доступа, рецензировать код, отслеживать активность других участников, делать форки проектов, отправлять пулл-реквесты или изменять код на месте, через простой редактор. Поддерживается интеграция с централизованной базой пользователей предприятия, основанной на LDAP или ActiveDirectory. Поддерживается создание групп репозиториев и групп разработчиков с унификацией управления членами группы. Внешний вид интерфейса может легко быть изменён через систему шаблонов. Поддерживается наглядное представление активности в виде графиков. В системе рецензирования изменений поддерживается обсуждение изменений и отправка уведомлений.
Серверная часть платформы является многопоточной, что позволяет одновременно обслуживать несколько pull/push-запросов. Для увеличения производительности в системе активно используется кэширование и выполнение действий в асинхронном режиме. В систему также интегрированы средства резервного копирования, позволяющие периодически архивировать и сохранять через scp копию всех данных. Для отслеживания активности в репозиториях поддерживается специальная прослойка, ведущая журнал всех обращений и позволяющая аутентифицировать каждый запрос. Для работы с репозиториями задействована библиотека vcs, мета-данные о проектах могут хранится в БД на основе SQLite, PostgreSQL или других, поддерживаемых SQLAlchemy.
Основные изменения:
- Добавлена поддержка безопасного сброса пароля с отправкой проверочного кода на указанный при регистрации email;
- В интерфейсе работы со списком изменений расширены операции выборки по дате;
- Улучшено отображение изменений статуса в комментариях, прекращено автоматическое создание записей 'No comments'. Обеспечено оперативное обновление ссылок на предыдущий и следующий комментарии.
- Для Git добавлена поддержка клонирования на стороне сервера и получения данных по URL git://;
- Конфигурационные файлы .ini снабжены комментариями с объяснением сути директив, выбором значений по умолчанию и примерами;
- При обращении по HTTPS теперь всегда применяются защищённые cookies;
- Выполнена чистка названий элементов меню. Изменены вводящие в заблуждение пункты 'Default Permissions', 'Repository Defaults' и 'Delegated Admin';
- Возможность отправки pull-запросов, охватывающих произвольное число изменений;
- Продолжен перевод интерфейса с фреймворка YUI на jQuery;
- Прекращена поддержка старых браузеров, в том числе IE 8;
- Добавлена поддержка версий Mercurial 3.5 и Pylons 1.0.2;
- Устранена уязвимость CVE-2015-5285, позволяющая атакующему осуществить подстановку произвольных заголовков в ответ сервера через манипуляции с параметром came_from. Например запрос "/_admin/login?came_from=1%0d%0aX-Forwarded-Host%3a%20http://zeroscience.mk%01%02%0d%0aLocation%3a%20http://zeroscience.mk" приведёт к установке заголовков "X-Forwarded-Host: http://zeroscience.mk" и "Location: http://zeroscience.mk".
|