Uma nova versão significativa está disponível , uma plataforma para gerenciamento do ciclo completo de desenvolvimento de software, que fornece um conjunto completo de ferramentas para o desenvolvimento de projetos de acordo com a paradigma DevOps. O OneDev é semelhante ao GitLab e também permite a implementação de uma infraestrutura para desenvolvimento colaborativo, revisão, teste, montagem e entrega de versões, sem depender de serviços em nuvem externos, como o GitHub. O código do projeto é escrito em Java e sob a licença MIT.
Algumas funcionalidades:
- Processo simplificado de implantação de uma fazenda de builds para executar builds de CI em Kubernetes, sem a necessidade de executar agentes e runners. Capacidade de teste em containers com Linux e Windows;
- Suporte à criação de especificações de build (Build Spec) em modo visual, sem escrita de arquivos YAML e memorização de sintaxes;
- Possibilidade de configuração flexível do processo de build utilizando parâmetros de build condicionais, execução paralela de múltiplos trabalhos de build e início automático de trabalhos com base em certos eventos;
- Suporte à definição de estados e campos personalizados para notificações de problemas (issue), possibilidade de definir dependências entre campos e mudança automática de estado em determinados eventos;
- Interface de issues autoatualizável, que não requer recarregamento da página;
- Sistema de busca e navegação por código e alterações, considerando as peculiaridades da sintaxe de Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS e R;
- Suporte para vinculação de discussões e comentários externos ao código e blocos de alterações (diff);
- Regras flexíveis de revisão de pull requests com possibilidade de proteção de determinados branches e atribuição de desenvolvedores para revisão;
- Modo de análise de commits em etapas ao revisar pull requests. Vínculo a discussões de revisões anteriores;
- Linguagem de consulta que permite encontrar informações relevantes em projetos, commits, builds, issues, pull requests e comentários. Possibilidade de salvar a consulta e receber notificação sobre novos eventos relacionados.
- Sistema de controle de acesso que permite determinar quem pode modificar o código em um subdiretório específico, atribuir issues, executar compilações de versões, visualizar logs, etc.
- Recursos para criação e clonagem de repositórios;
- Inscrição para receber notificações sobre commits na branch master;
- Suporte a pull requests com automação na verificação do commit recebido no sistema de integração contínua e aprovação de um conselho de especialistas, que inclui pelo menos dois desenvolvedores;
- Capacidade de fechar issues através de uma mensagem de commit que pode vincular discussões, commits, compilações e pull requests;
- Possibilidade de criar formulários persistentes na interface para exibir quais usuários estão atribuídos à resolução de problemas (issues);
- Suporte para a criação de campos personalizados para vincular issues a módulos e plataformas específicos;
- Capacidade de mudar automaticamente o status de um problema para Deployed ao corrigir durante a compilação e para Review ao abrir um pull request;
- Capacidade de atribuir o estado Verified a um problema, que pode ser concedido por desenvolvedores com status de testador;
- Suporte para iniciar manualmente uma recompilação com a possibilidade de especificar a versão que será atribuída e criar a tag correspondente em caso de sucesso na compilação;
- Capacidade de escolher a plataforma e a versão do núcleo Linux ao iniciar uma recompilação manual;
- Suporte para testar em CI várias combinações de Oracle/MySQL e Linux/Windows ao fazer commit na branch master;
- Criação automática de notificações sobre problemas (issues) e atribuição de um responsável para investigar o problema em caso de falha na compilação da branch master em CI. Fechamento automático de issues ao resolver a falha na compilação.
- Capacidade de gerar arquivos em um trabalho, processá-los em paralelo em outro e analisar os resultados em um terceiro;
- Suporte para reiniciar trabalhos em caso de erro ao iniciar o manipulador no Kubernetes;
- Capacidade de utilizar o serviço MySQL durante a execução de trabalhos;
- Suporte para definir uma chave secreta ao especificar a configuração da compilação;
- Capacidade de restringir o acesso a usuários anônimos apenas às versões específicas de projetos;
- Suporte para restringir a geração de versões apenas à branch master e a implantação em servidores de produção somente de versões compiladas a partir da branch master.
Fonte: opennet.ru
