This is a simple standalone web application that allows you to grep over many git repositories via web interface. To start working you just need to set a path to your repositories and run the application. Enjoy in a minute!
Note: Yagga also supports grep on mercurial repositories (not all functions available yet).
- Java 8
- globally recognizable
gitcommand in operating system (added to PATH variable etc.); git not older than version 2.5 - to mercurial users: same as above for
hgcommand
- clone repositories to your local machine by yourself or let Yagga download them from Stash (check properties table below)
- to build simply execute
./gradlew build - to run execute:
./gradlew bootRun -Dyagga.repositories.paths=<comma_separated_paths_to_your_repositories>, orjava -jar yagga-<version>.jar --yagga.repositories.paths=<comma_separated_paths_to_your_repositories>(by default Yagga jar file is placed at./build/libsdirectory).
- open page
http://localhost:8080and start searching your repositories
To simplify running Yagga application you can take advantage of
Spring relaxed binding
and define system property that specifies repositories locations: YAGGA_REPOSITORIES_PATHS=<comma_separated_paths_to_your_repositories> (for example in .bashrc).
Than you can simply run Yagga by executing ./gradlew bootRun or java -jar yagga-<version>.jar.
| Property | Type | Default value | Description |
|---|---|---|---|
yagga.repositories.paths |
String | <undefined> | comma-separated list of repositories paths e.g. /home/yu55/custom,/home/yu55/stash; this is required property |
yagga.scheduler.updateRepositories.enabled |
Boolean | false | flag defining whether repositories defined with yagga.repositories.paths should be updated periodically |
yagga.scheduler.updateRepositories.intervalInMillis |
Long | 60000 | defines fixed period in milliseconds between the end of the last repositories update invocation and the beginning of the next |
yagga.scheduler.detectDirectoriesChange.enabled |
Boolean | false | flag defining if periodical check for repositories added or deleted from yagga.repositories.paths should take place |
yagga.scheduler.detectDirectoriesChange.intervalInMillis |
Long | 60000 | defines fixed period in milliseconds between the end of the last directories check invocation and the beginning of the next |
yagga.stash.url |
String | <undefined> | URL to stash, e.g. https://stash.mycompany.net; if this is set then rest of stash properties are required |
yagga.stash.localRepoPath |
String | <undefined> | which one of yagga.repositories.paths paths is used to download projects from Stash, e.g. /home/yu55/stash |
yagga.stash.username |
String | <undefined> | your stash username, e.g. john.kowalsky |
yagga.stash.password |
String | <undefined> | your stash password encoded with base64, e.g. cGFzc3dvcmQ= |

