ghstat

command module
v0.0.0-...-7c2d22d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2020 License: GPL-3.0 Imports: 12 Imported by: 0

README

ghstat

Build Status Scrutinizer Code Quality Go Report Card Maintainability codecov GoDoc

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

Documentation

Overview

ghstat - statistical multi-criteria decision-making comparator for Github's projects.

Directories

Path Synopsis
Package httpcache provides an interface to HTTP request static cache, Usage example : func main() { url := "https://api.github.com/repos/astaxie/beego/contributors" body := httpcache.MakeCachedHTTPRequest(url) jsonResp, linkHeader, _ := httpcache.ReadResp(body) fmt.Printf("%s\n%s", jsonResp, linkHeader) }
Package httpcache provides an interface to HTTP request static cache, Usage example : func main() { url := "https://api.github.com/repos/astaxie/beego/contributors" body := httpcache.MakeCachedHTTPRequest(url) jsonResp, linkHeader, _ := httpcache.ReadResp(body) fmt.Printf("%s\n%s", jsonResp, linkHeader) }

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL