CatWatch provides a web application that fetches regularly statistics for your GitHub accounts from GitHub. The web application processes and saves the data in a database and then makes the data available via a REST-API. The provided data reveal the popularity of your projects, your most active contributors etc.
In comparison to CoderStats the statistics can be aggregated over a list of GitHub accounts.
- Maven 3.0.5
- Java 8
- PostgreSQL 9.4
First run postgresql and create the database and a role via unix shell
psql -c "create database catwatch;" -U postgres -h localhost
psql -c "create database catwatch_test;" -U postgres -h localhost
psql -c "create user cat1 with password 'cat1';" -U postgres -h localhost
Build and run the web application either by Gradle or Maven.
Gradle:
cd catwatch-backend
# build
./gradlew build
# run
java -jar build/libs/catwatch-backend-0.0.1-SNAPSHOT.jar -Dorganization.list=<listOfGitHubAccounts> -Dgithub.login=XXX -Dgithub.password=YYY
Maven:
cd catwatch-backend
# build
mvn package
# run
mvn spring-boot:run -Dorganization.list=<listOfGitHubAccounts>
# run with postgresql and auto create the database (drops existing contents)
mvn spring-boot:run -Dspring.profiles.active=postgresql -Dspring.jpa.hibernate.ddl-auto=create -Dgithub.login=XXX -Dgithub.password=YYY
# run with H2 in memory database and auto create the database
mvn spring-boot:run -Dgithub.login=XXX -Dgithub.password=YYY
The web application is available under http://localhost:8080
It provides the CatWatch REST-API.
Travis CI is used for continuous integration (see button on the top). Coveralls is used for tracking the test coverage (see button on the top).
By default the web application uses an H2 in-memory database. The file application-postgresql.properties demonstrates how a PostgreSQL database can be configured.
After the application is started, some test data are added to the database.
Currently the scheduler is being executed at 8 each morning. There are some endpoints.
Initialise the database with test data (for the virtual organization 'galanto'')
GET /init
Drop the database
GET /delete
Import the data (see catwatch-dump/export.txt)
POST /import
Export the data
GET /export
Fetch the data (Please note that the properties github.login
github.password
must be set)
GET /fetch
Get the config
GET /config
Update temporarily the scoring function for projects (see catwatch-score/scoring.project.sh)
POST /config/scoring.project