I whipped up this script to build reports for the Fedora Security Team meetings, but it could be adatped easily to fit the needs of other groups that use Bugzilla as their ticketing system.
Python 2.7 or 3.1+ is required for collections.Counter to work.
The script only needs a few python packages:
pip install terminaltables python-bugzilla parsedatetime SQLAlchemy
Simply run the script:
python report_generator.py
python report_generator.py [--help] [--cron | --fetch | --date DATE]
__ _
/ _| ___ __| | ___ _ __ __ _
| |_ / _ \/ _` |/ _ \| '__/ _` | Fedora Security Team Report
| _| __/ (_| | (_) | | | (_| | Report date: 2015-09-02 21:55:33.305011
|_| \___|\__,_|\___/|_| \__,_| Data from: 2015-09-02
-------------------------------------------------------------------------------
┌Tickets by Priority──┬───────┬─────────┐
│ Priority │ Count │ Owned │ Unowned │
├─────────────┼───────┼───────┼─────────┤
│ medium │ 378 │ 43 │ 335 │
│ low │ 153 │ 14 │ 139 │
│ high │ 42 │ 22 │ 20 │
│ unspecified │ 3 │ 0 │ 3 │
└─────────────┴───────┴───────┴─────────┘
┌Tickets by Status─┬───────┬─────────┐
│ Status │ Count │ Owned │ Unowned │
├──────────┼───────┼───────┼─────────┤
│ NEW │ 495 │ 68 │ 427 │
│ ON_QA │ 44 │ 5 │ 39 │
│ ASSIGNED │ 25 │ 6 │ 19 │
│ MODIFIED │ 12 │ 0 │ 12 │
└──────────┴───────┴───────┴─────────┘
┌Tickets by Severity──┬───────┬─────────┐
│ Severity │ Count │ Owned │ Unowned │
├─────────────┼───────┼───────┼─────────┤
│ medium │ 378 │ 43 │ 335 │
│ low │ 153 │ 14 │ 139 │
│ high │ 43 │ 22 │ 21 │
│ unspecified │ 2 │ 0 │ 2 │
└─────────────┴───────┴───────┴─────────┘
┌Tickets by Component──┬───────┬─────────┐
│ Component │ Count │ Owned │ Unowned │
├──────────────┼───────┼───────┼─────────┤
│ cacti │ 10 │ 0 │ 10 │
│ nagios │ 9 │ 9 │ 0 │
│ moodle │ 8 │ 1 │ 7 │
│ quassel │ 7 │ 0 │ 7 │
│ qemu │ 7 │ 4 │ 3 │
│ mingw-icu │ 7 │ 0 │ 7 │
│ bugzilla │ 7 │ 0 │ 7 │
│ glibc │ 6 │ 0 │ 6 │
│ avr-binutils │ 6 │ 0 │ 6 │
└──────────────┴───────┴───────┴─────────┘
┌Tickets by Distro Version─┬───────┬─────────┐
│ Distro Version │ Tickets │ Owned │ Unowned │
├────────────────┼─────────┼───────┼─────────┤
│ 21 │ 126 │ 7 │ 119 │
│ 22 │ 130 │ 3 │ 127 │
│ 23 │ 33 │ 11 │ 22 │
│ 6.6 │ 1 │ 0 │ 1 │
│ el5 │ 67 │ 20 │ 47 │
│ el6 │ 210 │ 37 │ 173 │
│ epel7 │ 36 │ 4 │ 32 │
│ rawhide │ 3 │ 0 │ 3 │
│ unspecified │ 3 │ 0 │ 3 │
└────────────────┴─────────┴───────┴─────────┘