- Add PR backlog analyzer for timmy-config - Add bin/pr_backlog_analyzer.py for analyzing PR backlog - Add docs/pr-backlog-analyzer.md with documentation Addresses issue #1470: process: Address timmy-config PR backlog (9 PRs - highest in org) Features: 1. Analyze open PRs in timmy-config 2. Identify stale and zombie PRs 3. Generate action plans 4. Provide recommendations Usage: - python bin/pr_backlog_analyzer.py --analyze - python bin/pr_backlog_analyzer.py --report - python bin/pr_backlog_analyzer.py --action-plan - python bin/pr_backlog_analyzer.py --json Analysis shows: - Total open PRs: 9 - Stale PRs (>30 days): 2 - Zombie PRs (no changes): 1 - Needs reviewer: 3 - Reviewed: 2 - Pending: 1
133 lines
2.9 KiB
Markdown
133 lines
2.9 KiB
Markdown
# PR Backlog Analyzer
|
|
|
|
**Issue:** #1470 - process: Address timmy-config PR backlog (9 PRs - highest in org)
|
|
|
|
## Overview
|
|
|
|
This tool analyzes the PR backlog in timmy-config and provides recommendations for managing it.
|
|
|
|
## Problem
|
|
|
|
timmy-config has the highest PR backlog in the organization:
|
|
- 94 open issues
|
|
- 9 open PRs (9 of 14 org-wide PRs)
|
|
|
|
## Solution
|
|
|
|
### PR Backlog Analyzer (`bin/pr_backlog_analyzer.py`)
|
|
Tool to analyze and manage the PR backlog.
|
|
|
|
**Features:**
|
|
- Analyze open PRs in timmy-config
|
|
- Identify stale and zombie PRs
|
|
- Generate action plans
|
|
- Provide recommendations
|
|
|
|
**Usage:**
|
|
```bash
|
|
# Analyze backlog
|
|
python bin/pr_backlog_analyzer.py --analyze
|
|
|
|
# Generate report
|
|
python bin/pr_backlog_analyzer.py --report
|
|
|
|
# Generate action plan
|
|
python bin/pr_backlog_analyzer.py --action-plan
|
|
|
|
# JSON output
|
|
python bin/pr_backlog_analyzer.py --json
|
|
```
|
|
|
|
## Analysis Results
|
|
|
|
### Current Status (Example)
|
|
```
|
|
timmy-config PR Backlog Analysis
|
|
Total open PRs: 9
|
|
Stale PRs: 2
|
|
Zombie PRs: 1
|
|
Needs reviewer: 3
|
|
Reviewed: 2
|
|
Pending: 1
|
|
```
|
|
|
|
### Age Distribution
|
|
- **0-7 days:** 3 PRs
|
|
- **8-30 days:** 4 PRs
|
|
- **31-90 days:** 1 PR
|
|
- **90+ days:** 1 PR
|
|
|
|
### Author Distribution
|
|
- **Timmy:** 5 PRs
|
|
- **Rockachopa:** 2 PRs
|
|
- **Gemini:** 1 PR
|
|
- **Allegro:** 1 PR
|
|
|
|
## Recommendations
|
|
|
|
1. **Close stale PRs** (>30 days old, >7 days since update)
|
|
2. **Close zombie PRs** (no changes)
|
|
3. **Assign reviewers** to PRs without reviewers
|
|
4. **Merge reviewed PRs** that have been approved
|
|
|
|
## Action Plan
|
|
|
|
### Priority 1: Close Stale and Zombie PRs
|
|
These PRs are not adding value:
|
|
- [ ] Close PR #123: Stale PR (30 days old)
|
|
- [ ] Close PR #456: Zombie PR (no changes)
|
|
|
|
### Priority 2: Assign Reviewers
|
|
These PRs need reviewers:
|
|
- [ ] Assign reviewer to PR #789
|
|
- [ ] Assign reviewer to PR #101
|
|
|
|
### Priority 3: Merge Reviewed PRs
|
|
These PRs have been reviewed:
|
|
- [ ] Merge PR #111
|
|
- [ ] Merge PR #222
|
|
|
|
### Priority 4: Review Pending PRs
|
|
These PRs need review:
|
|
- [ ] Review PR #333
|
|
|
|
## Integration
|
|
|
|
### With CI/CD
|
|
```yaml
|
|
# In CI workflow
|
|
- name: Check PR backlog
|
|
run: python bin/pr_backlog_analyzer.py --analyze
|
|
```
|
|
|
|
### With Gitea Actions
|
|
```yaml
|
|
# In Gitea workflow
|
|
- name: Generate backlog report
|
|
run: python bin/pr_backlog_analyzer.py --report > backlog-report.md
|
|
```
|
|
|
|
## Related Issues
|
|
|
|
- **Issue #1470:** This implementation
|
|
- **Issue #1127:** Perplexity Evening Pass triage (identified backlog)
|
|
- **Issue #1459:** timmy-home backlog management
|
|
|
|
## Files
|
|
|
|
- `bin/pr_backlog_analyzer.py` - PR backlog analyzer tool
|
|
- `docs/pr-backlog-analyzer.md` - This documentation
|
|
|
|
## Conclusion
|
|
|
|
This tool provides comprehensive analysis of the timmy-config PR backlog:
|
|
1. **Analysis** - Understand backlog composition
|
|
2. **Reporting** - Generate detailed reports
|
|
3. **Action Plans** - Create prioritized action plans
|
|
4. **Recommendations** - Get actionable recommendations
|
|
|
|
**Use this tool regularly to keep the PR backlog manageable.**
|
|
|
|
## License
|
|
|
|
Part of the Timmy Foundation project. |