Skip to content

Commit

Permalink
build: add action to close stale PRs
Browse files Browse the repository at this point in the history
Add action to close PRs that are over 1 year old and
have had no comments or updates in the last 6 months.

Fixes: nodejs#42981

Signed-off-by: Michael Dawson <[email protected]>

PR-URL: nodejs#48051
Reviewed-By: Matteo Collina <[email protected]>
  • Loading branch information
mhdawson authored and Ceres6 committed Aug 14, 2023
1 parent 46a72e0 commit 79d9171
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/close-stale-pull-requests.yml
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 79d9171

Please sign in to comment.