vydání systému správy repozitářů , nadšenci a zástupci organizace Software Freedom Conservancy s cílem pokračovat v rozvoji otevřené kódové základny RhodeCode, po této platformy na polo-proprietární komerční produkt. Kallithea umožňuje nasazení infrastruktury správy vývoje, která podporuje systémy verzování Git a Mercurial a v přístupových úlohách připomíná GitHub, GitLab a Bitbucket. Kód projektu je napsán v Pythonu a distribuován pod licencí GPLv3.
Kallithea zahrnuje výkonný server pro zpracování push/pull žádostí a webové rozhraní pro organizaci spolupráce na vývoji, které umožňuje spravovat repozitáře, rozdělovat práva přístupu, recenzovat kód, sledovat aktivitu ostatních účastníků, vytvářet forky projektů, posílat pull žádosti nebo upravovat kód přímo v jednoduchém editoru. Podporuje integraci se centralizovanou základnou uživatelů v podniku založenou na LDAP nebo ActiveDirectory. Podporuje vytváření skupin repozitářů a skupin vývojářů se sjednocením správy členů skupiny. Vzhled rozhraní lze snadno měnit pomocí systémů šablon. Podporuje vizuální zobrazení aktivity ve formě grafů. V systému recenzování změn je podporována diskuze o změnách a zasílání уведомлений.
Serverová část platformy je vícethreadová, což umožňuje současné obsluhování několika pull/push žádostí. Pro zvýšení výkonu je v systému aktivně používáno caching a provádění akcí v asynchronním režimu. Do systému jsou integrovány nástroje pro zálohování, které umožňují pravidelně archivovat a ukládat prostřednictvím „scp“ kopii všech dat. Pro sledování aktivity v repozitářích je podporována speciální vrstva, která vede záznam všech přístupů a umožňuje autentizaci každého požadavku. K práci s repozitáři je zapojena knihovna , meta data o projektech mohou být uchovávána v SQLite, PostgreSQL nebo jiných DB podporovaných v SQLAlchemy.
Hlavní změny:
- Byla zajištěna možnost přístupu k repozitáři pomocí SSH s URL ve formátu «ssh://kallithea@example.com/name/of/repository». Autentizace při přístupu k repozitáři přes SSH se provádí na základě uživatelského veřejného klíče (s dodatečnou ochranou klíče heslem nebo bez ní, v závislosti na uživatelském nastavení). Nahrávání klíče (~/.ssh/id_rsa.pub) na server se provádí prostřednictvím webového rozhraní Kallithea, které automatizuje ukládání klíče do souboru authorized_keys. Je poznamenáno, že výkon práce s repozitářem přes SSH je vyšší než při přístupu k repozitáři přes HTTPS.
- Byla přidána podpora distribuovaného systému správy verzí Mercurial 5.2.
- Byla přepracována funkce „Admin > Settings > Visual > (HTTP) Clone URL“, jejíž zpracovatel nyní explicitně kontroluje přítomnost řetězců „{repo}“ a „_{repoid}“.
- Bylo provedené vyčištění systému oprávnění — oprávnění vždy zůstávají pouze jako doplňková, t.j. je zajištěno, že každý uživatel bude mít minimálně stejná práva jako uživatel ve výchozím stavu.
- V konfiguračním souboru byla ukončena podpora nastavení api_access_controllers_whitelist. Autentizace prostřednictvím přístupového klíče k API nyní automaticky poskytuje přístup ke všem API, které uživateli povoleno.
- Podpora Pythonu 2.6 byla ukončena. V současnosti je podporována pouze větev Pythonu 2.7, ale vývojáři pracují na zajištění plné podpory Python 3.x.
- Funkce blokování repozitáře (pull-to-lock, push-to-unlock) byla odstraněna.
Zdroj: opennet.ru
