A new significant release is available , a platform for managing the complete software development lifecycle, providing a full set of tools for project development in line with the DevOps paradigm. OneDev’s capabilities are similar to GitLab and it also allows deploying a collaborative development, review, testing, build, and release delivery infrastructure on your own hardware without relying on external cloud services such as GitHub. The project code is written in Java and is licensed under the MIT License.
Some features include:
- Simplified process for deploying a build farm to run CI builds in Kubernetes, without the need for agents and runners. Ability to test in containers with Linux and Windows;
- Support for creating build specifications (Build Spec) in a visual mode without writing YAML files or memorizing syntax;
- Flexible customization of the build process using conditional build parameters, parallel execution of multiple build tasks, and automatic triggering of tasks upon certain events;
- Support for defining custom states and fields for issue notifications, capability to set up dependencies between fields, and automatic state changes upon certain events;
- Self-updating issue interface that does not require page reload;
- A search and navigation system for code and changes that takes into account the syntax nuances of Java, JavaScript, C, C++, CSharp, Go, PHP, Python, CSS, SCSS, LESS, and R;
- Support for linking discussions and external comments to code and change blocks (diff);
- Flexible rules for reviewing pull requests with options to protect specific branches and assign developers for review;
- Staged commit analysis mode during pull request reviews. Linking to discussions from past reviews;
- A query language that allows you to find relevant information in projects, commits, builds, issues, pull requests, and comments. The ability to save a query and receive notifications about new events related to it;
- Access control system that determines who can modify code in a specific subdirectory, assign issues, trigger release builds, view logs, etc.
- Capabilities for creating and cloning repositories;
- Subscription to receive notifications about commits to the master branch;
- Support for pull requests with automated verification of the committed changes in the continuous integration system and approval by an expert panel, including at least two developers;
- Ability to close issues via a commit message that can link discussions, commits, builds, and pull requests;
- Ability to create forms saved in the interface to display which users have been assigned to resolve issues;
- Support for creating custom fields to attach issues to specific modules and platforms;
- Automatic status change of a problem to Deployed when fixed during build and to Review when a pull request is opened;
- Ability to assign an issue the Verified status, which can be given by developers who have tester status;
- Support for manually triggering a rebuild with the ability to specify the version that will be assigned and create a corresponding tag if the build succeeds;
- Ability to choose the platform and version of the Linux kernel when launching a manual rebuild;
- Support for testing in CI various combinations of Oracle/MySQL and Linux/Windows when committing to the master branch;
- Automatic creation of notifications about issues and assignment of a responsible person to analyze the issue in case of a build failure in the master branch in CI. Auto-closing of issues upon resolution of build failure.
- Ability to generate files in one job, process them in parallel in a second job, and analyze results in a third;
- Support for restarting jobs in case of a handler launch error in Kubernetes;
- Ability to use the MySQL service during job execution;
- Support for setting a secret key when defining the build specification;
- Ability to restrict access for anonymous users only to releases of certain projects;
- Support for restricting the generation of releases only to the master branch and deploying on production servers only releases built from the master branch.
Source: opennet.ru
