publication du système de gestion de dépôts , par des passionnés et des représentants de l'organisation Software Freedom Conservancy dans le but de poursuivre le développement de la base de code libre de RhodeCode, après de cette plateforme en un produit commercial semi-propriétaire. Kallithea permet de déployer une infrastructure de gestion du développement, qui prend en charge les systèmes de contrôle de version Git et Mercurial, et rappelle GitHub, GitLab et Bitbucket en termes de fonctionnalités. Le code du projet est écrit en Python et sous licence GPLv3.
Kallithea comprend un serveur performant pour le traitement des requêtes push/pull et une interface web pour organiser le développement collaboratif, qui permet de gérer des dépôts, de répartir les droits d'accès, de réviser le code, de suivre l'activité des autres participants, de créer des forks de projets, d'envoyer des pull requests ou de modifier le code sur place via un éditeur simple. L'intégration avec une base de données utilisateurs centralisée, basée sur LDAP ou ActiveDirectory, est prise en charge. La création de groupes de dépôts et de groupes de développeurs avec une gestion unifiée des membres du groupe est également possible. L'apparence de l'interface peut être facilement modifiée via un système de modèles. Une représentation visuelle de l'activité sous forme de graphiques est supportée. Le système de révision des modifications permet de discuter des changements et d'envoyer des notifications.
La partie serveur de la plateforme est multithreadée, ce qui permet de traiter simultanément plusieurs requêtes pull/push. Pour augmenter les performances, le système utilise activement la mise en cache et l'exécution des actions en mode asynchrone. La solution intègre des outils de sauvegarde, permettant d'archiver périodiquement et de conserver via «scp» une copie de toutes les données. Pour suivre l'activité dans les dépôts, une couche spéciale est intégrée, maintenant un journal de toutes les requêtes et permettant d'authentifier chaque demande. Pour travailler avec les dépôts, la bibliothèque , les métadonnées des projets peuvent être stockées dans SQLite, PostgreSQL ou d'autres bases de données supportées par SQLAlchemy.
Principales modifications :
- L'accès au référentiel peut être effectué via SSH en utilisant une URL du type «ssh://kallithea@example.com/name/of/repository». L'authentification lors de l'accès au référentiel via SSH se fait sur la base de la clé publique de l'utilisateur (avec une protection supplémentaire par mot de passe pour la clé ou sans, selon les préférences de l'utilisateur). Le chargement de la clé (~/.ssh/id_rsa.pub) sur le serveur se fait par l'interface web de Kallithea, qui automatise la sauvegarde de la clé dans le fichier authorized_keys. Il est à noter que la performance du travail avec le référentiel via SSH est supérieure à celle de l'accès au référentiel par HTTPS.
- Ajout de la prise en charge du système de gestion de versions distribué Mercurial 5.2.
- La fonction «Admin > Settings > Visual > (HTTP) Clone URL» a été repensée, son handler vérifie désormais explicitement la présence des chaînes «{repo}» et «_{repoid}».
- Le système de droits d'accès a été nettoyé — les droits d'accès sont toujours considérés comme supplémentaires, c'est-à-dire qu'il est garanti que tout utilisateur a au moins les mêmes droits que l'utilisateur par défaut.
- Dans le fichier de configuration, la prise en charge de la configuration api_access_controllers_whitelist a été interrompue. L'authentification via la clé d'accès à l'API fournit désormais automatiquement l'accès à toutes les API autorisées à l'utilisateur.
- La prise en charge de Python 2.6 a été interrompue. Actuellement, seule la branche Python 2.7 est supportée, mais les développeurs travaillent à garantir un support complet pour Python 3.x.
- La fonction de verrouillage du référentiel (pull-to-lock, push-to-unlock) a été supprimée.
Source : opennet.ru
