release of the repository management system , enthusiasts and representatives of the Software Freedom Conservancy to continue the development of the open-source codebase RhodeCode, after into a semi-proprietary commercial product. Kallithea allows you to deploy a development management infrastructure that supports Git and Mercurial version control systems, reminiscent of GitHub, GitLab, and Bitbucket in the tasks it addresses. The project code is written in Python and under the GPLv3 license.
Kallithea includes a high-performance server for processing push/pull requests and a web interface for collaborative development, allowing for repository management, access rights separation, code reviews, participant activity tracking, project forking, sending pull requests, or editing code in place through a simple editor. It supports integration with a centralized enterprise user database based on LDAP or ActiveDirectory. It allows for the creation of repository groups and developer groups with unified member management. The interface appearance can easily be changed through a template system. It also supports visual activity representation in the form of graphs. The change review system enables discussion of changes and sending notifications.
The server part of the platform is multithreaded, allowing it to handle multiple pull/push requests simultaneously. To enhance performance, the system actively uses caching and performs actions asynchronously. Integrated backup tools allow periodic archiving and saving of all data via 'scp'. To track activity in repositories, there is a special layer that logs all requests and allows for the authentication of each request. A library is used to work with the repositories , and project metadata can be stored in SQLite, PostgreSQL, or other databases supported by SQLAlchemy.
Key Changes:
- Access to the repository is provided via SSH using a URL format like "ssh://kallithea@example.com/name/of/repository". Authentication when accessing the repository via SSH is based on the user's public key (with additional password protection for the key or without it, depending on user preference). The key (~/.ssh/id_rsa.pub) is uploaded to the server through the Kallithea web interface, which automates saving the key in the authorized_keys file. It is noted that the performance of working with the repository via SSH is higher than when accessing the repository over HTTPS.
- Support for the distributed version control system Mercurial 5.2 has been added.
- The function "Admin > Settings > Visual > (HTTP) Clone URL" has been reworked; the handler now explicitly checks for the presence of the strings "{repo}" and "_{repoid}".
- The access rights system has been cleaned up — access rights are always considered only as additive, i.e., it is guaranteed that any user will have at least the same rights as the default user.
- Support for configuring the api_access_controllers_whitelist has been removed from the configuration file. Authentication via the API access key now automatically grants access to all APIs allowed for the user.
- Support for Python 2.6 has been discontinued. Currently, only the Python 2.7 branch is supported, but developers are working towards full support for Python 3.x.
- The repository locking feature (pull-to-lock, push-to-unlock) has been removed.
Source: opennet.ru
