ghreport - Github report generator.
Project description
ghreport - Generate useful reports from GitHub repository issues
This utility generates reports that can be useful to identify issues in your repository that may be stale, or that may need a response.
It can also generate a chart of open bug counts over time.
See CONTRIBUTING.md for build instructions, or install from PyPI with:
python -m pip install ghreport
Use ghreport -h for help.
For an example report, see https://github.com/gramster/ghreport/blob/main/example.md or you can see these in an automated form for my teams at https://github.com/gramster/python-reports
Interactive Dashboard
ghreport includes an interactive web dashboard with multi-repo support, caching, and charts.
Setup
Install the dashboard dependencies:
pip install ghreport[dashboard]
Create a config file (see config.example.toml):
[[repos]]
owner = "microsoft"
name = "debugpy"
bug_label = "bug"
Running
export GH_TOKEN=your_github_token
ghreport dashboard -c config.toml
The dashboard is available at http://localhost:8000. API docs are at http://localhost:8000/docs.
Options:
-p, --port— Port (default: 8000)-H, --host— Host (default: 0.0.0.0)-c, --config— Path to TOML config file
Features
- Multi-repo support — Track multiple repositories, add/remove from the UI
- SQLite caching — Reduces GitHub API calls with incremental sync
- Background sync — Periodic refresh via APScheduler
- Reports — Issue revisits, PR activity, closed issues (same as CLI)
- Charts — Open issue counts, time to merge/close/respond, label frequency, files/lines changed, top terms
- Aggregate views — Cross-repo summary and charts
Frontend Development
The frontend is a Vue 3 + Vite SPA in ghreport/dashboard/frontend/:
cd ghreport/dashboard/frontend
npm install
npm run dev # Dev server with API proxy to localhost:8000
npm run build # Production build to dist/
Development
This project uses flit. First install flit:
python -m pip install flit
Then to build:
flit build
To install locally:
flit install
To publish to PyPI:
flit publish
Version History
0.1 Initial release
0.2 More control flags
0.3 Add -o option
0.4 Apply strftime to output file name
0.5 Added markdown support
0.6 Remove hardcoded owner from query
0.8 Better team option
0.9 Add proper markdown line rule
0.11 Fix 3rd party report; exclude issues created by team from other reports
0.12 Fix typo
0.14 Only fetch open issues
0.15 Fix non-async sleep.
0.16 Added ability to get LLM training data.
0.90 Swallow exception from matplotlib
0.91 More robust in the face of matplotlib plot failures
1.5 Current CLI version
2.0 Interactive web dashboard (FastAPI + Vue 3), core module extraction, multi-repo support, SQLite caching
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ghreport-2.0.tar.gz.
File metadata
- Download URL: ghreport-2.0.tar.gz
- Upload date:
- Size: 68.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffef54be3684dc0e9fef213c6164bbdf090b845901544ef9656fdd8ef222c3ef
|
|
| MD5 |
4dd7009e635657506a41a0004df34a1b
|
|
| BLAKE2b-256 |
b6e3616ac958fa0502504d59d8ee3065fe20a82e801c0c3803290a8b9dbf4a62
|
File details
Details for the file ghreport-2.0-py2.py3-none-any.whl.
File metadata
- Download URL: ghreport-2.0-py2.py3-none-any.whl
- Upload date:
- Size: 86.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.32.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16499a97ba2eceddf20a1d35303c4a92a9c0fb55b52a0afca5ed661edaa97c28
|
|
| MD5 |
59b8414554d6a6603e01ea27133c7772
|
|
| BLAKE2b-256 |
65d5e10855d884255e4a7dba8aca82f788a169ba6e6d682b8ba11083380340dd
|