uscita del sistema di gestione dei repository , da appassionati e rappresentanti dell'organizzazione Software Freedom Conservancy con l'obiettivo di continuare lo sviluppo della base di codice open source di RhodeCode, dopo di questa piattaforma in un prodotto commerciale semi-proprietario. Kallithea consente di implementare un'infrastruttura di gestione dello sviluppo che supporta sistemi di controllo versione Git e Mercurial e per le funzionalità risolte ricorda GitHub, GitLab e Bitbucket. Il codice del progetto è scritto in Python e sotto licenza GPLv3.
Kallithea include un server ad alte prestazioni per la gestione delle richieste push/pull e un'interfaccia web per organizzare lo sviluppo collaborativo, che consente di gestire repository, condividere diritti di accesso, revisionare il codice, monitorare l'attività di altri partecipanti, effettuare fork di progetti, inviare pull request o modificare il codice in loco tramite un editor semplice. È supportata l'integrazione con un database utenti centralizzato dell'impresa, basato su LDAP o ActiveDirectory. È supportata la creazione di gruppi di repository e di sviluppatori con unificazione nella gestione dei membri del gruppo. L'aspetto dell'interfaccia può essere facilmente modificato tramite un sistema di template. È supportata la visualizzazione grafica dell'attività. Nel sistema di revisione delle modifiche è supportata la discussione delle modifiche e l'invio di notifiche.
La parte server della piattaforma è multi-threaded, permettendo di gestire simultaneamente più richieste pull/push. Per aumentare le prestazioni, il sistema utilizza attivamente la cache e l'esecuzione delle azioni in modo asincrono. Sono integrate nella piattaforma funzionalità di backup, che consentono di archiviare periodicamente e salvare tramite 'scp' una copia di tutti i dati. Per monitorare l'attività nei repository è supportato un layer speciale che tiene un registro di tutte le richieste e consente di autenticare ogni richiesta. Per lavorare con i repository è utilizzata la libreria , i metadati sui progetti possono essere memorizzati in SQLite, PostgreSQL o altri DB supportati in SQLAlchemy.
Variazioni principali:
- È stata fornita la possibilità di accesso al repository tramite SSH, utilizzando un URL del tipo «ssh://kallithea@example.com/name/of/repository». L'autenticazione durante l'accesso al repository tramite SSH avviene sulla base della chiave pubblica dell'utente (con ulteriore protezione 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 via HTTPS.
- È stato aggiunto il supporto per il sistema di controllo versione distribuito Mercurial 5.2.
- La funzione «Admin > Impostazioni > Visivo > (HTTP) Clone URL» è stata riprogettata e ora il gestore verifica esplicitamente la presenza delle stringhe «{repo}» e «_{repoid}».
- È stata effettuata una pulizia del sistema dei diritti di accesso: i diritti di accesso vengono sempre considerati solo come aggiuntivi, garantendo che ogni utente abbia almeno gli stessi diritti dell'utente di default.
- Nel file di configurazione è stata interrotta la supporto per l'impostazione api_access_controllers_whitelist. L'autenticazione tramite chiave di accesso API ora fornisce automaticamente accesso a tutte le API autorizzate per l'utente.
- È stata interrotta la supporto per Python 2.6. Attualmente è supportata solo la versione Python 2.7, ma gli sviluppatori stanno lavorando per garantire il completo supporto per Python 3.x.
- È stata rimossa la funzione di blocco del repository (pull-to-lock, push-to-unlock).
Fonte: opennet.ru
