Skip to content

CatWatch presents statistics about your most popular projects on github.com and your most active contributors. The results are accessible via REST API and statistics website.

License

Notifications You must be signed in to change notification settings

anujwalia/catwatch

 
 

Repository files navigation

Travis build status Coveralls coverage status Apache 2 Analytics

CatWatch

CatWatch is a web application that fetches GitHub statistics for your GitHub accounts, processes and saves your GitHub data in a database, then makes the data available via a REST API. The data reveals the popularity of your open source projects, most active contributors, and other interesting points.

To compare it to CoderStats: CatWatch aggregates your statistics over a list of GitHub accounts.

Prerequisites

  • Maven 3.0.5
  • Java 8
  • PostgreSQL 9.4

Getting Started

First, run PostgreSQL and create the database and a role via a 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 with 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 at http://localhost:8080

It provides the CatWatch REST API.

Details

General

Travis CI is used for continuous integration (see button on the top). Coveralls is used for tracking test coverage (see button on the top).

Database

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.

Admin Console

Currently the scheduler is being executed at 8:00 AM every 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

###TODO Here are open tasks regarding the infrastructure:

  • Deployment (Database migration, GitHub account credentials management)
  • Monitoring
  • Robustness (DB fails, CatWatch backend fails)
  • Cleaning up the code base

Potential and confirmed bugs:

  • not all Zalando projects are listed (confirmed)
  • the number of contributors is not correct (potential)
  • the time series graphs should be hidden for the first version as they break the responsive layout (confirmed)

About

CatWatch presents statistics about your most popular projects on github.com and your most active contributors. The results are accessible via REST API and statistics website.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 98.8%
  • Other 1.2%