一个企业里往往有大量的项目,每个项目都包含很多的代码,这些代码都是企业的核心资产。经过日积月累,不同的开发人员不断的修改完善,企业中很难有人能掌握所有的代码。于是企业全库的代码搜索就变得非常重要。
例如我们可以搜索公司代码是否包含某类敏感信息,是否使用了某些不安全的方法等等
那么这个Kooder 到底是什么呢?
Kooder 是一个开源的代码搜索工具,目标是为包括 Gitee/GitLab/Gitea 在内的代码托管系统提供 自动的源码、仓库和 Issue 的搜索服务。
搜索界面效果
Kooder 架构
Kooder 服务包含两个模块,分别是 gateway 和 indexer(默认配置下 indexer 被集成到 gateway 中)。其中 gateway 用来接受来自 HTTP 的索引任务, 对任务进行检查后存放到队列中;同时 gateway 还接受搜索的请求,并返回搜索结果给客户端。而 indexer 进程负责监控队列中的索引任务, 并将这些要新增、删除和修改索引的任务更新到索引库中。
模块说明
1)core 核心对象和公共类
2)gateway 用来接收来自 HTTP 的索引和搜索的请求
3)indexer 构建、更新和删除索引的服务
数据流图
项目地址
Gitee(主仓库):https://gitee.com/koode/kooder
GitHub(镜像仓库):https://github.com/oschina/kooder