V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
robinshen
V2EX  ›  程序员

OneDev 4.4 - 完全开源的 GitLab 竞品 - 加入了 RESTful API

  •  1
     
  •   robinshen · 2021-05-26 07:54:22 +08:00 · 5001 次点击
    这是一个创建于 1280 天前的主题,其中的信息可能已经有所发展或是发生改变。

    API 文档: https://code.onedev.io/help/api

    项目是完全开源的: https://github.com/theonedev/onedev

    经常有人问我跟 GitLab 对比怎样:我想说的是 GitLab 需要养活几百人,做了很多对大多数开发团队并不常用的功能。而 OneDev 力求将一些最常用的功能做到最好,比如代码浏览时的符号导航,CI/CD 的图形化编辑(后台也是存为 yaml 文件),状态 /字段可定制的工单系统,看工单时,可以直接知道在那个版本被 Fix,以及看某个版本时,直接看到所有完成的工单等等。

    项目是全 Java 的,也有同学说用的技术不够酷,不够云原生。其实用什么技术无所谓,关键是看产品本身是否好用。

    31 条回复    2021-06-15 15:16:26 +08:00
    GPLer
        1
    GPLer  
       2021-05-26 08:18:12 +08:00 via Android
    GitLab 太重量级了,需要一个小巧且好部署的类似服务,之前用 Gogs 和 Gitea 都还行 ,不知道 OneDev 对硬件配置要求怎么样。
    Rheinmetal
        2
    Rheinmetal  
       2021-05-26 08:23:46 +08:00
    有无 OKR 类似的东西?
    moxuanyuan
        3
    moxuanyuan  
       2021-05-26 08:42:29 +08:00
    感觉 UI 设计得很好看,但习惯了 github 的版面风格,总得觉得有点不跟手
    Rwing
        4
    Rwing  
       2021-05-26 09:15:12 +08:00
    还不错,有竞争也是好事,这种东西最重要的是稳定性及后期服务,观察一段时间先
    moxuanyuan
        5
    moxuanyuan  
       2021-05-26 09:36:18 +08:00
    @GPLer #1 Gogs 和 Gitea 那个好一点?
    ShinChven
        6
    ShinChven  
       2021-05-26 09:39:02 +08:00
    Gitlab 的 Issue 和 Wiki 功能对于国内的项目管理模式还是比较简陋。
    dream10201
        7
    dream10201  
       2021-05-26 09:43:23 +08:00
    看起来不错
    defunct9
        8
    defunct9  
       2021-05-26 09:54:40 +08:00
    有点 kanban 的意思
    GPLer
        9
    GPLer  
       2021-05-26 10:18:03 +08:00
    @moxuanyuan Gogs 已经不更新了,最新的版本 0.12.3 是 2020/10/08 发布的,而且 Gogs 移动端上显示异常,现在轻量级的 Git 服务直接用 Gitea 就行了,移动端还算能用。
    forcecharlie
        10
    forcecharlie  
       2021-05-26 11:34:30 +08:00
    有新的代码托管解决方案是好事,但用 Java 去实现这样一套系统,并不讨好,行业趋势都是用逐步用 Golang 实现一些功能和组件,架构上目前没有发现可以大规模横向扩展的方案,这个方向可以研究一下,还有各种权限增强,功能补全,如 Git LFS,等等等,要做好投入还挺大的。
    julyclyde
        11
    julyclyde  
       2021-05-26 11:39:33 +08:00
    gitlab 最大的问题是 ruby
    ikas
        12
    ikas  
       2021-05-26 13:32:54 +08:00
    支持下,这个之前用过也自己编译过一个.很奇怪,现在反 java 是时尚么.........
    robinshen
        13
    robinshen  
    OP
       2021-05-26 13:40:47 +08:00
    @GPLer 资源占用还好,用阿里云的 1 核 2G 内存的机器就可以跑起来。
    robinshen
        14
    robinshen  
    OP
       2021-05-26 13:44:40 +08:00
    @ShinChven OneDev 的工单可定制性是一个特色。看板可以按照任意自己定制的字段来组织,比如按模块,工单状态或者分配的人等等,后续这块还会继续增强。
    robinshen
        15
    robinshen  
    OP
       2021-05-26 13:57:46 +08:00
    @forcecharlie 选择 Java 的一个主要原因是因为有太多成熟类库可以使用了,比如 OneDev 使用 Lucene 对 Git 仓库进行索引,使用 ANTLR 对各种语言进行语法分析。对于这种有着大量复杂逻辑而网络性能不是主要考量的系统,使用 golang 的优势并不明显。

    目前并没有考虑大规模横向扩展,毕竟 OneDev 的定位不是做云服务。对于公司内部使用,一个不错的机器已经足够应付了。另外权限的管理也是 OneDev 比其他类似系统强的地方,比如说你可以定义工单的哪些字段哪些人可以操作,哪些类型的构建(持续构建版本,测试版本,上线或者发行版本等)哪些人可以操作和看到,哪些人可以操作代码哪些代码分支等等。

    GitLFS 如果呼声比较高,在后续的版本会考虑加入。
    LoNeFong
        16
    LoNeFong  
       2021-05-26 14:31:05 +08:00
    做汉化么
    robinshen
        17
    robinshen  
    OP
       2021-05-26 14:40:07 +08:00
    @LoNeFong 有这个计划。
    NoahNye
        18
    NoahNye  
       2021-05-26 23:03:34 +08:00
    请问目前支持 gpg 签名么
    robinshen
        19
    robinshen  
    OP
       2021-05-27 07:45:39 +08:00
    asdasdasdzxc
        20
    asdasdasdzxc  
       2021-05-27 09:30:21 +08:00
    好奇心问一下你这前端在 Java 中我第一次见,用到什么技术,什么原理?
    robinshen
        21
    robinshen  
    OP
       2021-05-27 10:25:46 +08:00
    @asdasdasdzxc http://wicket.apache.org. 是个服务端组件框架,类似于 JSF 。
    asdasdasdzxc
        22
    asdasdasdzxc  
       2021-05-27 12:44:25 +08:00
    @robinshen 感觉很牛皮,但是好像很少人用,资料也不多,请问为什么选择这种技术栈呢?
    lidashuang
        23
    lidashuang  
       2021-05-27 13:30:59 +08:00   ❤️ 1
    @julyclyde
    > gitlab 最大的问题是 ruby

    gitlab 的优势就是 Ruby
    lidashuang
        24
    lidashuang  
       2021-05-27 13:32:13 +08:00
    @GPLer
    > GitLab 太重量级了,需要一个小巧且好部署的类似服务,之前用 Gogs 和 Gitea 都还行 ,不知道 OneDev 对硬件配置要求怎么样。


    gogs 这种就只有 git 存储,用 coding github 类的不香吗
    robinshen
        25
    robinshen  
    OP
       2021-05-27 13:49:55 +08:00
    @asdasdasdzxc 前后端语言一致,优秀的 IDE 支持,成熟稳定。把精力可以完全放在业务逻辑上,不用跟风纷繁复杂的 JavaScript 世界。只要不是做那种世界级云服务,性能完全不是问题。
    GPLer
        26
    GPLer  
       2021-05-27 16:39:37 +08:00
    @lidashuang
    自建其中原因就是为了加速 Github 上项目的访问,并且进行存档,防止因 DMCA 等原因项目被删除。
    coding 之类的有一部分原因是信不过,而且自建已经能满足我的需要了。
    patrickyoung
        27
    patrickyoung  
       2021-05-28 01:08:00 +08:00 via iPad
    好看 看起来也实用.

    但是我觉得大家推荐 go 的另一个原因是没有 jvm 庞大的开销, 我现在碰到 java 的项目都会尽可能找 go 的替代, 原因就是轻快.
    robinshen
        28
    robinshen  
    OP
       2021-05-28 07:25:18 +08:00
    @patrickyoung 这要做什么,对于 git 及 CI 服务这种相对比较耗资源的系统,JVM 本身的开销其实不算什么了。一个 2G 内存的 Linux 就足够应付个人项目了。而且对于比较复杂的系统,go 的成熟类库也比较少,语法也相对不够强大。使用什么工具还是要看具体场景,不能一概而论。
    lidashuang
        29
    lidashuang  
       2021-05-28 12:25:26 +08:00
    @GPLer 自建 gitlab 不香吗
    patrickyoung
        30
    patrickyoung  
       2021-06-13 23:14:41 +08:00
    @robinshen 主要是 CI 服务和看板加成,如果只是 git 托管和常规的 PR/Issue,这个多出来的占用可以干不少事情。

    ![1.png]( https://i.loli.net/2021/06/13/6xoSrczOyVjN3tm.png)
    anxn
        31
    anxn  
       2021-06-15 15:16:26 +08:00 via Android
    很强,关注了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5733 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:54 · PVG 10:54 · LAX 18:54 · JFK 21:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.