Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: add action to close stale feature requests #41981

Closed
wants to merge 14 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/workflows/close-stale-feature-requests.yml
@@ -0,0 +1,47 @@
name: Close stale feature requests
on:
schedule:
# Run every day at 1:00 AM UTC.
- cron: 0 1 * * *
mhdawson marked this conversation as resolved.
Show resolved Hide resolved

# yamllint disable rule:empty-lines
env:
CLOSE_MESSAGE: >
There has been no activity on this feature request
and it is being closed. If you feel closing this issue is not the
right thing to do, please leave a comment.

mhdawson marked this conversation as resolved.
Show resolved Hide resolved

For more information on how the project manages
feature requests, please consult the
[feature request management document](https://github.com/nodejs/node/blob/HEAD/doc/guides/feature-request-management.md).

WARN_MESSAGE: >
There has been no activity on this feature request for
5 months and it is unlikely to be implemented.
It will be closed 6 months after the last non-automated comment.
mhdawson marked this conversation as resolved.
Show resolved Hide resolved


For more information on how the project manages
feature requests, please consult the
[feature request management document](https://github.com/nodejs/node/blob/HEAD/doc/guides/feature-request-management.md).
# yamllint enable

jobs:
stale:
if: github.repository == 'nodejs/node'
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 150
days-before-close: 30
stale-issue-label: stalled
close-issue-message: ${{ env.CLOSE_MESSAGE }}
stale-issue-message: ${{ env.WARN_MESSAGE }}
only-labels: feature request
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: 1
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've set this to 1 so that it only processes 1 per day to start so that we can verify it's working as expected before a larger number of feature requests get tagged.

If there is a better way to test this please let me know. Otherwise the plan would to see it run a few days to make sure it operates as expected and then ramp up to a larger number. Probably still lower than the max (maybe 10 per day) to avoid a flood of stale feature requests all at the same time.

@phillipj I see you added a similar one to close stalled issues. If you have any suggestions/recommendations for testing/roll out they would be greatly appreciated.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is also debug-only option.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Mesteery would you suggest the debug-only option as the best way to test out. Looking for any experience/suggestions based on how we tested in the past.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would you suggest the debug-only option as the best way to test out

No, it was just to inform. Personally, I find operations-per-run a good way to test out.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Mesteery thanks for the confirmation

remove-stale-when-updated: true