Skip to content

feature: add a GitHub action to quell spam PRs #5449

Closed as not planned
Closed as not planned

Description

@CBID2

Problem

I was scrolling through Twitter and someone posted about the spam PR.

Possible Solution

Implement this GitHub action. It'll lessen the workload for maintainers.

Activity

  1. wesleytodd commented on Feb 6, 2024

    @wesleytodd
    Member

    I am not sure we need an action for this unless there is an action which does more than that one (like spam detection with ai or something). It is easy to delete/close/lock with as many clicks as it is to comment and we don't need an additional third party action (added security risk and maintenance) to do it right?

  2. iammohan01 commented on Feb 6, 2024

    @iammohan01
  3. wesleytodd commented on Feb 6, 2024

    @wesleytodd
  4. krzysdz commented on Feb 6, 2024

    @krzysdz
    Contributor

    unless there is an action which does more than that one (like spam detection with ai or something)

    Not sure about AI spam detection, but almost all of these PRs update the readme, have default name (Update filename), change only a single line and have no description, so it should be rather easy to close them automatically.

    Most authors of these PRs have a repsitory called "localrepo", so that's another rule that could be used to detect spam from this source (Apna College).

  5. wesleytodd commented on Feb 6, 2024

    @wesleytodd
    Member

    Yeah this is a one-off issue of the day. Spam PRs have been a problem for years and they come in different varieties. This is why I am hesitant do add an action for this as I would rather ask GitHub for better spam management tooling.

  6. TimGels commented on Feb 6, 2024

    @TimGels
  7. CBID2 commented on Feb 6, 2024

    @CBID2
    ContributorAuthor

    Hey @wesleytodd. I found this on X: https://twitter.com/github/status/1311772722234560517
    Maybe that could work?

  8. UlisesGascon commented on Feb 6, 2024

    @UlisesGascon
    Member

    This is why I am hesitant do add an action for this as I would rather ask GitHub for better spam management tooling.

    Agree with @wesleytodd. The issue is quite complex because the moderation in GitHub is not an easy thing:

    • Many people (those that are watching the repo) will receive a notification in their email or in the app/web once a new PR is created. This will occur even before a Github Action is triggered.
    • Closing PRs is an easy action (1 click), so that is not a big time consumer
    • Detecting invalid PRs is not the big issue because you can easily to spot them with the practice.
    • Reporting issues/users is complex because the UI requires many steps to do it for each user, so that is a blocker for many maintainers.
    • Nuke button like @CBID2 suggested is great when the community needs to slow down due a discussion/flame in certain moments, but is not the long term solution as it will prevent other users from contributing (PRs) that are legit or need help (issues) while using Express.

    So, I think that we are quite limited on how much we can do with GitHub actions in this case. There are other scenarios that are less frequent but more prone to use GitHub Actions to moderate, for example when people do comments that include offensive content or heavily language. In most projects that I am involved the moderation is done by the humans behind the project or a specific team that volunteer to do it, it is a heavy job. The same way as it is hard to keep a slack/discord/gitter community channel a safe space by moderating content.

  9. wesleytodd commented on Feb 6, 2024

    @wesleytodd
    Member

    In most projects that I am involved the moderation is done by the humans behind the project or a specific team that volunteer to do it, it is a heavy job. The same way as it is hard to keep a slack/discord/gitter community channel a safe space by moderating content.

    I think historically the express project has not needed the same style of moderation as things like Node.js does. There have been less contentious discussions and mostly the CoC violations have come from folks outside the project so it was relatively simple to ban and move on. I don't think we need to immediately spin up a moderation team but I do think that the Triage team and TC should have the tools to properly moderate. Right now I don't think we have that well in hand. I believe that we can add this to the list of TODOs to address after we can get next weeks TC meeting organized and finished.

    Are we in agreement that a GH Action is most likely not the direction we would want to take to solve this problem?

  10. UlisesGascon commented on Feb 6, 2024

    @UlisesGascon
    Member

    I believe that we can add this to the list of TODOs to address after we can get next weeks TC meeting organized and finished.

    Yes, we can add it to the TODO list and start to work on it in few weeks

    Are we in agreement that a GH Action is most likely not the direction we would want to take to solve this problem?

    +1 from me

  11. krzysdz commented on Feb 6, 2024

    @krzysdz
    Contributor

    Maybe a pull reqest template would make some people think before creating a PR?
    On the other hand, it doesn't look like those who spam with pull requests will even bother to read it and they'll probably just click "Create pull reqest" with unedited description.

  12. QuantGeekDev commented on Feb 6, 2024

    @QuantGeekDev
  13. krzysdz commented on Feb 6, 2024

    @krzysdz
  14. wesleytodd commented on Feb 6, 2024

    @wesleytodd
    Member

    Doesn't need to stop the conversation, but since we specifically don't want to use a GHA to do this then this issue is complete. There are more threads to follow up on, but I think we can do that in other discussions more specific to those.

  15. 48 remaining items

  16. wesleytodd commented on Feb 18, 2024

    @wesleytodd
    Member

    Hey folks, just to update you: We have a thread open with GitHub support where they are passing along our requests to the various product teams on how to improve the moderation features. I personally am still 👎 on an action which auto closes PRs as it is both a maintenance burden and something best handled by features on GitHub's side. We are focused right now on landing some governance changes and will be following up with re-constituting the triage team. I think ideally this decision is left up to the triage team members. So likely there will not be action on this or the PR until we can get that team organized again. If you are interested in helping that please follow the instructions to get involved there (as some of you already have, thank you very much for that).

  17. dougwilson commented on Feb 18, 2024

    @dougwilson
    Contributor

    They have slowed down too for the time being, the last one already is two days old.

  18. nkroker commented on Feb 23, 2024

    @nkroker
  19. wesleytodd commented on Feb 23, 2024

    @wesleytodd
  20. jonchurch commented on Mar 26, 2024

    @jonchurch
    Member

    Closing as not planned.

    Many words have been written now in this issue and others about auto-closing spam PRs, and we have come to the same conclusion every time. It is trivial to implement, but is a sledgehammer approach for what is now a mosquitto level annoyance. Closing and locking a handful of spam issues/PRs now and then is the easiest thing a maitainer will be doing that day, so it doesn't save much by labor.

    There is very little benefit in having an auto-close action. It will still spam people's Github notifications no matter if it's closed and locked at the speed of a human or a machine. The only thing we'd prevent there is people commenting disparagingly on the PR before it gets locked by a human, generating more notifications. We haven't had any of that in the past couple weeks (we did get some hostile comments when this topic was trending originally, which it no longer is).

    The PRs are still coming, but intermittently. The storm has passed, this can be reevaluated if another flood happens in the future from the previous source or any other.

    Thank you all for your eagerness to help. If you want an ear to the ground on things that the project is prioritizing and possibly looking for help with, peruse the Discussions repo https://github.com/expressjs/discussions/issues

  21. not7cd commented on Apr 19, 2024

    @not7cd

    This can be reconsidered with the use of label-action. By labelling those PRs this action can create a meaningful message to the spammer to inform them why it's getting closed.

    See an example from Renovate:

    1. configuration
    2. in action
  22. wesleytodd commented on Apr 23, 2024

    @wesleytodd
    Member

    Hey @not7cd,

    I love the idea of "create a meaningful message to the spammer to inform them why it's getting closed". Would you be willing to sign up to own this and help participate in the project to maintain the tooling? The main thing here is that closing a few spam PRs is a simple but short term thing. Working on setting up automation means time taken away from much more important project priorities we have right now. So it is mostly a prioritization thing.

    So far the folks who showed up to make noise about ways to "solve" this problem have not showed up to reply with this sort of context in the spam PRs. If anyone in the threads wants to start posting these prewritten messages to the authors then we (the maintainers) can stop with our current approach of closing them as spam. This would save us a lot of time and help those users learn, but it is work and we are volunteers.

    For everyone in this thread, please we need your help:

    1. Start helping those users by posting nice responses telling them why this is bad
    2. Start participating in the project, which could mean following activity repos and replying to issues (that is the road to being a triager) or opening PRs with helpful things
  23. pinned this issue on Oct 13, 2025
  24. unpinned this issue on Jan 17, 2026
  25. pinned this issue on Jan 17, 2026
  26. unpinned this issue on Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions