onedev-server/readme.md

191 lines
7.3 KiB
Markdown

<div class='d-none'>
> **NOTE: ** We develop OneDev at <a href="https://code.onedev.io">code.onedev.io</a> for sake of dogfooding. Please submit issues and pull requests there
</div>
<div align="center">
<h1>Git Server with CI/CD, Kanban, and Packages</h1>
<h2>
<a href="https://docs.onedev.io">Get Started</a>
</h2>
<p style="margin-bottom: 20px;">
</div>
## 🔎 Out-of-box code search and navigation
Language aware symbol search and navigation in any commit.
Click symbol to show occurrences in current file.
Fast code search with regular expression.
[**Try It**](https://code.onedev.io/demo/dotnet-runtime)
![code search and navigation](./doc/images/code-navigation.gif)
## 👮‍ Flexible security and compliance scan
Scan code dependencies, built binaries, or container images to find security
vulnerabilities, license violations, or secret exposures.
[**Tutorial**] (https://docs.onedev.io/category/security-and-compliance-scan)
![vulnerabilities](./doc/images/vulnerabilities.png)
## 🚦 Annotate code with coverage and problems
Code will be annotated with coverage info and problems found in
CI/CD pipeline, to facilitate code review.
[**Demo**](https://code.onedev.io/demo/react/~files/6039030814aedeaa6ebac706c0886e3675160666/packages/react-dom/src/client/ReactDOMSelect.js?position=source-202.1-202.36-1)
![code annotation](./doc/images/code-annotation.png)
## 💬 Code discussion anywhere anytime
Select any code or diff to start discussion. Suggest and apply changes.
Discussions stay with code to help code understanding.
[**See It In Action**](https://code.onedev.io/onedev/server/~compare?left=160:f96d82a3fa12800b4040cc9ea62af09233307ae9&right=160:e55d152b9cc783fd7e64dc752a6c2b3c5613212c&compare-with-merge-base=false&comment=149&mark=e55d152b9cc783fd7e64dc752a6c2b3c5613212c~server-product/docker/build.sh~22.1-22.148-1&tab=FILE_CHANGES)
![code comment](./doc/images/code-comment.gif)
## 🔒 Versatile code protection rules
Set rule to require review or CI/CD verification when certain users touch certain
files in certain branches.
[**Tutorial**](https://docs.onedev.io/tutorials/code/pullrequest-approval)
![code protection](./doc/images/code-protection.gif)
## 📋 Automated Kanban to keep team organized
Move tasks manually in Kanban, or define rules to move them automatically
when related work is committed/tested/released/deployed.
[**See It In Action**](https://code.onedev.io/onedev/server/~boards/State?milestone=4.2.0&backlog=true)
![issue board](./doc/images/issue-board.png)
## 🛠 Customizable and flexible issue workflow
Custom issue states and fields. Manual or automatic state transition rules.
Issue links to sync operations and states. Confidential issues in public projects.
[**Tutorial**](https://docs.onedev.io/tutorials/issue/state-auto-transition)
![workflow customization](./doc/images/workflow-customization.gif)
## 📨 Service desk to link emails with issues
Use issues as ticket system to support customers via email, without requiring
them to register accounts. Assign different support contacts for different
projects or customers.
[**Tutorial**](https://docs.onedev.io/tutorials/issue/service-desk)
![service desk](./doc/images/service-desk.png)
## ⏰ Time tracking and reporting
Track estimated/spent time on tasks. Aggregate time from subtasks automatically.
Generate time sheets for work statistics and billing.
[**Tutorial**](https://docs.onedev.io/tutorials/issue/time-tracking)
![time tracking](./doc/images/time-tracking.png)
## 💡 CI/CD as code without writing code
An intuitive GUI to create CI/CD jobs. Template for typical frameworks.
Typed parameters. Matrix jobs. CI/CD logic reuses. Cache management.
[**Tutorial**](https://docs.onedev.io/category/cicd)
![ci/cd editor](./doc/images/cicd-editor.gif)
## 🚀 Versatile CI/CD executors from simple to scale
Run CI/CD out-of-box in container or on bare metal. Run massive jobs concurrently
with Kubernetes or agents.
[**Example1**](https://docs.onedev.io/tutorials/cicd/agent-farm)
[**Example2**](https://docs.onedev.io/tutorials/cicd/k8s-farm)
![job executors](./doc/images/job-executors.png)
## 🛠 Tools to debug CI/CD jobs
Command to pause job execution. Web terminal to check job execution environment.
Run job locally against uncommitted changes.
[**Tutorial1**](https://docs.onedev.io/tutorials/cicd/diagnose-with-web-terminal)
[**Tutorial2**](https://docs.onedev.io/tutorials/cicd/run-job-against-local-change)
![web terminal](./doc/images/web-terminal.gif)
## 📦 Built-in package registries
Built-in registry to manage binary packages. Link packages with
CI/CD jobs.
[**Tutorial**](https://docs.onedev.io/category/packages)
![package registry](./doc/images/package-registry.png)
## 🧩 Deep integration and information cross-reference
Transit issue state via commit, CI/CD, or pull request.
Show fixing builds of issue. Query fixed issues or code changes between build/package versions.
[**Example1**](https://code.onedev.io/onedev/server/~builds/4799/fixed-issues?query=%22State%22+is+%22Released%22+order+by+%22Priority%22+desc+and+%22Type%22+asc)
[**Example2**](https://code.onedev.io/onedev/server/~issues/1794/builds)
![deep integration](./doc/images/deep-integration.gif)
## 🌲 Project tree for easy maintenance
Use tree to organize projects clearly and efficiently.
Define common settings in parent project and inherit in child projects.
[**See It In Action**](https://code.onedev.io/~projects?query=%22Path%22+is+%22onedev%22)
![project tree](./doc/images/project-tree.png)
## 🐒 Smart query that can be saved and subscribed
Powerful and intuitive query for everything. Save query for quick access. Subscribe to
query to get notified of interesting events.
[**Try It**](https://code.onedev.io/onedev/server/~issues)
![issue query](./doc/images/issue-query.gif)
## 🎛️ Dashboard for teams and users
Arrange gadgets in custom dashboard to get important information
at a glance. Share dashboard with users or groups, or make it public
for everyone.
[**See It In Action**](https://code.onedev.io/~dashboards)
![edit dashboard](./doc/images/edit-dashboard.gif)
## 👯 Effortless high availability and scalability
Easy cluster setup. Replicate projects across different servers
for high availability, or distribute projects for horizontal scalability.
[**More Info**](https://docs.onedev.io/administration-guide/high-availabilty-scalabilty)
![high availability](./doc/images/high-availability.png)
## 🛸 Command palette for quick access
Use cmd/ctrl-k to bring up command palette from anywhere.
Search anything and jump to it without digging through menus.
[**Try It**](https://code.onedev.io)
![command palette](./doc/images/command-palette.gif)
## 📈 SLOC trend by language
Inspects git history of main branch to calculate trend of
source lines of code by language efficiently.
[**See It In Action**](https://code.onedev.io/onedev/server/~stats/lines)
![SLOC trends](./doc/images/line-stats.png)
## 🕊️ Fast, lightweight, and reliable
Crafted with resource usage and performance in mind. Get all features above with a 1 core 2G mem box
for medium-sized projects. Intensively used for more than 5 years, with battle-proven reliability.
[**Performance Comparison**](https://faun.pub/performance-compasion-of-onedev-and-gitlab-c11fc27b25be#:~:text=Git%20Push%3A%20OneDev%20is%2040,50%25%20less%20memory%20than%20GitLab)
![resource usage](./doc/images/resource-usage.png)