From 79d91715c6b932929ef11587b0ea728707d74048 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Wed, 17 May 2023 16:51:51 -0400 Subject: [PATCH] build: add action to close stale PRs Add action to close PRs that are over 1 year old and have had no comments or updates in the last 6 months. Fixes: https://github.com/nodejs/node/issues/42981 Signed-off-by: Michael Dawson PR-URL: https://github.com/nodejs/node/pull/48051 Reviewed-By: Matteo Collina --- .../workflows/close-stale-pull-requests.yml | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/close-stale-pull-requests.yml diff --git a/.github/workflows/close-stale-pull-requests.yml b/.github/workflows/close-stale-pull-requests.yml new file mode 100644 index 00000000000000..05f1732f78df5d --- /dev/null +++ b/.github/workflows/close-stale-pull-requests.yml @@ -0,0 +1,63 @@ +name: Close stale feature requests +on: + workflow_dispatch: + inputs: + endDate: + description: stop processing PRs after this date + required: false + type: string + schedule: + # Run every day at 1:00 AM UTC. + - cron: 0 1 * * * + +# yamllint disable rule:empty-lines +env: + CLOSE_MESSAGE: > + This pull request was opened more than a year ago and there has + been no activity in the last 6 months. We value your contribution + but since it has not progressed in the last 6 months it is being + closed. If you feel closing this pull request is not the right thing + to do, please leave a comment. + + WARN_MESSAGE: > + This pull request was opened more than a year ago and there has + been no activity in the last 5 months. We value your contribution + but since it has not progressed in the last 5 months it is being + marked stale and will be closed if there is no progress in the + next month. If you feel that is not the right thing to do please + comment on the pull request. +# yamllint enable + +permissions: + contents: read + +jobs: + stale: + permissions: + pull-requests: write # for actions/stale to close stale PRs + if: github.repository == 'nodejs/node' + runs-on: ubuntu-latest + steps: + - name: Set default end date which is 1 year ago + run: echo "END_DATE=$(date --date='525600 minutes ago' --rfc-2822)" >> "$GITHUB_ENV" + - name: if date set in event override the default end date + env: + END_DATE_INPUT_VALUE: ${{ github.event.inputs.endDate }} + if: ${{ github.event.inputs.endDate != '' }} + run: echo "END_DATE=$END_DATE_INPUT_VALUE" >> "$GITHUB_ENV" + - uses: mhdawson/stale@453d6581568dc43dbe345757f24408d7b451c651 # PR to add support for endDate + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + end-date: ${{ env.END_DATE }} + days-before-issue-stale: -1 + days-before-issue-close: -1 + only-labels: test-stale-pr + days-before-stale: 150 + days-before-close: 30 + stale-issue-label: stale + close-issue-message: ${{ env.CLOSE_MESSAGE }} + stale-issue-message: ${{ env.WARN_MESSAGE }} + exempt-pr-labels: never-stale + # max requests it will send per run to the GitHub API before it deliberately exits to avoid hitting API rate limits + operations-per-run: 500 + remove-stale-when-updated: true