OneDev 是一个实用的自托管 Git 服务器。相比于 GitLab 更加轻量,本文记录相关内容以及安装使用方法。
简介 {#简介}
OneDev是一个开源的一体化的 DevOps 平台,相比于以往的 代码托管平台更轻量,同时兼顾了易用性,添加了操作上的额外功能。
-
原生支持Docker和Kubernetes
内置持续集成引擎,可以直接在本机上用Docker跑Build,也可以连接到Kubernetes集群上进行大批量的Build。
-
图形化的Build定义界面
在使用GitHub/GitLab等其他工具定义Build行为的时候,需要写Yaml脚本,不可避免的要去了解复杂的Build定义规则。而在OneDev里提供了图形界面,并辅以自动提示,让这个工作变得非常容易。而且日后在版本升级时,Build定义也可以自动升级。
-
灵活的Build工作流定义
支持用变量控制Build行为。对不同变量的组合分别进行Build/Test。可以将不同的Build任务连接形成Build Pipeline,并支持并发任务。
-
支持Issue状态和字段自定义
按需要自定义Issue状态和字段来满足不同的应用场景。不同字段之间可以定义依赖关系,比如说可以指定某字段只有在另一个字段选取特定值的时候显示。Issue状态可以设置基于规则的自动迁移,也可以设置基于权限的手动迁移。
-
自动刷新的Issue看板
根据Issue状态或者字段来展示Issue看板。所有Issue相关操作都可以在看板中进行。看板即时自动刷新来展示Issue的最新状态。
-
代码智能搜索和导航
在查看源文件和Diff时,支持基于语法分析的代码智能搜索和导航,并可以展示源码的大纲结构方便阅读。目前支持Java,JavaScript,C,C++,CSharp,Go,PHP,Python,CSS,SCSS,LESS,R。
-
使用标注对代码进行讨论和阅读
阅读代码时,随时可以加上标注同作者进行讨论。之后即使文件经过了修改或重命名,OneDev依然能够把合适的历史标注显示代码旁帮助理解。
-
灵活的代码审查规则
制定基于Pull Request的代码审查规则。比如说可以规定某个分支的某些文件修改后需要通过哪些人的审查,或者哪些Build任务必须通过等等。
-
强大易用的查询语言
系统包含有一个精心设计的查询语言,通过自动提示和补齐,可以快速创建对Issue,build,code,pull request等对象的复杂查询。查询还可以按需保存和订阅,以便在有满足查询条件的事件发生时,自动得到通知。
-
Code,Issue,Pull Request和Build的深度集成
在代码提交,Pull Request创建/合并,或者Build成功后,相关Issue可以自动转移到所需状态,并通知相关人员。随时获取交叉信息,比如某个Build里包含那些完成的Issue,某个Issue最早在那个Build里被解决,又或者比较任意两个Build,得到所有源代码的改动等等
-
精细的权限控制
比如您可以定义哪些人可以改动关键源文件,哪些人可以分配Issue,哪些人可以访问测试版本,哪些人可以进行版本发布等等。
使用方法 {#使用方法}
-
安装文档:https://code.onedev.io/projects/162/files/main/pages/installation-guide.md
-
浏览器要求
-
Microsoft Edge
-
Firefox 40.0 or higher
-
Safari 7.0 or higher
-
Chrome 40.0 or higher
-
-
内存要求 2G
-
安装方式
本文介绍 Docker 安装方式
Docker 安装 {#Docker-安装}
- 在 Linux/Mac 上运行以下命令,将
<data dir>
替换为存储 OneDev 数据的目录:
- 等待 OneDev 启动并运行,然后将浏览器指向 http://localhost:6610 以访问它。
- 配置用户信息、URL后重新登录
- 就完成了 OneDev 的安装,可以作为代码托管平台使用
参考资料 {#参考资料}
- https://github.com/theonedev/onedev
- https://blog.csdn.net/weixin_44445595/article/details/106971904
- https://code.onedev.io/projects/162/files/main/pages/run-as-docker-container.md