163

0

Onedev

带有看板和 CI/CD 的自托管 Git 服务器

注意: 我们在code.onedev.io上开发 OneDev 是为了进行测试。所有问题和拉取请求都应该在那里提交

带有看板和 CI/CD 的自托管 Git 服务器

5 分钟快速入门 | 安装指南 | 教程 | 所有文件|

开箱即用的符号搜索和导航

当然 IDE 很擅长做这件事,但是我们经常需要在旧的提交中搜索(调查发布版本中的问题等),在 IDE 中切换提交可能很麻烦而且很慢。 

它通过使用 ANTLR 分析源代码、以增量方式提取符号进行存储、快速且节省空间来工作。现在支持 Java、JavaScript、C、C++、CSharp、Go、PHP、Python、CSS、SCSS、LESS 和 R。GitHub 几年前添加了这个功能,但似乎只适用于主分支,GitLab 必须配置 CI生成和上传 LSIF 的工作很麻烦,如果每次提交都这样做会占用相当大的空间。

您还可以在查看提交或拉取请求时跳转到 diff 中的符号定义。

搜索符号

跳跃符号

使用正则表达式进行代码搜索

您可以切换到任何提交,并使用正则表达式搜索代码。OneDev 在后台使用 Lucene 增量索引代码。在搜索时,提取正则表达式中的文字三元组进行粗略搜索,然后在结果中进行精确匹配。这使得正则表达式搜索速度非常快,即使对于像 Linux 这样的大型存储库也是如此。

正则表达式

使用静态分析结果注释源/差异以促进代码审查

当然,这可以由 GitHub 上的许多第三方应用程序完成,但是它们会在自己的应用程序上显示结果,这使得在分析结果上添加评论等审查活动变得困难。更不用说您需要为这些服务付费。

注解

可定制的问题状态和字段,具有深度 CI/CD 集成

GitHub/GitLab 问题的简单打开/关闭状态不适用于许多工作流程。考虑客户提交的问题:

  1. 如果开发人员在提交代码时关闭了问题,客户将收到通知并可能要求发布解决问题的版本。
  2. 如果开发人员在发布时关闭了问题,QA 可能会对要测试的问题感到困惑,因为它们在测试时都保持打开状态。

通过可自定义的问题状态,我们可以通过四种状态来解决问题:打开、提交、测试就绪和发布:

  1. 提交代码时,问题会自动转换为已提交状态
  2. 创建和部署测试构建时,问题会自动转换为测试就绪状态。QA 将收到通知,并可以检查问题详细信息以了解测试构建部署到哪个环境。
  3. 当测试通过并创建发布版本时,将通知提交问题的客户,他们可以检查问题详细信息以查看哪个版本包含修复。

板

修复构建

服务台通过电子邮件创建/讨论问题

服务台允许您的用户通过电子邮件提交工单,而无需拥有 OneDev 帐户。然后可以在所需项目中创建这些工单,并将其分配给团队中的适当成员。所有关于票证的进一步讨论都可以完全通过电子邮件进行,讨论内容作为评论发布到票证上。当有任何工单活动时,用户也会收到通知,例如,当创建或部署相关版本时

服务台.png

强大而直观的查询语言

再次感谢 ANTLR,OneDev 为项目、提交、问题、构建和拉取请求提供了复杂的查询语言,具有直观的自动完成和提示。例如,它使我们的客户能够找到他们正在运行的版本和最新版本之间的固定问题,并使我们能够找到由触摸指定模块的人提交的所有提交等。 

查询可以保存和订阅,这样您就不会错过任何感兴趣的内容。

询问

无需编写 Yaml 的成熟 CI/CD 引擎

OneDev 附带 GUI 以生成 CI/CD Yaml。无需搜索 Yaml 语法。用于启动 OneDev 服务器的单线 docker 命令,您将自动拥有本地 CI/CD 运行器。担心服务器运行大量作业的能力?另一个连接任何机器的自我更新代理的单线。想要自动扩展 CI/CD 场?将 OneDev 部署到 k8s 集群的 helm one-liner。 

构建管道、矩阵作业、类型化参数、参数链、步骤模板、构建促销……太多简洁的功能无法详细说明……

工作定义

运行作业

管道.gif

灵活的拉取请求审查政策和审查者建议

根据作者、分支和更改的文件指定拉取请求审查策略。OneDev 可以利用 git 更改历史记录为涉及某些文件的拉取请求推荐最合适的审阅者。

审查政策

没有拉取请求的轻量级审查

评论代码或差异的任何部分以开始轻量级审查,而无需打开拉取请求。通过代码修改甚至文件重命名来实时查看评论以用作文档。 

每个讨论都有线程,因此您可以轻松了解带有新评论/更新的讨论。

文件评论

线程评论

快速访问功能的命令面板

按 cmd/ctrl-k 从任何地方调出命令面板。搜索项目、文件、问题、拉取请求、构建和各种设置,无需离开键盘即可跳转到它们

命令调色板.gif

使用智能编辑器愉快地编写 Markdown

在 GitHub/GitLab 的 markdown 文件中嵌入图像时,您需要将图像上传到单独的页面中,然后找出引用该图像的相对路径。使用 OneDev,您只需将图像上传到同一编辑器中的所需文件夹,链接将自动生成。 

OneDev 在编辑窗口中跟踪您的光标并根据需要滚动预览窗口,以便您始终可以预览您正在输入的内容。

降价

SLOC 趋势(按语言)

OneDev 检查主分支的 git 历史记录,以有效地按语言计算源代码行的趋势。

统计数据

便于设置继承的项目层次结构

组织是公共服务的理想选择。但是对于自托管的内部使用,我们认为分层结构更适合组织项目。子项目可以继承父项目的设置,并且可以在必要时选择性地覆盖其中的一些。这减少了管理公司大量项目的大量开销。

快速可靠,资源使用适中

OneDev 在精心设计时考虑了性能。使用 2 核 2GB 盒子,您将获得上述中型项目的所有功能。它已被广泛使用超过 5 年,具有久经考验的可靠性。修复错误是我们的最高优先级,通常在野外几乎没有已知错误。


特别感谢

你的工具包

YourKit通过提供其出色的 Java 分析器的免费开源许可证来支持该项目