A python package to compute a repository best engineering practices indicators
Project description
radon-repository-scorer
The radon-repository-scorer is a Python package to compute a repository best engineering practices indicators.
The module provides the following 8 indicators of well-engineered software projects:
- Core contributors: the number of contributors whose total number of commits accounts for 80% or more of the total contributions.
- Continuous integration (CI): the repository has evidence of a CI service, determined by the presence of a configuration file required by that service (e.g., a.travis.ymlfor TravisCI).
- Comments ratio: ratio between comments and lines of code.
- Commit frequency: the average number of commits per month.
- Issue frequency: the average number of issue events transpired per month.
- License availability: the repository has evidence of a license (i.e., a LICENSE file).
- Lines of Code: the number of executable lines of code.
- Ratio of IaC scripts: ratio between Infrastructure-as-Code (IaC) files and total files.
All the previous indicators but the last are described in depth in:
@inproceedings{@article{munaiah2017curating,
title={Curating GitHub for engineered software projects},
author={Munaiah, Nuthan and Kroh, Steven and Cabrey, Craig and Nagappan, Meiyappan},
journal={Empirical Software Engineering},
volume={22},
number={6},
pages={3219--3253},
year={2017},
publisher={Springer}
}
Note: the tool is intended to be used as a Python library. Therefore, the current version does not provide a command line interface.
How to install
From the Python Package Index
pip install repository-scorer
From source code
pip install -r requirements
pip install .
How to use
from reposcorer.scorer import score_repository
report = score_repository(path_to_repo='path/to/cloned/repo',
full_name_or_id='repo_owner/repo_name', # e.g., radon-h2020/radon-repository-scorer
host='github') # or gitlab
Output
{
'has_ci': <bool>,
'comments_ratio': <float in [0,1]>,
'commit_frequency': <float>,
'core_contributors': <int>,
'iac_ratio': <float in [0,1]>,
'issue_frequency': <float>,
'has_license': <bool>,
'repository_size': <int>
}
How to build the Docker image
docker build -t repo-scorer:latest .
How to pull from Dockerhub
docker pull radonconsortium/repo-scorer:latest
How to use Docker image
docker run -e GIT(HU|LA)B_ACCESS_TOKEN=$TOKEN repo-scorer:latest <github|gitlab> <repo full name> <clone to>
Example
docker run -e GITHUB_ACCESS_TOKEN=$GITHUB_ACCESS_TOKEN repo-scorer:latest github UoW-CPC/COLARepo /tmp/
Output:
{"has_ci": false, "percent_comment": 0.0389, "commit_frequency": 4.56, "core_contributors": 3, "iac_ratio": 0.96, "issue_frequency": 0.0, "has_license": false, "repository_size": 2224}
See CHANGELOG for logs detail about releases.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for repository_scorer-0.3.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caa581c695e4d49901bbf46655e77b50d21905363bbedcaa5cdfc7b4cafa6098 |
|
MD5 | 14421a3b9da27806c67ec38e14281572 |
|
BLAKE2b-256 | f0474dc07650763fe6509fe2fb04ef2318362619b73bf02d94c5ab7c4e564fde |