Подано випуск системи управління репозиторіями Kallithea 0.5
Представлено випуск системи управління репозиторіями Kallithea 0.5
Представлено випуск системи управління репозиторіями Kallithea 0.5, заснованої ентузіастами та представниками організації Software Freedom Conservancy з метою продовження розвитку вільної кодової бази RhodeCode після перетворення даної платформи на напівпропріетарний комерційний продукт. Kallithea дозволяє розгорнути інфраструктуру управління розробкою, яка підтримує системи контролю версій Git та Mercurial і за розв'язаними завданнями нагадує GitHub, GitLab та Bitbucket. Код проекту написаний мовою Python і поширюється під ліцензією GPLv3.
Kallithea включає високопродуктивний сервер обробки push/pull-запитів і веб-інтерфейс для організації спільної розробки, який дозволяє керувати репозиторіями, розділяти права доступу, рецензувати код, відстежувати активність інших учасників, робити форки проектів, відправляти пулл-реквести чи змінювати код дома, через простий редактор. Підтримується інтеграція з централізованою базою користувачів підприємства, що базується на LDAP або ActiveDirectory. Підтримується створення груп репозиторіїв та груп розробників з уніфікацією управління членами групи. Зовнішній вигляд інтерфейсу можна легко змінити через систему шаблонів. Підтримується наочне уявлення активності як графіків. У системі рецензування змін підтримується обговорення змін та надсилання повідомлень.
Серверна частина платформи є багатопотоковою, що дозволяє одночасно обслуговувати декілька pull/push-запитів. Для збільшення продуктивності в системі активно використовується кешування та виконання дій в асинхронному режимі. У систему інтегровані засоби резервного копіювання, що дозволяють періодично архівувати та зберігати через "scp" копію всіх даних. Для відстеження активності в репозиторіях підтримується спеціальний прошарок, що веде журнал всіх звернень і дозволяє аутентифікувати кожен запит. Для роботи з репозиторіями задіяна бібліотека vcs, метадані про проекти можуть зберігатися в SQLite, PostgreSQL або інших базах даних, що підтримуються в SQLAlchemy.
Основні зміни:
- Надана можливість доступу до репозиторію за допомогою SSH, використовуючи URL типу "ssh://kallithea@example.com/name/of/repository". Аутентифікація при зверненні до репозиторію через SSH здійснюється на основі відкритого ключа користувача (з додатковим захистом ключа або без паролю, залежно від переваги користувача). Завантаження ключа (~/.ssh/id_rsa.pub) на сервер здійснюється через web-інтерфейс Kallithea, який автоматизує збереження ключа у файлі authorized_keys. Зазначається, що продуктивність роботи з репозиторієм через SSH вища, ніж при зверненні до репозиторію HTTPS.
- Додано підтримку розподіленої системи управління версіями Mercurial 5.2.
- Перероблено функцію "Admin > Settings > Visual > (HTTP) Clone URL", обробник якої тепер явно перевіряє наявність рядків "{repo}" та "_{repoid}".
- Проведено чищення системи прав доступу - права доступу завжди розглядаються лише як додаткові, тобто. гарантується, що будь-який користувач має щонайменше ті самі права, що й користувач за замовчуванням.
- У конфігураційному файлі припинено підтримку налаштування api_access_controllers_whitelist. Аутентифікація через ключ доступу до API тепер автоматично надає доступ до всіх API, дозволених користувача.
- Припинено підтримку Python 2.6. В даний час підтримується лише гілка Python 2.7, але розробники працюють над забезпеченням повноцінної підтримки Python 3.x.
- Видалено функцію блокування репозиторію (pull-to-lock, push-to-unlock).