OneDev 十年

发布于

离上次发布帖子([之前的帖子](https://www.v2ex.com/t/833320))一下子过去了四年,[OneDev](https://onedev.io/) 也开发十年了。在巨头主宰的市场里,所幸有了一些认可 OneDev 特点的客户,能够让我一直坚持下去(几年前已从前司离职)。正面反馈不多说了,这里说下最大的两个负面反馈:

1. 操作界面不习惯。在 Git 仓库管理这个领域,GitHub 的操作界面是“黄金标准”,市面上除了 OneDev 外的其他类似产品,可以说基本都是模仿 GitHub 界面的,有的是早期界面,有的是后期界面。甚至还有像素级拷贝被 GitHub 发律师函的。OneDev 的定位是公司内部使用,而不是开源项目的协作,所以界面设计选择了按树形项目组织仓库,并在仓库内部以分支进行协作,这与 GitHub 的 Organization / Fork 有很大区别。所以很多熟悉 GitHub 操作模式的用户都不太习惯 OneDev 的界面。也有很多用户反馈在熟悉 OneDev 界面后,操作效率更高。

2. 基于 JVM。这点也可以理解,很多用户特别是个人用户用来装 OneDev 的机器本身内存就有限,所以非常在意资源消耗。对于个人或者小型项目,OneDev 所有组件都可以在同一个 JVM 内运行,包括 CI/CD, Workspace 这些。所以资源消耗还好,当然相比 Gitea,Gogs 这些还是明显多的。公司用户对这个倒不是很在意,他们更注重稳定可靠,而这也是 OneDev 一直强调的。

这几年 AI 的发展席卷一切,任何希望在市场上有竞争力的产品,AI 是避不开的话题,无论是产品本身集成 AI 功能让产品更易用,还是在开发中使用 AI 让开发更高效。OneDev 也跟 AI 进行了深度集成,推出了 AI 员工的概念,不但可以在 OneDev 界面中跟 AI 员工进行对话来理解代码或创建 CI/CD 配置,也可以将工单分配给 AI 员工完成,或者让 AI 员工自动审查代码,修复失败的构建或者是合并冲突。总之它们就像正常的用户一样,可以 @它们对工单进行计划,补充,也可以要求它们跟进需求改动,并对代码作出相应调整。

目前 AI 员工也投入到 OneDev 本身的开发中,有一些需求就直接分配给 AI 员工完成,比如:
[最近修复的问题](https://code.onedev.io/onedev/server/%7Ebuilds/7687/fixed-issues?query=%22State%22+is+%22Closed%22+order+by+%22Priority%22+desc,+%22Type%22+asc)

因为 AI 员工其实就是一个普通的用户,所以 OneDev 很多已有的功能都可以无缝跟 AI 进行集成,比如可以定义规则分配某些特定类型的工单(比如文档需求,客户的支持请求,或优先级为 Minor 的需求)给 AI 用户去自动完成,也可以定义分支保护规则来对某些特定类型的 PR(比如改动了某些文件,或由特定用户或组提交的 PR)来自动分配特定的 AI 用户进行审核。

所有 AI 功能都包含在开源免费版中,唯一的限制是 AI 功能所依赖的工作区只能在 OneDev server 上运行,这对于小团队完全够用。企业版的工作区可以运行在其他机器或者 k8s 的 pod 里。

另外即使不用 AI 功能,工作区也可以通过浏览器单独使用,比如可以通过工作区打开 Claude Code,Codex 或任意其他的基于 Terminal 的 Coding Agent 来工作,也可以通过安装 remodex 等软件,在手机上 vibe coding。工作区可以直接运行在宿主机器上,或者运行在 docker 容器内。

有关 AI 功能的更多介绍请移步:[AI 功能介绍](https://onedev.io/blogs/ai-teammates)

---

原文链接:[点击查看](https://www.v2ex.com/t/1227374)

评论(4)

现在 AI 时代,JVM 这套确实有点重了。大佬有没有考虑过用 Rust 重写?现在 Rust 生态起来了,各方面的可行性都比以前高,也有不少成功案例,重构成本应该还在可控范围内吧。

· 0 个赞

回复

感谢建议哈。目前暂时没考虑换 Rust,主要是企业用户对这块没啥抱怨。而且 OneDev 底层用了很多 Java 的反射机制,整体迁移成本太高了,确实不太现实。

· 0 个赞

OneDev 我自己平时也一直在用,主要拿来存一些不太方便放 GitHub 的私人小项目代码,看看代码啥的挺直观的。不过 CI/CD 倒是没怎么折腾过。关于楼主说的负面反馈:界面问题我觉得现在的设计挺顺手的,看着也舒服;但第二点内存占用确实是硬伤,既然是基于 Java 的,感觉可以花点精力精简一下没必要的依赖库。

· 0 个赞

JVM现在确实不太受欢迎,特别是在AI时代。大神们是否考虑过迁移到Rust呢?现在相对以前可行性高了,成本也应该可控,很多成功案例都出现过了。

· 0 个赞