Stale awaiting-reporter #47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Stale awaiting-reporter | |
| # Marks inactive `awaiting-reporter` issues as `stale`. It NEVER closes them: | |
| # closing an issue as "not planned" is a maintainer judgement, not an automated | |
| # one, so this workflow only surfaces a review queue and a human decides. | |
| # | |
| # Only touches issues that a maintainer has explicitly marked `awaiting-reporter`. | |
| # Never touches pull requests, and never touches issues without that label. | |
| # A reporter comment removes `stale` and resets the clock. | |
| # | |
| # WHY never close (2026-07-26): `awaiting-reporter` is applied by hand and means | |
| # "the reporter owes the next step". It was also being used to mean "we will come | |
| # back to this", which is a different thing. In that second case the automation was | |
| # closing issues the project itself owed work on — #56 was a confirmed bug with an | |
| # in-tree reproduction (tests/repro/repro_issue56.c, landed via #667) queued to close | |
| # as `not_planned` purely because a maintainer had the last word. A mislabel should | |
| # cost a stale tag, never a silently discarded bug. | |
| # | |
| # The `stale` label is therefore a review queue, not a countdown. Sweep it during | |
| # triage: clear the label where we owe the next step, and close by hand where the | |
| # thread is genuinely dead. | |
| on: | |
| schedule: | |
| - cron: '17 2 * * *' # daily 02:17 UTC | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| stale: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| issues: write | |
| steps: | |
| - uses: actions/stale@1e223db275d687790206a7acac4d1a11bd6fe629 # v10.4.0 | |
| with: | |
| only-labels: 'awaiting-reporter' | |
| stale-issue-label: 'stale' | |
| days-before-issue-stale: 21 | |
| # -1 disables automated closing entirely. Marking stale is the whole job. | |
| days-before-issue-close: -1 | |
| # Never act on pull requests with this workflow. | |
| days-before-pr-stale: -1 | |
| days-before-pr-close: -1 | |
| # Belt-and-braces: these categories must never be auto-flagged even if | |
| # `awaiting-reporter` is applied to them by mistake. `task` covers the | |
| # umbrella/epic issues (incl. the pinned roadmap index #595), and | |
| # `maintainer-notes` is the explicit "we owe the next step" escape hatch. | |
| exempt-issue-labels: 'security,task,maintainer-notes' | |
| remove-stale-when-updated: true | |
| operations-per-run: 60 | |
| ascending: true | |
| stale-issue-message: > | |
| This issue has been waiting on more information for 21 days (a | |
| version, exact steps, or a public repro), so it's now marked | |
| `stale`. **It will not be closed automatically** — a maintainer | |
| reviews stale issues by hand. Adding a comment with the details | |
| clears the label and puts it straight back in the queue. We're happy | |
| to pick it back up the moment we can reproduce it. |