name: "Close stale issues and PRs" on: schedule: - cron: "0 8 * * 1-5" # This is in UTC. # Do a dry-run (debug-only: true) whenever this workflow itself is changed. pull_request: paths: - .github/workflows/stale.yml types: - opened - synchronize permissions: issues: write pull-requests: write jobs: stale: runs-on: ubuntu-latest steps: - uses: actions/stale@v7 with: ascending: true # Spend API operations budget on older, more-likely-to-get-closed issues first close-issue-message: "" # Leave no comment when closing close-pr-message: "" # Leave no comment when closing days-before-issue-stale: 30 days-before-pr-stale: 30 days-before-close: 14 debug-only: ${{ github.event_name == 'pull_request' }} # Dry-run when true. exempt-issue-labels: bug,enhancement,feature,question # No actual changes get made in debug-only mode, so we can raise the operations ceiling. operations-per-run: ${{ github.event_name == 'pull_request' && 100 || 30}} stale-issue-label: stale stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions." stale-pr-label: stale stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions." # Time immemorial when in debug-only mode (ie. on pull requests). # `STALEBOT_START_DATE` otherwise. # You can use this as a killswitch by setting `STALEBOT_START_DATE` in the far future. start-date: ${{ github.event_name == 'pull_request' && '1970-01-01T00:00:00Z' || secrets.STALEBOT_START_DATE }} # ISO 8601 or RFC 2822