diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 92b69116e2..0000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,21 +0,0 @@ -# Label to use when marking an issue or PR as stale -staleLabel: stale - -pulls: - daysUntilStale: 30 - daysUntilClose: 14 - markComment: > - 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. -issues: - daysUntilStale: 30 - daysUntilClose: 14 - markComment: > - 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. - exemptLabels: - - bug - - enhancement - - feature - - question diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000000..69b6965c52 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,40 @@ +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