È disponibile una nuova versione significativa , una piattaforma per la gestione dell'intero ciclo di sviluppo software, che offre un insieme completo di strumenti per sviluppare progetti secondo la paradigma DevOps. Per funzionalità, OneDev è simile a GitLab e consente di implementare un'infrastruttura di sviluppo collaborativo, revisione, testing, costruzione e distribuzione delle release, senza dipendere da servizi cloud esterni come GitHub. Il codice del progetto è scritto in Java e sotto licenza MIT.
Alcune funzionalità:
- Processo di distribuzione semplificato per avviare build CI su Kubernetes, senza necessità di agenti o runner. Possibilità di testare in contenitori con Linux e Windows;
- Supporto per la creazione di specifiche di build (Build Spec) in modalità visiva senza scrivere file YAML e senza dover memorizzare la sintassi;
- Possibilità di configurare in modo flessibile il processo di build utilizzando parametri di build condizionali, esecuzione parallela di più lavori di build e avvio automatico dei lavori al verificarsi di determinati eventi;
- Supporto per la definizione di stati e campi personalizzati per le notifiche sui problemi (issue), con la possibilità di definire dipendenze tra i campi e il cambio automatico di stato al verificarsi di eventi specifici;
- Interfaccia issue auto-aggiornante, che non richiede il refresh della pagina;
- Sistema di ricerca e navigazione nel codice e nelle modifiche, tenendo conto delle peculiarità della sintassi di Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS e R;
- Supporto per l'associazione di discussioni e commenti esterni al codice e ai blocchi di modifiche (diff);
- Regole flessibili per la revisione delle pull request con la possibilità di proteggere determinati rami e assegnare sviluppatori per la revisione;
- Modalità di analisi a fasi dei commit durante la revisione delle pull request. Collegamento a discussioni delle revisioni precedenti;
- Linguaggio di query che consente di trovare informazioni nei progetti, commit, build, issues, pull request e commenti. Possibilità di salvare la query e ricevere notifiche su nuovi eventi ad essa correlati;
- Sistema di controllo accessi che permette di determinare chi può modificare il codice in una specifica sottodirectory, assegnare issues, avviare build di rilascio, visualizzare i log, ecc.
- Funzionalità per la creazione e il cloning dei repository;
- Iscrizione per ricevere notifiche riguardo ai commit nel ramo master;
- Supporto per pull request con automazione del controllo del commit in un sistema di integrazione continua e approvazione da parte di un consiglio esperto composto da almeno due sviluppatori;
- Possibilità di chiudere issues tramite un messaggio di commit che può collegare discussioni, commit, build e pull request;
- Possibilità di creare form salvabili nell'interfaccia per mostrare a quali utenti è assegnata la risoluzione dei problemi (issue);
- Supporto per la creazione di campi personalizzati per collegare issue a specifici moduli e piattaforme;
- Possibilità di cambiare automaticamente lo stato di un problema in Deployed quando risolto nella build e in Review quando si apre una pull request;
- Possibilità di assegnare lo stato Verified a un problema, che può essere attribuito solo a sviluppatori con il ruolo di tester;
- Support for manual initiation of rebuilds with the ability to specify the version that will be assigned and to create the corresponding tag in case of a successful build;
- Ability to select the platform and version of the Linux kernel when starting a manual rebuild;
- Support for CI testing of various combinations of Oracle/MySQL and Linux/Windows when committing to the master branch;
- Automatic creation of issue notifications and assignment of a responsible person for issue resolution in case of a failure in building the master branch in CI. Automatic closing of issues when the build failure is resolved.
- Ability to generate files in one job, process them in parallel in the second, and analyze the results in the third;
- Support for restarting jobs in case of a handler startup error in Kubernetes;
- Ability to use the MySQL service during job execution;
- Support for specifying a secret key when defining the build specification;
- Ability to restrict anonymous users' access to releases of specific projects only;
- Support for limiting release generation to only the master branch and placing on production servers only releases built from the master branch.
Fonte: opennet.ru
