rilascio del sistema di gestione dei repository , da appassionati e membri dell'organizzazione Software Freedom Conservancy per promuovere lo sviluppo del codice sorgente libero di RhodeCode, dopo di questa piattaforma in un prodotto commerciale semi-proprietario. Kallithea consente di implementare un'infrastruttura di gestione dello sviluppo che supporta i sistemi di controllo versione Git e Mercurial, e per le problematiche affrontate ricorda GitHub, GitLab e Bitbucket. Il codice del progetto è scritto in Python e sott Licenza GPLv3.
Kallithea include un server ad alte prestazioni per la gestione di richieste push/pull e un'interfaccia web per la collaborazione nello sviluppo, che consente di gestire i repository, condividere diritti di accesso, rivedere il codice, monitorare l'attività degli altri membri, creare fork dei progetti, inviare pull request o modificare il codice direttamente tramite un editor semplice. È supportata l'integrazione con una base utenti centralizzata dell'azienda, basata su LDAP o ActiveDirectory. Viene inoltre consentita la creazione di gruppi di repository e gruppi di sviluppatori, con unificazione nella gestione dei membri del gruppo. L'aspetto dell'interfaccia può essere facilmente modificato attraverso un sistema di modelli. È supportata una visualizzazione chiara dell'attività sotto forma di grafici. Nel sistema di revisione delle modifiche è prevista la discussione delle modifiche e l'invio di notifiche.
La parte server della piattaforma è multi-threaded, consentendo di gestire simultaneamente più richieste pull/push. Per aumentare le prestazioni, il sistema utilizza attivamente la memorizzazione nella cache e l'esecuzione di operazioni in modalità asincrona. Sono integrati strumenti di backup che consentono di archiviare periodicamente e salvare tramite «scp» una copia di tutti i dati. Per monitorare l'attività nei repository, è disponibile un'apposita interfaccia che tiene un registro di tutte le richieste e consente di autenticare ogni richiesta. Per lavorare con i repository, viene utilizzata la libreria , i metadati sui progetti possono essere memorizzati in SQLite, PostgreSQL o in altri DB supportati da SQLAlchemy.
Principali modifiche:
- È stata fornita la possibilità di accesso al repository tramite SSH, utilizzando un URL del tipo «ssh://kallithea@example.com/name/of/repository». L'autenticazione per accedere al repository tramite SSH avviene sulla base della chiave pubblica dell'utente (con una protezione aggiuntiva della chiave tramite password o senza, a seconda delle preferenze dell'utente). Il caricamento della chiave (~/.ssh/id_rsa.pub) sul server avviene tramite l'interfaccia web di Kallithea, che automatizza il salvataggio della chiave nel file authorized_keys. Si segnala che le prestazioni del lavoro con il repository tramite SSH sono superiori rispetto all'accesso al repository tramite HTTPS.
- È stata aggiunta la supporto per il sistema di controllo versione distribuito Mercurial 5.2.
- È stata rielaborata la funzione «Admin > Settings > Visual > (HTTP) Clone URL», il cui gestore ora verifica esplicitamente la presenza delle stringhe «{repo}» e «_{repoid}».
- È stata effettuata una pulizia del sistema di diritti di accesso: i diritti di accesso sono sempre considerati aggiuntivi, garantendo che ogni utente abbia almeno gli stessi diritti dell'utente predefinito.
- Nel file di configurazione è stata interrotta la supporto per la configurazione api_access_controllers_whitelist. L'autenticazione tramite chiave API fornisce automaticamente accesso a tutte le API autorizzate per l'utente.
- Il supporto per Python 2.6 è stato interrotto. Attualmente è supportata solo la versione Python 2.7, ma gli sviluppatori stanno lavorando per garantire il supporto completo per Python 3.x.
- La funzione di blocco del repository (pull-to-lock, push-to-unlock) è stata rimossa.
Fonte: opennet.ru
