A deterministic, policy-driven system to audit, score, and optimize a GitHub portfolio.
When reviewing GitHub profiles, one recurring issue appears: there is no objective, structured way to evaluate the quality of a portfolio.
Most repositories:
- vary widely in quality
- lack clear positioning
- overlap in purpose
- fail to communicate technical depth
As a result, even strong candidates often present portfolios that underperform.
This project was built to solve that problem with a deterministic and explainable approach.
GitHub Portfolio Auditor is a system that:
- Collects repositories from GitHub
- Scans each repository (structure, documentation, testing, CI, signals)
- Scores them using a configurable policy
- Generates deterministic reviews (no LLM dependency)
- Ranks repositories for portfolio visibility
- Recommends which repositories to:
- feature
- improve
- merge
- archive
- make private
- Provides a dashboard to explore and optimize decisions
- Run an audit on a GitHub account
- Get a scored and ranked list of repositories
- Identify weak or redundant projects
- Apply prioritized improvements
- Re-run the audit and measure impact
The system is structured as follows:
src/ portfolio_auditor/ collectors/ GitHub API scanners/ repository analysis scoring/ policy-driven scoring reviewing/ deterministic review ranking/ ranking and selection dashboard/ Streamlit UI models/ domain models
tests/ unit/ integration/ golden/ snapshot tests smoke/
docs/ scoring_methodology.md portfolio_decision_rules.md
Deterministic first
All outputs are reproducible and explainable.
Policy-driven
Scoring rules are externalized in YAML.
Separation of concerns
Scanning, scoring, reviewing and ranking are distinct layers.
Portfolio-oriented
This is not a generic repo scorer, but a portfolio optimization tool.
git clone https://github.com/<your-username>/github-portfolio-auditor.git
cd github-portfolio-auditor
python -m venv .venv
.venv\Scripts\activate
pip install -e .[dev]Create a .env file:
GITHUB_TOKEN=your_token_here
Run audit:
portfolio-auditor --owner <username>Run dashboard:
set PYTHONPATH=src;.
streamlit run src/portfolio_auditor/dashboard/app.pypytest -q
pytest tests/golden -q
pytest tests/smoke -qruff check .This project enables:
- objective evaluation of a GitHub portfolio
- structured prioritization of improvements
- reduction of redundancy between projects
- stronger technical signaling
- measurable portfolio progression
It transforms a portfolio from a collection of repositories into a curated, intentional system.
- heuristic-based scoring
- no empirical calibration yet
- redundancy detection is approximate
- dashboard depends on generated artifacts
- improve test coverage
- refactor large modules
- strengthen dashboard architecture
- introduce empirical calibration
- improve redundancy detection
Mathieu
Data / BI / Analytics Engineering



