Accessing Reports
Every analysis result includes anhtml_report_url that points to the HTML report:
Report Features
Sticky Header
The header stays visible as you scroll, showing:- Job name and build number
- Total failure count
- Analysis status
- AI provider and model used
- Direct link to Jenkins build
- Regenerate button
Root Cause Analysis
Failures are automatically grouped by root cause using:- Classification (CODE ISSUE vs PRODUCT BUG)
- First 4 words of bug title (for product bugs)
- File path (for code issues)
- Unique bug ID (BUG-1, BUG-2, etc.)
- Severity badge (critical/high/medium/low)
- Classification tag
- Number of affected tests
- AI analysis details
- Code fix or bug report
- Jira matches (when configured)
Child Job Analyses
For pipeline jobs, child job failures are shown in collapsible sections with:- Child job name and build number
- Direct Jenkins link
- Recursive analysis of failures
- Summary of all failures in the pipeline
All Failures Table
A sortable table showing every individual failure with:- Test name
- Error message
- Classification
- Bug reference ID
Key Takeaway
A highlighted summary section showing the overall analysis result.Report Generation
Reports are generated lazily and cached to disk for performance.On-Demand Generation
html_report.py:633-684
Regenerating Reports
Force regeneration by adding?refresh=1 to the URL:
- You’ve updated the HTML template
- You want to see fresh formatting
- The cached version is corrupted
Status Pages
While analysis is running, the HTML report URL shows a status page:html_report.py:1089-1247
- Auto-refreshes every 10 seconds
- Shows current status (pending/running)
- Displays job ID and creation time
- Links to Jenkins build
- Uses the same dark theme for consistency
Dark Theme
All reports use a GitHub-inspired dark theme with:html_report.py:36-110
- Saved to disk and opened locally
- Attached to emails
- Archived for compliance
- Shared without external dependencies
Failure Grouping Logic
The report intelligently groups failures to reduce noise:html_report.py:642-670
Singleton Merging
If one group contains >50% of failures, singleton groups with the same classification are merged into it:html_report.py:706-734
Dashboard
View all analysis results in a sortable dashboard:- All recent analysis jobs
- Job name, build number, status
- Failure count
- Timestamp
- Direct links to HTML reports
- Search and pagination
Loading More Results
By default, the dashboard loads the last 500 jobs. Adjust this via thelimit parameter:
Customization
The HTML generation code is insrc/jenkins_job_insight/html_report.py. You can customize:
- Theme colors: Edit CSS custom properties (html_report.py:47-68)
- Grouping logic: Modify
_grouping_key()(html_report.py:642-670) - Card layout: Edit
_render_group_card()(html_report.py:829-937) - Header content: Modify sticky header section (html_report.py:506-520)
?refresh=1 to see your changes.