A Gradio-based dashboard for analyzing and categorizing Azure DevOps bugs, helping you prioritize and clean up your bug backlog.
- 🤖 AI-Powered Analysis: Optional GPT-4o integration for intelligent bug categorization and actionability assessment
- Smart Fallback System: Graceful degradation to heuristic analysis when OpenAI package is unavailable
- Questionable Bug Detection: Identifies bugs with insufficient descriptions, broken references, or other issues that make them non-actionable
- Intelligent Categorization: AI-enhanced grouping of actionable bugs by type (crashes, performance, drivers, etc.)
- Azure DevOps Integration: Direct query links to view bugs in Azure DevOps
- Statistical Analysis: Shows average bug age and time in active state
- Batch Query Support: Handles large bug lists by creating batched queries
- Dual Mode Interface: Dynamic UI showing current analysis mode (AI vs heuristic)
- Create a
.env
file with your Azure DevOps credentials:
AZURE_DEVOPS_ORG=your-organization
AZURE_DEVOPS_PROJECT=your-project
[email protected]
AZURE_DEVOPS_PAT=your-personal-access-token
# Optional: Enable AI-powered analysis (requires OpenAI package)
OPENAI_API_KEY=your_openai_api_key_here
-
Go to https://dev.azure.com and sign in
-
Click on your profile picture (top right) → User settings → Personal access tokens
-
Click "New Token"
-
Give it a name and select expiration
-
Under "Scopes", select:
- Work Items → Read
- Project and Team → Read
-
Click "Create" and copy the token immediately (you won't see it again!)
-
Install dependencies:
pip install -r requirements.txt
For enhanced AI-powered bug analysis using GPT-4o:
pip install openai
Then add your OpenAI API key to the .env
file. The application will automatically detect the availability of AI features and fall back to heuristic analysis if OpenAI is unavailable.
- Run the dashboard:
python main.py
The application is organized into modular components:
config.py
- Configuration and environment variables with optional AI detectionazure_client.py
- Azure DevOps API interactionsbug_analyzer.py
- Bug statistics calculationsbug_categorizer.py
- Actionable bug categorizationreport_generator.py
- Report generation logicquestionable_analyzer.py
- Heuristic-based questionable bug detectionai_bug_analyzer.py
- GPT-4o powered intelligent bug analysis (optional)main.py
- Main orchestration and adaptive Gradio UI
- 🤖 AI-Powered Analysis: Integrated GPT-4o for intelligent bug categorization and actionability assessment
- Smart Fallback System: Optional OpenAI dependency - gracefully falls back to heuristic analysis when unavailable
- Enhanced Bot Detection: AI-powered real person vs bot/system creator identification
- Intelligent Categorization: GPT-4o analyzes bug descriptions for nuanced classification beyond keyword matching
- Advanced Title Grouping: AI identifies duplicate and similar bug titles with higher accuracy
- Dual Mode Interface: Dynamic UI that shows current analysis mode (AI-powered vs heuristic)
- Robust Error Handling: Comprehensive fallback mechanisms ensure application works with or without OpenAI package
- Progress Tracking: Enhanced progress indicators for AI analysis operations
- Major Refactoring: Split monolithic main.py (400+ lines) into modular components
- Fixed Bug Count Discrepancy: Query links now use specific bug IDs instead of keyword searches
- Added Batch Query Support: Categories with >50 bugs are split into multiple queries
- Improved Statistics: Bug age and active duration now calculated only from actionable bugs
- Better Organization: Each module has single responsibility, no code duplication
- Added Group Similar Titles: Bugs with similar titles are grouped together in questionable bugs section
- Basic bug analysis functionality
- Single file implementation
- Keyword-based categorization
- Initial questionable bug detection