lanzamiento del sistema de gestión de repositorios , por entusiastas y representantes de la organización Software Freedom Conservancy con el fin de continuar el desarrollo de la base de código libre de RhodeCode, después de en un producto comercial semipropietario. Kallithea permite desplegar una infraestructura de gestión del desarrollo que soporta sistemas de control de versiones Git y Mercurial, y en las tareas que resuelve recuerda a GitHub, GitLab y Bitbucket. El código del proyecto está escrito en Python y bajo la licencia GPLv3.
Kallithea incluye un servidor de alto rendimiento para el procesamiento de solicitudes de push/pull y una interfaz web para organizar el desarrollo colaborativo, que permite gestionar repositorios, separar derechos de acceso, revisar código, rastrear la actividad de otros participantes, hacer forks de proyectos, enviar pull requests o modificar el código en el lugar, a través de un editor sencillo. Se soporta la integración con una base de datos centralizada de usuarios basada en LDAP o ActiveDirectory. Se permite la creación de grupos de repositorios y grupos de desarrolladores con unificación en la gestión de miembros del grupo. La apariencia de la interfaz puede ser fácilmente modificada a través del sistema de plantillas. Se soporta la representación visual de la actividad en forma de gráficos. En el sistema de revisión de cambios se soporta la discusión de cambios y el envío de notificaciones.
La parte del servidor de la plataforma es multihilo, lo que permite atender simultáneamente múltiples solicitudes de pull/push. Para aumentar el rendimiento, se utiliza activamente la memoria caché y la ejecución de acciones en modo asíncrono. El sistema incluye herramientas de respaldo, que permiten archivar y guardar periódicamente a través de 'scp' una copia de todos los datos. Para rastrear la actividad en los repositorios, se soporta una capa especial que lleva un registro de todas las consultas y permite autenticar cada solicitud. Para trabajar con los repositorios se utiliza la biblioteca , los metadatos sobre los proyectos pueden almacenarse en SQLite, PostgreSQL u otras bases de datos soportadas en SQLAlchemy.
Principales cambios:
- Se ha habilitado el acceso al repositorio a través de SSH, utilizando una URL del tipo «ssh://kallithea@example.com/name/of/repository». La autenticación al acceder al repositorio a través de SSH se realiza basándose en la clave pública del usuario (con protección adicional de contraseña para la clave o sin ella, dependiendo de las preferencias del usuario). La carga de la clave (~/.ssh/id_rsa.pub) en el servidor se lleva a cabo a través de la interfaz web de Kallithea, que automatiza el guardado de la clave en el archivo authorized_keys. Se señala que el rendimiento al trabajar con el repositorio a través de SSH es superior al acceso al repositorio por HTTPS.
- Se ha añadido soporte para el sistema de control de versiones distribuido Mercurial 5.2.
- Se ha rediseñado la función «Admin > Configuración > Visual > (HTTP) URL de Clonación», cuyo manejador ahora verifica explícitamente la presencia de las cadenas «{repo}» y «_{repoid}».
- Se ha realizado una limpieza del sistema de permisos de acceso: los derechos de acceso siempre se consideran solo como adicionales, es decir, se garantiza que cualquier usuario tendrá al menos los mismos derechos que el usuario por defecto.
- En el archivo de configuración se ha descontinuado el soporte para la configuración api_access_controllers_whitelist. La autenticación a través de la clave de acceso a la API ahora otorga automáticamente acceso a todas las APIs permitidas para el usuario.
- Se ha descontinuado el soporte para Python 2.6. Actualmente solo se admite la rama de Python 2.7, pero los desarrolladores están trabajando para proporcionar soporte completo para Python 3.x.
- Se ha eliminado la función de bloqueo de repositorio (pull-to-lock, push-to-unlock).
Fuente: opennet.ru
