{"id":13425749,"url":"https://github.com/theonedev/onedev","last_synced_at":"2026-02-25T12:22:30.088Z","repository":{"id":39612258,"uuid":"156317154","full_name":"theonedev/onedev","owner":"theonedev","description":"Git Server with CI/CD, Kanban, and Packages. Seamless integration. Unparalleled experience.","archived":false,"fork":false,"pushed_at":"2026-02-11T21:08:36.000Z","size":236921,"stargazers_count":14684,"open_issues_count":0,"forks_count":939,"subscribers_count":136,"default_branch":"main","last_synced_at":"2026-02-12T05:36:49.114Z","etag":null,"topics":["ci-cd","devops","git","kanban","packages","self-hosted"],"latest_commit_sha":null,"homepage":"https://onedev.io","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theonedev.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-11-06T02:57:01.000Z","updated_at":"2026-02-11T22:38:58.000Z","dependencies_parsed_at":"2023-09-30T02:38:59.350Z","dependency_job_id":"1605c83d-f896-46c9-83b8-14df3ef895a6","html_url":"https://github.com/theonedev/onedev","commit_stats":{"total_commits":5465,"total_committers":48,"mean_commits":"113.85416666666667","dds":0.5383348581884722,"last_synced_commit":"c55f6f3d08791eb8a67348b58a0d8c95d8c2e91c"},"previous_names":[],"tags_count":526,"template":false,"template_full_name":null,"purl":"pkg:github/theonedev/onedev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonedev%2Fonedev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonedev%2Fonedev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonedev%2Fonedev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonedev%2Fonedev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theonedev","download_url":"https://codeload.github.com/theonedev/onedev/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theonedev%2Fonedev/sbom","scorecard":{"id":567792,"data":{"date":"2025-08-11","repo":{"name":"github.com/theonedev/onedev","commit":"dc4af70ff1c1f6b4aef7c1f771ff628a94023ae8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: license.txt:0","Info: FSF or OSI recognized license: MIT License: license.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":7,"reason":"binaries present in source code","details":["Warn: binary detected: server-product/system/site/lib/mariadb-java-client-2.3.0.jar:1","Warn: binary detected: server-product/system/site/lib/mysql-connector-j-8.4.0.jar:1","Warn: binary detected: server-product/system/site/lib/postgresql-42.7.3.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: server-plugin/server-plugin-buildspec-node/Dockerfile:1: pin your Docker image by updating node:10.16.1-alpine to node:10.16.1-alpine@sha256:ccf88c24f801feaadf43520ad8979daec308ee2cc42331a1b3f1e1ce384a1714","Warn: containerImage not pinned by hash: server-product/docker/Dockerfile.agent:2","Warn: containerImage not pinned by hash: server-product/docker/Dockerfile.agent:6: pin your Docker image by updating ubuntu:24.04 to ubuntu:24.04@sha256:7c06e91f61fa88c08cc74f7e1b7c69ae24910d745357e0dfe1d2c0322aaf20f9","Warn: containerImage not pinned by hash: server-product/docker/Dockerfile.server:2","Warn: containerImage not pinned by hash: server-product/docker/Dockerfile.server:6: pin your Docker image by updating ubuntu:24.04 to ubuntu:24.04@sha256:7c06e91f61fa88c08cc74f7e1b7c69ae24910d745357e0dfe1d2c0322aaf20f9","Warn: downloadThenRun not pinned by hash: server-product/docker/Dockerfile.agent:4","Warn: downloadThenRun not pinned by hash: server-product/docker/Dockerfile.server:4","Info:   0 out of   2 downloadThenRun dependencies pinned","Info:   0 out of   5 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T15:27:28.179Z","repository_id":39612258,"created_at":"2025-08-20T15:27:28.180Z","updated_at":"2025-08-20T15:27:28.180Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29460577,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T22:42:09.113Z","status":"ssl_error","status_checked_at":"2026-02-14T22:42:05.053Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci-cd","devops","git","kanban","packages","self-hosted"],"created_at":"2024-07-31T00:01:17.999Z","updated_at":"2026-02-14T23:28:11.431Z","avatar_url":"https://github.com/theonedev.png","language":"Java","funding_links":[],"categories":["Java","Programming","Self-hosted","Self-Hosted Repository","HarmonyOS","CI/CD","Git-Server","git","self-hosting","devops","**Organization**","cli"],"sub_categories":["Version Control","Java","Windows Manager","dev","collection"],"readme":"\u003cdiv class='d-none'\u003e\n\n\u003e **NOTE: ** We develop OneDev at \u003ca href=\"https://code.onedev.io\"\u003ecode.onedev.io\u003c/a\u003e for sake of dogfooding. Please submit issues and pull requests there\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eGit Server with CI/CD, Kanban, and Packages\u003c/h1\u003e\n\n\u003ch2\u003e\n\u003ca href=\"https://docs.onedev.io\"\u003eGet Started\u003c/a\u003e \n\u003c/h2\u003e\n\n\u003cp style=\"margin-bottom: 20px;\"\u003e\n\u003c/div\u003e\n\n\n## 🔎 Out-of-box code search and navigation\n\nLanguage aware symbol search and navigation in any commit.\nClick symbol to show occurrences in current file.\nFast code search with regular expression. \n[**Try It**](https://code.onedev.io/demo/dotnet-runtime)\n\n![code search and navigation](./doc/images/code-navigation.gif)\n\n## 📦 Renovate integration to update project dependencies\n\nIntegrate with Renovate to update project dependencies via pull requests. \nMerge pull requests automatically when approved by required reviewers, or pass required tests.\n[**Tutorial**](https://docs.onedev.io/tutorials/cicd/dependency-update)\n\n![vulnerabilities](./doc/images/renovate-integration.png)\n\n## 🚦 Annotate code with coverage and problems\n\nCode will be annotated with coverage info and problems found in \nCI/CD pipeline, to facilitate code review. \n[**Demo**](https://code.onedev.io/demo/react/~files/6039030814aedeaa6ebac706c0886e3675160666/packages/react-dom/src/client/ReactDOMSelect.js?position=source-202.1-202.36-1)\n\n![code annotation](./doc/images/code-annotation.png)\n\n## 💬 Code discussion anywhere anytime\n\nSelect any code or diff to start discussion. Suggest and apply changes.\nDiscussions stay with code to help code understanding.\n[**See It In Action**](https://code.onedev.io/onedev/server/~compare?left=160:f96d82a3fa12800b4040cc9ea62af09233307ae9\u0026right=160:e55d152b9cc783fd7e64dc752a6c2b3c5613212c\u0026compare-with-merge-base=false\u0026comment=149\u0026mark=e55d152b9cc783fd7e64dc752a6c2b3c5613212c~server-product/docker/build.sh~22.1-22.148-1\u0026tab=FILE_CHANGES)\n\n![code comment](./doc/images/code-comment.gif)\n\n## 🔒 Versatile code protection rules\n\nSet rule to require review or CI/CD verification when certain users touch certain\nfiles in certain branches. \n[**Tutorial**](https://docs.onedev.io/tutorials/code/pullrequest-approval)\n\n![code protection](./doc/images/code-protection.gif)\n\n## 📋 Automated Kanban to keep team organized\n\nMove tasks manually in Kanban, or define rules to move them automatically\nwhen related work is committed/tested/released/deployed.\n[**See It In Action**](https://code.onedev.io/onedev/server/~boards/State?iteration=4.2.0\u0026backlog=true)\n\n![issue board](./doc/images/issue-board.png)\n\n## 🛠 Customizable and flexible issue workflow\n\nCustom issue states and fields. Manual or automatic state transition rules.\nIssue links to sync operations and states. Confidential issues in public projects.\n[**Tutorial**](https://docs.onedev.io/tutorials/issue/state-auto-transition)\n\n![workflow customization](./doc/images/workflow-customization.gif)\n\n## 📨 Service desk to link emails with issues\n\nUse issues as ticket system to support customers via email, without requiring\nthem to register accounts. Assign different support contacts for different\nprojects or customers.\n[**Tutorial**](https://docs.onedev.io/tutorials/issue/service-desk)\n\n![service desk](./doc/images/service-desk.png)\n\n## ⏰ Time tracking and reporting\n\nTrack estimated/spent time on tasks. Aggregate time from subtasks automatically.\nGenerate time sheets for work statistics and billing.\n[**Tutorial**](https://docs.onedev.io/tutorials/issue/time-tracking)\n\n![time tracking](./doc/images/time-tracking.png)\n\n## 💡 CI/CD as code without writing code\n\nAn intuitive GUI to create CI/CD jobs. Template for typical frameworks.\nTyped parameters. Matrix jobs. CI/CD logic reuses. Cache management.\n[**Tutorial**](https://docs.onedev.io/category/cicd)\n\n![ci/cd editor](./doc/images/cicd-editor.gif)\n\n## 🚀 Versatile CI/CD executors from simple to scale\n\nRun CI/CD out-of-box in container or on bare metal. Run massive jobs concurrently\nwith Kubernetes or agents.\n[**Example1**](https://docs.onedev.io/tutorials/cicd/agent-farm)\n[**Example2**](https://docs.onedev.io/tutorials/cicd/k8s-farm)\n\n![job executors](./doc/images/job-executors.png)\n\n## 🛠 Tools to debug CI/CD jobs\n\nCommand to pause job execution. Web terminal to check job execution environment.\nRun job locally against uncommitted changes.\n[**Tutorial1**](https://docs.onedev.io/tutorials/cicd/diagnose-with-web-terminal)\n[**Tutorial2**](https://docs.onedev.io/tutorials/cicd/run-job-against-local-change)\n\n![web terminal](./doc/images/web-terminal.gif)\n\n## 📦 Built-in package registries\n\nBuilt-in registry to manage binary packages. Link packages with\nCI/CD jobs.\n[**Tutorial**](https://docs.onedev.io/category/packages)\n\n![package registry](./doc/images/package-registry.png)\n\n## 🧩 Deep integration and information cross-reference\n\nTransit issue state via commit, CI/CD, or pull request.\nShow fixing builds of issue. Query fixed issues or code changes between build/package versions.\n[**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)\n[**Example2**](https://code.onedev.io/onedev/server/~issues/1794/builds)\n\n![deep integration](./doc/images/deep-integration.gif)\n\n## 🌲 Project tree for easy maintenance\n\nUse tree to organize projects clearly and efficiently.\nDefine common settings in parent project and inherit in child projects.\n[**See It In Action**](https://code.onedev.io/~projects?query=%22Path%22+is+%22onedev%22)\n\n![project tree](./doc/images/project-tree.png)\n\n## 🐒 Smart query that can be saved and subscribed\n\nPowerful and intuitive query for everything. Save query for quick access. Subscribe to\nquery to get notified of interesting events.\n[**Try It**](https://code.onedev.io/onedev/server/~issues)\n\n![issue query](./doc/images/issue-query.gif)\n\n## 🤖 MCP server to interact with OneDev via AI agents\n\nMCP server for managing issues, pull requests, and builds. Streamline DevOps workflows, configure CI/CD jobs, \nand investigate build failures through conversations.\n[**Tutorial**](https://docs.onedev.io/tutorials/misc/working-with-mcp)\n\n![mcp](./doc/images/mcp.png)\n\n## 🎛️ Dashboard for teams and users\n\nArrange gadgets in custom dashboard to get important information\nat a glance. Share dashboard with users or groups, or make it public\nfor everyone.\n[**See It In Action**](https://code.onedev.io/~dashboards)\n\n![edit dashboard](./doc/images/edit-dashboard.gif)\n\n## 👯 Effortless high availability and scalability\n\nEasy cluster setup. Replicate projects across different servers\nfor high availability, or distribute projects for horizontal scalability.\n[**More Info**](https://docs.onedev.io/administration-guide/high-availabilty-scalabilty)\n\n![high availability](./doc/images/high-availability.png)\n\n## 🛸 Command palette for quick access\n\nUse cmd/ctrl-k to bring up command palette from anywhere.\nSearch anything and jump to it without digging through menus.\n[**Try It**](https://code.onedev.io)\n\n![command palette](./doc/images/command-palette.gif)\n\n## 📈 SLOC trend by language\n\nInspects git history of main branch to calculate trend of\nsource lines of code by language efficiently.\n[**See It In Action**](https://code.onedev.io/onedev/server/~stats/lines)\n\n![SLOC trends](./doc/images/line-stats.png)\n\n## 🕊️ Fast, lightweight, and reliable\n\nCrafted with resource usage and performance in mind. Get all features above with a 1 core 2G mem box\nfor medium-sized projects. Intensively used for more than 5 years, with battle-proven reliability.\n[**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)\n\n![resource usage](./doc/images/resource-usage.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheonedev%2Fonedev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheonedev%2Fonedev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheonedev%2Fonedev/lists"}