mirror of
https://github.com/docker/docs.git
synced 2026-06-19 07:35:16 +00:00
01baa63ca6
<!--Delete sections as needed --> ## Description This PR adds a GitHub Actions workflow to automatically mark and close stale issues and PRs, helping maintainers focus on active items. The old app/bot stopped working around mid 2025 and was disabled. This reimplements it using a GitHub Action with additional slash command functionality. ### Timeframes - **Mark as stale**: After **180 days** (6 months) of inactivity - **Close stale issues**: After **14 additional days** of no activity - **Close stale PRs**: After **30 additional days** of no activity ### Exempt Labels Issues and PRs with any of these labels will never be marked as stale: - `kind/help-wanted` - `status/need-more-info` - `status/needs-analysis` - `lifecycle/frozen` ### How to Keep Issues/PRs Active To prevent an issue or PR from being marked as stale or closed: **Anyone can:** 1. **Add a comment** - any comment resets the inactivity timer 2. **Use `/lifecycle active`** - removes the stale label via slash command **Maintainers can also:** 3. **Use `/lifecycle frozen`** - prevents the issue/PR from ever being marked stale 4. **Add exempt labels** - manually apply one of the labels listed above 5. **Make any update** - editing the description, adding labels, or any activity resets the timer ### Slash Commands The workflow supports these lifecycle commands (comment them on any issue/PR): | Command | Access | Description | |---------|--------|-------------| | `/lifecycle active` | Anyone | Removes the stale label | | `/lifecycle frozen` | Write access required | Prevents stale marking | | `/lifecycle stale` | Write access required | Manually marks as stale | | `/remove-lifecycle frozen` | Write access required | Removes frozen label | | `/remove-lifecycle stale` | Anyone | Removes stale label | Commands respond with a 👍 reaction when successful, 👎 when permission is denied. ### Messages When marked as stale, issues and PRs receive a friendly comment explaining: - The situation and timeline for closure (14-30 days) - How to remove the stale label using `/lifecycle active` - How maintainers can freeze with `/lifecycle frozen` ### Debug Mode The workflow is currently set to **debug mode** for both components: **Stale action** (`debug-only: true`): - ✅ Runs and logs what actions it would take - ❌ No actual changes will be made (no labels, comments, or closures) **Lifecycle commands** (`DEBUG_ONLY: 'true'`): - ✅ Logs what would happen when slash commands are used - ❌ No labels added, removed, or permission checks enforced ## Related issues - #19050 --------- Signed-off-by: Craig Osterhout <craig.osterhout@docker.com>