Увидел свет второй выпуск системы управления репозиториями 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.
В новом выпуске улучшена система обработки запросов на изменение (pull request). Проведена модернизация интерфейса. Задействованы новые символические значки из наборов FontAwesome и GitHub Octicons. Проведена адаптация интерфейса для экранов с высоким разрешением (HiDPI). Добавлена поддержка особенностей новых выпусков Mercurial 3.3 и Dulwich 0.9.9. Применены оптимизации кода работы с СУБД, которые позволили значительно повысить производительность некоторых операций. Обновлены используемые JavaScript-библиотеки jQuery, CodeMirror и Mergely. Проведена чистка кода JavaScript и файлов CSS.
Кроме того, в Kallithea 0.2 устранены две уязвимости. "CVE-2015-0260" - позволяет через манипуляцию с get_repo API получить доступ к репозиторям с привилегиями других существующих пользователей. "CVE-2015-0276" - позволяет через проведение CSRF-атаки получить неаторизированный доступ к аккаунту пользователя, осуществившего вход в систему, если данный пользователь перейдёт по подготовленной злоумышленником ссылке.
|