Dostępna jest nowa, istotna wersja , platformy zarządzającej pełnym cyklem rozwoju oprogramowania, oferującej kompletny zestaw narzędzi do rozwoju projektów zgodnych z paradygmatem DevOps. Pod względem możliwości OneDev przypomina GitLab i również umożliwia uruchomienie własnej infrastruktury do współpracy nad rozwojem, przeglądami, testowaniem, budowaniem i dostarczaniem wersji, bez uzależnienia od zewnętrznych usług chmurowych, takich jak GitHub. Kod projektu napisany jest w języku Java i na licencji MIT.
Niektóre funkcje:
- Uproszczony proces wdrażania farmy budowlanej do uruchamiania kompilacji CI w Kubernetes, nie wymagający obsługi agentów i runnerów. Możliwość testowania w kontenerach z systemem Linux i Windows;
- Wsparcie dla tworzenia specyfikacji budowy (Build Spec) w trybie wizualnym bez pisania plików YAML i zapamiętywania składni;
- Możliwość elastycznego konfigurowania procesu budowy z użyciem warunkowych parametrów budowy, równoległym uruchamianiem wielu prac budowlanych oraz automatycznym uruchamianiem zadań w odpowiedzi na określone zdarzenia;
- Wsparcie dla definiowania własnych stanów i pól do powiadomień o problemach (issue), możliwość definiowania zależności między polami oraz automatyczna zmiana stanu w odpowiedzi na określone zdarzenia;
- Interfejs issue z automatycznym odświeżaniem, nie wymagający przeładowania strony;
- System przeszukiwania i nawigacji po kodzie i zmianach, uwzględniający cechy składni Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS i R;
- Wsparcie dla powiązywania dyskusji i zewnętrznych komentarzy z kodem i blokami zmian (diff);
- Elastyczne zasady recenzowania pull-requestów z możliwością ochrony określonych gałęzi i przypisywania programistów do recenzji;
- Etapowy tryb analizy commitów podczas recenzowania pull-requestów. Powiązanie z dyskusjami z przeszłej recenzji;
- Język zapytań, umożliwiający znajdowanie potrzebnych informacji w projektach, commitach, budowach, issues, pull-requestach i komentarzach. Możliwość zapisania zapytania i otrzymywania powiadomienia o nowych zdarzeniach związanych z nim;
- System kontroli dostępu, pozwalający na określenie, kto może modyfikować kod w określonym podkatalogu, przypisywać issues, uruchamiać budowy wersji, przeglądać logi itd.
- Możliwości tworzenia i klonowania repozytoriów;
- Subskrypcja powiadomień o commitach w gałęzi master;
- Wsparcie dla pull requestów z automatyczną weryfikacją przyjmowanych commitów w systemie ciągłej integracji oraz zatwierdzaniem przez zespół ekspertów, w skład którego wchodzi co najmniej dwóch deweloperów;
- Możliwość zamykania problemów (issues) za pomocą wiadomości commitów, która może łączyć dyskusję, commit, buildy i pull requesty;
- Możliwość tworzenia formularzy do wyświetlania, którym użytkownikom przypisano rozwiązanie problemów (issues);
- Wsparcie dla tworzenia polowych dla powiązania problemów z określonymi modułami i platformami;
- Możliwość automatycznej zmiany statusu problemu na Deployed podczas naprawiania w buildzie i na Review podczas otwierania pull requestu;
- Możliwość przypisania problemowi statusu Verified, który mogą przypisywać deweloperzy posiadający status testera;
- Wsparcie dla ręcznego inicjowania ponownych buildów z możliwością wskazania wersji, która zostanie przypisana, oraz utworzenia odpowiedniego tagu w przypadku udanego builda;
- Możliwość wyboru platformy i wersji jądra Linux podczas uruchamiania ręcznego ponownego builda;
- Wsparcie dla testowania w CI różnych kombinacji Oracle/MySQL oraz Linux/Windows podczas commitowania do gałęzi master;
- Automatyczne tworzenie powiadomień o problemach (issues) oraz przypisanie osoby odpowiedzialnej za analizę problemu w przypadku awarii builda gałęzi master w CI. Automatyczne zamykanie problemów po naprawieniu awarii builda;
- Możliwość generowania plików w jednej pracy, ich równoległego przetwarzania w drugiej i analizy wyników w trzeciej;
- Wsparcie dla ponownego uruchamiania zadań w przypadku błędu uruchomienia w Kubernetes;
- Możliwość korzystania z usługi MySQL podczas realizacji zadań;
- Wsparcie dla określenia klucza tajnego przy definiowaniu specyfikacji builda;
- Możliwość ograniczenia dostępu anonimnych użytkowników tylko do wydań określonych projektów;
- Wsparcie dla ograniczenia generowania wydań tylko do gałęzi master oraz umieszczania na serwerach roboczych tylko wydań skompilowanych z gałęzi master.
Źródło: opennet.ru
