Skip to content

fedir/ghstat

Repository files navigation

ghstat

Build Status Scrutinizer Code Quality Go Report Card Maintainability codecov GoDoc License: GPL v3

Statistical multi-criteria decision-making comparator for selected Github's projects.

Project's overview was given on Open Source Summit Europe 2018 "Methodology of Multi-Criteria Comparison and Typology of Open Source Projects" - https://events.linuxfoundation.org/wp-content/uploads/2017/12/Methodology-of-Multi-Criteria-Comparison-and-Typology-of-Open-Source-Project-Fedir-Rykhtik-Stratis-1.pdf

Getting started

Installation instruction:

  • Generate a token for Your GitHub account: https://github.com/settings/tokens

  • Select following scope: repo and all it's sub-scopes

  • Build the app

  • Configure the project with environment variables

  • Launch

    go get -u -v github.com/fedir/ghstat cd [package location] go build mkdir tmp export GH_USR="your_gh_username" && export GH_PASS="your_gh_api_token" ./ghstat

The project contains already some data received from Github API for local testing and debugging, but You could update it in the following way:

./ghstat --cc
bash bin/build_all.sh

If You have timeouts, You could check the rate limit with :

./ghstat -l

Usage example to compare most famous JS frameworks

./ghstat -r angular/angular,facebook/react,vuejs/vue

Usage example to compare most famous PHP frameworks

./ghstat -r laravel/framework,symfony/symfony,yiisoft/yii2,bcit-ci/CodeIgniter

After that, result.csv file will be created (or updated, if it's already exists) with the statistics of selected repositories.

Comparaison methodology

At the moment We choosed following metrics, here they are, in alphabetical order :

  • Active forkers percentage - more is better
  • Age in days - newest is better :)
  • Closed issues, % - more is better
  • Watchers - more is better
  • Total commits - more is better
    • More precisely, it's total commits by existing contributors, commits of deleted accounts, will not be taken in account

Ratings

Detailed statistics with ratings made with ghstat