How to Close Stale Issues Automatically in GitHub Actions
A backlog full of abandoned issues hides the live ones; a scheduled stale sweep warns then closes the dead weight.
Run actions/stale on a cron schedule with day thresholds for marking and closing, plus exempt labels for items you never want auto-closed.
Steps
- Add a
scheduletrigger (e.g. daily). - Configure days-before-stale and days-before-close.
- Set warning messages for issues and PRs.
- Exempt important items with
exempt-issue-labels.
Workflow
.github/workflows/stale.yml
name: Stale
on:
schedule:
- cron: '0 1 * * *'
permissions:
issues: write
pull-requests: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
days-before-stale: 60
days-before-close: 14
stale-issue-message: 'No activity in 60 days; closing in 14 if nothing changes.'
exempt-issue-labels: 'pinned,security'Related guides
How to Run Tests on a Schedule and Alert on Failure in GitHub ActionsRun your test suite nightly with a cron schedule in GitHub Actions and post a Slack alert only when the run f…
How to Sync Labels from a Config File in GitHub ActionsManage repository labels as code in GitHub Actions by syncing them from a YAML config on push, so label names…