-
Notifications
You must be signed in to change notification settings - Fork 0
[Org Health] Weekly Report — 2026-03-30 #9
Description
Organization: micronaut-projects | Period: 2026-02-28 → 2026-03-30 | Generated: 2026-03-30
🚨 Health Alerts
| Indicator | Status | Value | Threshold |
|---|---|---|---|
| Issue close rate | 🟢 Green | 152 closed / 59 opened = 257% | closed ≥ opened |
| PR merge rate | 🟡 Yellow | 771 merged / 1,203 opened = 64% | ≥ 60% opened |
| Median merge time | 🟢 Green | 9.3h | < 24h |
| Median first response | ⚪ Limited data | ~23 of 59 new issues had responses | — |
| Stale issue count | 🔴 Red | 2,139 open issues not updated in 60+ days | < 10 |
| Stale PR count | 🔴 Red | 520 open PRs not updated in 30+ days | < 5 |
⚠️ Action needed: The stale issue and PR backlogs are critically large. A triage campaign is strongly recommended.
🏆 Wins & Shoutouts
⚡ Fastest Human Merges (< 4 hours)
| Repo | PR | Title | Merge Time | Author |
|---|---|---|---|---|
| micronaut-maven-plugin | #1597 | Document shaded JAR limitations for GraalVM polygl… | 0.1h | @alvarosanchez |
| micronaut-spring | #819 | Update Micronaut to M18 and Spring to 7.0.6 | 0.2h | @lissam1 |
| micronaut-json-schema | #335 | Ensure default datasource suppressions apply in all… | 0.2h | @graemerocher |
| micronaut-serialization | #1272 | Use context loader if available for default object… | 0.8h | @graemerocher |
| micronaut-openapi | #2646 | Fix KSP2 PSI lifecycle exception in processEndpoin… | 1.1h | @Joakim89 |
🎯 Velocity Highlights
- 771 PRs merged in 30 days — healthy merge velocity
- 152 issues closed vs only 59 opened — excellent backlog reduction
- 29 PRs merged in micronaut-maven-plugin alone in 30 days
- Top contributor
@sdelamoshipped 95+ commits across 4 repos in 30 days
📋 Stale Issues (Top 10 by Heat Score)
Issues open and not updated for 60+ days, sorted by comment count (community interest)
| Repo | Issue | Title | Days Stale | 🔥 Comments | Author | Labels |
|---|---|---|---|---|---|---|
| micronaut-security | #1683 | Since Micronaut Security 4.6.8 route match is randomly null in SecurityFilter | 696d | 32 | @loicmathieu |
type: bug, priority: high |
| micronaut-grpc | #164 | Feature Request: Server Side JWT Security Support | 994d | 28 | @brianwyka |
type: enhancement |
| micronaut-core | #7575 | @CircuitBreaker cache failed result when gate open |
309d | 23 | @o-shevchenko |
status: awaiting feedback |
| micronaut-sql | #558 | Outdated documentation for JDBC Transaction management | 833d | 22 | @chrisparton1991 |
type: docs |
| micronaut-kafka | #110 | Missing consumerRecord in KafkaListenerExceptionHandler | 312d | 22 | @ckosmowski |
status: awaiting feedback |
| micronaut-core | #9694 | Controller method with both @Body and HttpRequest arguments |
524d | 21 | @catatafishen |
type: bug, info: workaround available |
| micronaut-views | #5 | GSP Support | 855d | 21 | @Sabst |
type: enhancement, status: future consideration |
| micronaut-core | #6493 | Micronaut doesn't give the application code control of the output | 306d | 19 | @infinityat0 |
type: improvement |
| micronaut-core | #10328 | Only One Subscriber Allowed Error After Migrating to Micronaut | 684d | 19 | @RajeevMasseyTR |
type: improvement |
| micronaut-sourcegen | #315 | How do you insert a super call inside a constructor? | 276d | 19 | @flynndi |
question |
📊 Total stale issues: 2,139 — This is a critical backlog requiring attention.
📋 Stale PRs (Top 10 by Heat Score)
PRs open and not updated for 30+ days, sorted by comment count
| Repo | PR | Title | Days Stale | 🔥 Comments | Author |
|---|---|---|---|---|---|
| micronaut-views | #34 | Feature: Reactive Soy (v2) | 718d | 20 | @sgammon |
| micronaut-core | #10131 | Add fast compiled route matcher | 717d | 19 | @yawkat |
| micronaut-aws | #1323 | Move away from Jackson | 723d | 16 | @timyates |
| micronaut-couchbase | #84 | [couchbase] Update common files for branch master | 1161d | 15 | @micronaut-build |
| micronaut-ignite | #99 | [ignite] Update common files for branch master | 1161d | 15 | @micronaut-build |
| micronaut-core | #6786 | Document and test literal placeholder syntax with no expansion | 1487d | 15 | @timyates |
| micronaut-grpc | #322 | Introduce Server Security JWT Support | 723d | 12 | @brianwyka |
| micronaut-core | #6848 | Add config option for strict request argument error checking | 773d | 12 | @yawkat |
| micronaut-data | #1883 | Fix count query with different parameters than main query | 722d | 11 | @radovanradic |
| micronaut-core | #11327 | Normalization of bean definition class names for more correct… | 438d | 10 | @altro3 |
📊 Total stale PRs: 520 — Several community PRs have been waiting for review for 2+ years.
⏱️ PR Merge Time (Last 30 Days)
Based on sample of 100 merged PRs
| Percentile | Merge Time |
|---|---|
| p50 (median) | 9.3h 🟢 |
| p75 | 111.8h (~4.7 days) 🔴 |
| p95 | 986.9h (~41 days) 🔴 |
The median is healthy at 9.3h, driven largely by automated dependency PRs (Renovate/Dependabot). The p75 and p95 indicate that complex PRs can wait significantly longer.
⚡ First Response Time
| Type | Observation |
|---|---|
| Issues (30d) | 23 of 59 newly opened issues received at least one comment (~39% response rate). Median response time: limited data — estimate 24–72h 🟡 |
| PRs (30d) | Most automated PRs receive responses within hours via CI. Human-authored PRs vary; see stale PR table above. |
📊 Top 10 Active Repos (Last 30 Days)
Ranked by commit activity (sampled repos) + merged PR count
| Rank | Repository | Commits (30d)* | Merged PRs (30d) | Last Push |
|---|---|---|---|---|
| 1 | micronaut-starter | 100+ | — | 2026-03-29 |
| 2 | micronaut-core | 84 | 5 | 2026-03-30 |
| 3 | micronaut-maven-plugin | 52 | 29 | 2026-03-30 |
| 4 | micronaut-data | 39 | 5 | 2026-03-30 |
| 5 | micronaut-security | 30 | 3 | 2026-03-30 |
| 6 | micronaut-gradle-plugin | 30 | — | 2026-03-29 |
| 7 | micronaut-openapi | — | 5 | 2026-03-30 |
| 8 | micronaut-test-resources | — | 5 | 2026-03-29 |
| 9 | micronaut-serialization | 19 | 2 | 2026-03-30 |
| 10 | micronaut-sql | — | 5 | 2026-03-30 |
*Commit counts are from the default branch. micronaut-starter capped at 100 (API page limit).
👥 Contributor Leaderboard (Last 30 Days)
Commits across top active repos — human contributors only
| Rank | Contributor | Commits | Primary Repos |
|---|---|---|---|
| 🥇 | @sdelamo |
95+ | micronaut-starter, micronaut-core, micronaut-security, micronaut-gradle-plugin |
| 🥈 | @yawkat |
46 | micronaut-core |
| 🥉 | @alvarosanchez |
16 | micronaut-maven-plugin |
| 4 | @graemerocher |
13 | micronaut-serialization, micronaut-gradle-plugin, micronaut-core |
| 5 | @dstepanov |
3 | micronaut-core |
| 6 | @radovanradic |
3 | micronaut-data |
| 7 | @msupic |
2 | micronaut-data |
| 8 | @andriy-dmytruk |
2 | micronaut-serialization |
| 9 | @ArtemLikhitskiy |
1 | micronaut-core |
| 10 | @altro3 |
1 | micronaut-core |
😴 Inactive Repos (0 activity in 30 days)
Repos with no pushes since 2026-02-28 — consider archiving if no longer maintained
| Repository | Last Push | Recommendation |
|---|---|---|
| brand | 2026-02-25 | Recently inactive |
| github-actions | 2026-01-28 | Consider archiving or reviewing |
| micronaut-website | 2025-11-06 | Inactive 4+ months |
| micronaut-http-benchmarks | 2025-09-29 | Inactive 6+ months |
| scripts | 2025-09-03 | Inactive 7+ months |
| micronaut-documentation | 2025-09-03 | Inactive 7+ months |
| micronaut-docs-mn4 | 2025-08-05 | Inactive 8+ months |
| micronaut-docs-mn2 | 2025-06-12 | Inactive 10+ months — consider archiving |
📈 Summary
| Metric | Value |
|---|---|
| Total open issues | 2,333 |
| Total open PRs | 1,334 |
| Issues opened (30d) | 59 |
| Issues closed (30d) | 152 ✅ |
| PRs opened (30d) | 1,203 |
| PRs merged (30d) | 771 |
| PRs closed unmerged (30d) | 220 |
| Stale issues (60+ days) | 🔴 2,139 |
| Stale PRs (30+ days) | 🔴 520 |
Report generated by GitHub Copilot Org Health workflow. Data covers the micronaut-projects organization for the 30-day period ending 2026-03-30.
Generated by OSPO Organization Health Report · ◷
To install this agentic workflow, run
gh aw add github/awesome-copilot/workflows/ospo-org-health.md@aee23f301a5fbc6fd8af3d905e61480f4c406732