A tool that calculates a GitHub repository's quality score based on engineering best practices using metadata and source analysis.
Reaper is a tool that calculates a quality score for GitHub repositories by evaluating them against engineering best practices. It analyzes multiple attributes such as architecture, documentation, testing, and community activity using both repository metadata and source code inspection. The tool helps developers and teams assess the health and maturity of software projects objectively.
Developers, engineering managers, and researchers who need to evaluate repository quality, compare projects, or track engineering standards across codebases.
Reaper provides a systematic, extensible way to measure repository quality through customizable plugins, integrating both metadata and source analysis for a comprehensive assessment.
Calculate the score of a repository based on best engineering practices.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The plugin-based system allows easy addition of custom scoring attributes, as detailed in the 'Attribute Development' section, enabling tailored assessments for specific needs.
By integrating with GHTorrent, Reaper incorporates metadata like commit history and community activity, providing a more holistic score than code-only analysis tools.
Users can fine-tune attribute importance via weights in config.json, allowing the final score to reflect project-specific priorities, as described in the attributes configuration.
Designed for scoring multiple repositories in one run via batch_score.py, it's ideal for large-scale evaluations such as benchmarking or research studies.
The README admits that score_repo.py is outdated and non-functional, forcing reliance on the batch script, which may be cumbersome for single-repo assessments.
Setup requires a pre-configured GHTorrent MySQL database and system utilities like ctags, adding significant overhead and complexity before use.
To save scores, users must manually create and configure the reaper_results table in MySQL, as outlined in the 'persistResult' section, which is error-prone and time-consuming.