云网牛站
所在位置:首页 > Linux软件 > 为Gitee/GitLab/Gitea提供代码搜索服务的Kooder下载,附介绍

为Gitee/GitLab/Gitea提供代码搜索服务的Kooder下载,附介绍

2021-03-10 15:09:32作者:Gitee稿源:OSCHINA开源站

本文为你介绍 Kooder,它是一款为 Gitee/GitLab/Gitea 提供代码搜索服务的工具。以下将介绍 Kooder 的定义及架构、模块说明、源码安装、运行前准备工作、Docker 安装、对接 Gitlab、及对接 Gitee 等内容。

 

前言

一个企业里往往有大量的项目,每个项目都包含很多的代码,经过日积月累,不同的开发人员不断地对代码修改完善,代码和代码仓库的数量也随之增长。

由于数量太多,企业中很难有人能掌握所有代码的细节,当想要统一排查代码是否包含某类敏感信息,或检查是否使用了某些不安全的方法时,就需要开发人员各自手工排查自己负责的代码,费时费力。 

因此,企业全库的代码搜索就变得非常重要。尤其对于将代码通过 GitLab 部署在本地服务器的企业,由于缺少了云端托管平台自身集成的搜索引擎,想要在本地进行全局的代码搜索就变得异常困难。

为解决该问题,Gitee 团队在近日开源了代码搜索工具 Kooder,Kooder 的目标是为包括 Gitee/GitLab/Gitea 在内的代码托管系统提供自动的源码、仓库和 Issue 的搜索服务。

 

Kooder 是什么

Kooder 是一个开源的代码搜索工具,目标是为包括 Gitee/GitLab/Gitea 在内的代码托管系统提供自动的源码、仓库和 Issue 的搜索服务。

附1:搜索界面效果截图

为Gitee/GitLab/Gitea提供代码搜索服务的Kooder下载,附介绍

为Gitee/GitLab/Gitea提供代码搜索服务的Kooder下载,附介绍

附2:源码地址

注:Kooder 遵循 Apache-2.0开源协议,欢迎开发者们踊跃提交 Issue 和 PR。

Gitee(主仓库):https://gitee.com/koode/kooder

GitHub(镜像仓库):https://github.com/oschina/kooder(注:不能打开访问GitHub项目的用户请转到Gitee平台就能看到了

 

Kooder 架构及模块说明

1、Kooder 架构

Kooder 服务包含两个模块,分别是 gateway 和 indexer(默认配置下 indexer 被集成到 gateway 中)。其中 gateway 用来接受来自 HTTP 的索引任务,对任务进行检查后存放到队列中;同时 gateway 还接受搜索的请求,并返回搜索结果给客户端。而 indexer 进程负责监控队列中的索引任务,并将这些要新增、删除和修改索引的任务更新到索引库中。

2、模块说明

core 核心对象和公共类。

gateway 用来接收来自 HTTP 的索引和搜索的请求。

indexer 构建、更新和删除索引的服务。

附:数据流图

为Gitee/GitLab/Gitea提供代码搜索服务的Kooder下载,附介绍

 

源码安装

1、依赖

openjdk >= 8

maven > 3

2、下载代码

$ git clone https://gitee.com/koode/kooder.git

$ cd kooder

 

运行前准备工作

配置文件:core/src/main/resource/kooder.properties

1、配置 HTTP 服务

http.url Kooder 的网址,该地址用于向 Git 服务注入 Webhook 的链接地址, 必须是 Git 服务可访问的地址,例如:http.url = http://<kooder-host>:8080

http.port Kooder 运行的 HTTP 端口。

2、配置 Gitlab 服务地址

目前 Kooder 支持 Gitee 和 Gitlab ,其他服务正在开发中。

gitlab.url 访问 Gitlab 的首页。

gitlab.personal_access_token Gitlab 管理员账号 root 的 Personal Access Token。

注:更多配置项请看项目中的 configuration.md。

3、构建并运行

$ cd Kooder

$ mvn install

### 给执行脚本添加权限

$ chmod +x bin/*.sh

### 启动 gateway

$ bin/gateway.sh

### 浏览器访问 http://localhost:8080

 

Docker 安装

1、docker-compose

依赖:docker-ce环境、docker-compose。

开发代码优化后,部署只需将代码clone下来,然后在服务器上部署容器平台,在平台上执行如下命令:

### 开箱即用

docker-compose up -d

### 关闭容器

docker-compose down

为Gitee/GitLab/Gitea提供代码搜索服务的Kooder下载,附介绍

2、docker-compose ha版

依赖:docker-ce环境、docker-compose。

开发代码优化后,部署只需将代码clone下来,然后在服务器上部署容器平台,在平台上执行如下命令:

### 开箱即用

docker-compose -f docker-compose-ha.yaml up -d

### 关闭容器

docker-compose -f docker-compose-ha.yaml down

为Gitee/GitLab/Gitea提供代码搜索服务的Kooder下载,附介绍

实现的效果如下:

为Gitee/GitLab/Gitea提供代码搜索服务的Kooder下载,附介绍

配置文件:/deploy/kooder.properties,修改配置文件之后,执行如下命令:

## 删除本地kooder镜像,重新build镜像

docker rmi imageID

docker-compose up -d

 

对接 Gitlab

需配置如下几项:

gitlab.url = http://gitlab-host:gitlab-port/  

gitlab.personal_access_token = <root user personal access token>  

git.username = root  

git.password =  

如果不填写密码,则 Kooder 会自动使用 access token 作为密码。

 

对接 Gitee

需配置如下几项:

gitee.url = https://gitee.com/  

gitee.personal_access_token = <root user personal access token>  

git.username = root  

git.password =  

 

构建并运行

$ cd Kooder

$ mvn install

### 启动 gateway

$ bin/gateway.sh

### 浏览器访问 http://localhost:8080

 

相关主题

在Linux系统上使用GitLab托管自己的Git server

精选文章
热门文章