A small Python project for distilling a GitHub user's public repositories into a concise profile.
The current workflow uses a single script, github_user_distiller.py, which:
- Fetches a GitHub user's public repositories.
- Clones a small sample of them into a temporary directory.
- Extracts lightweight signals from README files, manifests, and source file types.
- Produces a profile using the GitHub Copilot SDK when available, with a heuristic fallback otherwise.
- Python 3.10+
- Git
- A GitHub Copilot CLI installation that is authenticated for the current user
The Copilot CLI must be installed and signed in before the SDK-backed path can work.
Create and activate a virtual environment:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1Install dependencies:
pip install -r requirements.txtIf you do not yet have a requirements file, install the SDK directly:
pip install github-copilot-sdkRun the distiller with a GitHub username:
.\.venv\Scripts\python.exe .\github_user_distiller.py octocatDefault behavior:
- analyzes up to 5 repositories
- writes output to stdout
- does not write a JSON file unless requested
.\.venv\Scripts\python.exe .\github_user_distiller.py USERNAME [options]Available flags:
--max-repos N: limit the number of repositories to inspect (default:5)--output PATH: write the JSON result to the given file--model MODEL: optionally request a specific Copilot model name; if the model is unavailable, the script falls back to the runtime default
Example:
.\.venv\Scripts\python.exe .\github_user_distiller.py octocat --max-repos 2 --output profile.jsonThe script can work in heuristic mode without the Copilot SDK being fully available, but the richer Copilot-backed profile path requires:
- the Copilot CLI to be installed
- the CLI to be authenticated for the current environment/user
If the CLI is missing or not authenticated, the script will still run and produce a heuristic profile.
flowchart TD
A[github_user_distiller.py] --> B[Fetch GitHub repos]
B --> C[Clone sample repos]
C --> D[Extract repo signals]
D --> E[Build profile]
E --> F[Write stdout or JSON output]
This repository is currently focused on the Windows workflow. The design is intended to be portable in future iterations, but the current commands and setup target Windows first.