Skip to content

PR Dashboard: Add opt-in stale labeling and automatic closure #113

Description

@trask

Problem

The PR dashboard already tracks rich routing signal — which party a pull request is waiting on and how long it has been idle in that state. That signal is a good foundation for an opt-in feature that labels pull requests stale and eventually closes them when they stay inactive while waiting on the author. Stale labeling and automatic closure carry additional state, label-ownership, activity-reset, permission, and recovery concerns, so they should be delivered separately from the nudge rollout.

Dependencies

Proposal

Add a separate repository-level opt-in for stale labeling and automatic closure after the nudge lifecycle:

  • After the nudge, require one quiet week while the pull request remains in Waiting on authors, then apply a dashboard-managed Stale label.
  • After one more quiet week, close the pull request with guidance that the author can comment /dashboard reopen to reopen it.
  • Introduce a /dashboard reopen command that reopens a pull request the dashboard closed. It reopens the pull request directly and does not route it to reviewers or maintainers. It is accepted from the pull request author or an approver-team member.
  • Substantive human comments, reviews, or pushes restart the current quiet stage. Bot activity, reactions, label or assignment changes, checks, and edits to existing comments do not.
  • Leaving Waiting on authors cancels escalation and removes only a Stale label owned by the dashboard. A label that existed before dashboard escalation must not be removed.
  • A /dashboard route:reviewers override stops stale/close escalation because the pull request is no longer routed to the author.
  • Mutations must remain idempotent across workflow retries.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions