liberação do sistema de gerenciamento de repositórios , em entusiastas e representantes da organização Software Freedom Conservancy com o objetivo de continuar o desenvolvimento da base de código livre RhodeCode, após desta plataforma em um produto comercial semi-proprietário. Kallithea permite a configuração de uma infraestrutura de gerenciamento de desenvolvimento que suporta sistemas de controle de versão Git e Mercurial, e para as tarefas que resolve, se assemelha ao GitHub, GitLab e Bitbucket. O código do projeto é escrito em Python e sob a licença GPLv3.
Kallithea inclui um servidor de alto desempenho para o processamento de solicitações de push/pull e uma interface web para organização do desenvolvimento colaborativo, que permite gerenciar repositórios, dividir permissões de acesso, revisar código, monitorar a atividade de outros participantes, fazer forks de projetos, enviar pull requests ou editar código no local, através de um editor simples. Suporte para integração com uma base de usuários centralizada da empresa, baseada em LDAP ou ActiveDirectory. Suporte para a criação de grupos de repositórios e grupos de desenvolvedores com unificação na gestão de membros do grupo. A aparência da interface pode ser facilmente alterada através do sistema de templates. Suporte para visualização gráfica da atividade. O sistema de revisão de mudanças suporta discussão de alterações e envio de notificações.
A parte do servidor da plataforma é multithreaded, permitindo atender várias solicitações de pull/push simultaneamente. Para aumentar o desempenho, o sistema utiliza ativamente caching e a execução de ações de forma assíncrona. O sistema integra ferramentas de backup que permitem arquivar periodicamente e salvar, através de 'scp', uma cópia de todos os dados. Para monitorar a atividade nos repositórios, há uma camada especial que mantém um log de todas as solicitações e permite autenticar cada solicitação. Para trabalhar com repositórios, é utilizada a biblioteca , os metadados dos projetos podem ser armazenados em SQLite, PostgreSQL ou outros bancos de dados suportados pelo SQLAlchemy.
Principais mudanças:
- Foi adicionada a possibilidade de acesso ao repositório usando SSH, utilizando uma URL do tipo "ssh://kallithea@example.com/name/of/repository". A autenticação ao acessar o repositório via SSH é baseada na chave pública do usuário (com proteção adicional por senha ou não, dependendo da preferência do usuário). O upload da chave (~/.ssh/id_rsa.pub) para o servidor é feito através da interface web do Kallithea, que automatiza o salvamento da chave no arquivo authorized_keys. É importante notar que a performance ao trabalhar com o repositório via SSH é superior àquela ao acessar o repositório por HTTPS.
- Adicionada a compatibilidade com o sistema de controle de versão distribuído Mercurial 5.2.
- A função "Admin > Settings > Visual > (HTTP) Clone URL" foi reformulada, e seu manipulador agora verifica explicitamente a presença das strings "{repo}" e "_{repoid}".
- Foi realizada uma limpeza no sistema de permissões — os direitos de acesso são sempre considerados apenas como adicionais, ou seja, é garantido que qualquer usuário tenha pelo menos os mesmos direitos que o usuário padrão.
- No arquivo de configuração, a configuração api_access_controllers_whitelist foi removida. A autenticação via chave de acesso à API agora concede automaticamente acesso a todas as APIs autorizadas para o usuário.
- O suporte para Python 2.6 foi descontinuado. Atualmente, apenas a versão Python 2.7 é suportada, mas os desenvolvedores estão trabalhando para garantir completo suporte ao Python 3.x.
- A função de bloqueio de repositório (pull-to-lock, push-to-unlock) foi removida.
Fonte: opennet.ru
