diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml new file mode 100644 index 00000000000..12f224a0dad --- /dev/null +++ b/.github/workflows/stale.yaml @@ -0,0 +1,32 @@ +name: 'Label and close stale PRs' +on: + schedule: + # Run at 1:30 AM UTC every day + - cron: '30 1 * * *' + workflow_dispatch: # Allows manual triggering + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + # Pull Request Settings + days-before-pr-stale: 150 + days-before-pr-close: 30 + stale-pr-message: 'Thank you for your contribution. This pull request has been marked as stale because it has had no activity in the last 150 days. It will be closed in 30 days if there is no further activity. If you need more time, you can add a comment to the PR.' + close-pr-message: 'This pull request has been closed because it has been stale for 30 days with no activity. Feel free to reopen if you want to continue working on this.' + stale-pr-label: 'stale' + + # Disable issue handling completely + days-before-stale: -1 + days-before-close: -1 + + # Optional: Remove stale label when PR is updated + remove-stale-when-updated: true + + # Optional settings to reduce API usage + operations-per-run: 100 + + # Enable statistics in the logs + enable-statistics: true diff --git a/docs/internal/contributing/README.md b/docs/internal/contributing/README.md index 355038b3fe9..8d91646adb3 100644 --- a/docs/internal/contributing/README.md +++ b/docs/internal/contributing/README.md @@ -10,6 +10,8 @@ Doing so can be a helpful way of asking for assistance or to develop an idea. When you open a PR as a draft, add a short description of what you’re still working on, what you are seeking assistance with, or both. +There is an automated GitHub action which closes PRs after 180 days of inactivity to keep the PR list clean. 30 days before closing, the GitHub action will add `stale` label to the PR. If you need more time, please remove the `stale` label. + Before a piece of work is finished: - Organize it into one or more commits, and include a commit message for each that describes all of the changes that you made in that commit. It is more helpful to explain _why_ more than _what_, which are available via `git diff`.