diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000..3f0197c --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,63 @@ +# Stale Action + +# This action automatically closes old issues to maintain repository cleanup +# Reopen: Automatically closed issues must be manually reopened if still relevant, +# and the 'stale' label removed to prevent reprocessing. + +name: 'stale' + +# If the permissions are restricted, the action could require more permission +permissions: + issues: write + +# Cron runs the job at 13:00 German local time (CET/CEST) +# GitHub Actions cron uses UTC, so the time is set to 11:00 UTC. +on: + schedule: + - cron: 0 11 * * 1-5 + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + close-issue-message: > + 'This issue has been automatically closed due to age/inactivity. + If still relevant with current software version, + feel free to create a new issue with updated details. ' + stale-issue-label: 'stale' + + # Exemptions: Issues with milestones or labels 'ref/IP', 'ref/NC' are skipped. + exempt-issue-labels: 'ref/IP, ref/NC' + + # Milestones on issues/PRs exempted from stale + exempt-milestones: true + + # Days until issue gets 'stale' label (updated_at) + days-before-issue-stale: 1825 + + # Issues are closed immediately after being labeled stale + days-before-issue-close: 0 + + # Disables marking pull requests as stale and overrides + # the default (60 days) + days-before-pr-stale: -1 + + # Disables automatically closing pull requests after being marked stale + days-before-pr-close: -1 + + # Limits total API operations per run; + # since each issue needs 3 operations (label, message, close), + # max ~5 issues are processed per run. + # The action limits operations, not issues directly, so changing config + # (e.g., adding more labels or comments) affects + # how many issues can be handled in one run. + operations-per-run: 15 + enable-statistics: true + + # Processes oldest issues first + ascending: true + + # Action only simulates the labeling and closing process, useful for testing + debug-only: true