Kooder is an open source code search project, offering code, repositories and issues search service for code hosting platforms including Gitee, GitLab and Gitea.
UI
There are two modules, gateway and indexer. Gateway is integrated inside gateway under default config.
Gateway:
- Accept index tasks from HTTP requests and put them in the queue after examing it
- Accept search requests and return their results back to the client
Indexer:
- Monitor the index tasks inside the queue
- Update these add, delete and update index tasks back to the index library
core
Core object and public classgateway
Accept index and search requests from HTTP requestsindexer
A service to construct, update and delete index
1.Dependencies
- openjdk >= 8
- maven > 3
2.Download source code
$ git clone https://gitee.com/koode/kooder.git
$ cd kooder
Config file: core/src/main/resources/kooder.properties
Config kooder's url http.url
. It will be injected into Git service as the webhook URL, must be accessible for Git service, such as:
http.url = http://<kooder-host>:8080
Click here to see more config options configuration.md
Dependencies
- docker-ce environment
- docker-compose
After cloning this repo, in a machine with docker compose installed, run the following command:
### Run containers in the background
docker-compose up -d
### Stop and remove containers
docker-compose down
This is how it will look like:
After modifing the config file core/src/main/resources/kooder.properties
, run the following commands; delete local kooder image and rebuid it.
docker-compose down
docker-compose up -d
version:March 2021
The mirror remains active and updated, always ensuring the latest version
Use it in Gitlab
Config following properties:
http.startup.tasks = indexer,gitlab
gitlab.url = http://gitlab-host:gitlab-port/
gitlab.personal_access_token = <root user personal access token>
git.username = root
git.password =
Kooder will use access token as the password if you don't offer one.
Use it in Gitee
Config following properties:
http.startup.tasks = indexer,gitee
gitee.url = https://gitee.com/
gitee.personal_access_token = <root user personal access token>
git.username = root
git.password =
Kooder will use access token as the password if you don't offer one.
Use it in Gitea
1.Site Administration
2.Add Gitea Webhook
3.Set up Webhook
- Set Target URL to
http://kooder-ip:kooder-port/gitea
- Set POST Content Type to
POST + application/json
- Check
All Event
orCustom Events
for theTrigger On
option. ( If you chooseCustom Events
, you need to checkRepo
,Push
andIssue
)
2.Config following properties.
http.startup.tasks = indexer,gitea
gitea.secret_token = <webhook secret token>
gitea.url = http://gitea-ip:prot/
gitea.personal_access_token = <admin user personal access token>
git.username = <admin username>
git.password = <admin password>
Index repository from file
Config kooder.properties
:
//Enable index repository from file
http.startup.tasks = indexer,file //Add file field
file.index.path = C:/Documents/Kooder/file.txt //Config file path of file.txt
Content of file.txt
// Add repositories URL
http://gitee.com/koode/kooder.git
https://gitee.com/ld/J2Cache.git
...
Build and Run
$ cd Kooder
$ mvn install
### Run gateway
$ bin/gateway.sh
### Brower visits http://localhost:8080