Skip to main content

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

This version

2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ghreport-2.0.tar.gz (68.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ghreport-2.0-py2.py3-none-any.whl (86.8 kB view details)

Uploaded Python 2Python 3

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

Hashes for ghreport-2.0.tar.gz
Algorithm Hash digest
SHA256 ffef54be3684dc0e9fef213c6164bbdf090b845901544ef9656fdd8ef222c3ef
MD5 4dd7009e635657506a41a0004df34a1b
BLAKE2b-256 b6e3616ac958fa0502504d59d8ee3065fe20a82e801c0c3803290a8b9dbf4a62

See more details on using hashes here.

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

Hashes for ghreport-2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 16499a97ba2eceddf20a1d35303c4a92a9c0fb55b52a0afca5ed661edaa97c28
MD5 59b8414554d6a6603e01ea27133c7772
BLAKE2b-256 65d5e10855d884255e4a7dba8aca82f788a169ba6e6d682b8ba11083380340dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page