Faster idle and stale flags for community MRs (and retire the 120-day ping)
What does this MR do and why?
First of three stacked MRs reworking the post-creation lifecycle for community contribution MRs (labels, nudge, close). This one updates the labelling / detection layer:
- Flag
idleafter 7 days of no activity (was 21). - Flag
staleafter 30 days (was 120). - Count a pushed commit as activity (the most recent commit, by any author), so a contributor who pushes without commenting is no longer treated as idle. This affects the shared idle clock used by the community-contribution report and the per-team "merge requests needing attention" reports.
- Include draft MRs in idle/stale labelling.
- Escalate to the engineering manager when an MR is stuck in the reviewer's court. The old 120-day, stale-triggered escalation in
nudge-stale-community-contributionsis replaced by a reviewer's-court one: when an MR isworkflow::ready for review, was already pinged once (automation:reviewers-reminded), and is still idle after about 14 days, it pings the group engineering manager (or the contributor-success backup DRI) to find a reviewer, relabel toworkflow::in dev, or close it.automation:reviewers-remindedis removed automatically when an MR returns toworkflow::in dev(seespec/processor/community/reset_review_state_spec.rb), so a reviewer can be re-chased on later review rounds. - Drop idle MRs from the daily community-contribution report. Since idle is now flagged about 3x sooner, the report would otherwise flood MR coaches with idle MRs. The court-aware nudge (MR 2) handles idle authors directly, so the report now lists only untriaged MRs.
MR 2 (court-aware nudge) and MR 3 (auto-close) follow as stacked MRs.
Related to gitlab-org/developer-relations/contributor-success/team-task#1226 (closed)
Expected impact & dry-runs
- Idle labelling triggers about 3x sooner and now includes drafts, so expect a one-time wave of newly-
idleMRs on the first run. This MR applies labels only, plus the EM escalation comment for MRs that were already reviewer-reminded. - Validated end-to-end on local GDK: idle at 7d, stale at 30d, a recent-commit MR (including a gitlab-bot commit) correctly left active, the escalation pinging the right group EM, and the report no longer selecting idle or stale MRs.
- Recommend a
dry-run:customagainstgroups/9970before merge to size the first labelling wave.
Edited by Sina Abadi