Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

andyfeller
Copy link
Member

@andyfeller andyfeller commented Aug 1, 2025

Fixes #11408

These changes enhance the GitHub CLI spam detection logic to automatically comment on and close suspected spam based on the past weeks of usage.

Additionally, there were a few minor enhancements to the script, allowing it to be executed from anywhere rather than the root of the local repository.

Demo

Issue: tinyfists/detect-spam#1

As you can see here, I reused one of the issue templates from cli/cli that our spam detection uses as a reference and tested on it:

$ ~/Documents/workspace/cli/cli/.github/workflows/scripts/spam-detection/process-issue.sh https://github.com/tinyfists/detect-spam/issues/1
detected as spam: https://github.com/tinyfists/detect-spam/issues/1
https://github.com/tinyfists/detect-spam/issues/1#issuecomment-3145732065
Fetching repository information...
Updating 1 issues...
https://github.com/tinyfists/detect-spam/issues/1
✓ Closed issue tinyfists/detect-spam#1 (Bug report)
issue labelled as suspected spam

As you can see from the issue, it worked as expected and I was able to execute the script from an arbitrary location rather than the root of the repository.

Fixes #11408

These changes enhance the GitHub CLI spam detection logic to automatically comment on and close suspected spam based on the past weeks of usage.

Additionally, there were a few minor enhancements to the script, allowing it to be executed from anywhere rather than the root of the local repository.
@Copilot Copilot AI review requested due to automatic review settings August 1, 2025 20:53
@andyfeller andyfeller requested a review from a team as a code owner August 1, 2025 20:53
@andyfeller andyfeller requested a review from BagToad August 1, 2025 20:53
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR enhances the GitHub CLI spam detection workflow by making it automatically comment on and close suspected spam issues instead of just labeling them. The changes also improve the script's portability by allowing it to be executed from any directory.

  • Adds automatic commenting and closing functionality for detected spam issues
  • Improves script portability with dynamic path resolution
  • Updates labeling to include both "suspected-spam" and "invalid" labels

Comment on lines +31 to +39
cat << EOF | gh issue comment "$_issue_url" --body-file -
Thank you for taking the time to create this issue.
We've automatically reviewed this issue and suspect it as potentially inauthentic or spam-like content. As a result, we're closing this issue.
**If this was closed by mistake**, please don't hesitate to reach out to us by commenting on this issue with additional context.
We appreciate your understanding and apologize if this action was taken in error. Our automated systems help us manage the large volume of issues we receive, but we know they're not perfect.
EOF
Copy link
Member Author

Choose a reason for hiding this comment

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

note: I'm not attached to the text, so all suggestions and improvements are welcome 🙇

Copy link
Member

@williammartin williammartin left a comment

Choose a reason for hiding this comment

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

LGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTM

Copy link
Member

@babakks babakks left a comment

Choose a reason for hiding this comment

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

LGTM, @andyfeller! Thanks for PR. 🙏🍻

My biggest point is to close the issue as "not planned", though.

@babakks
Copy link
Member

babakks commented Aug 3, 2025

LGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTMLGTM

This must be detected as spam, too. :trollface:

@andyfeller andyfeller enabled auto-merge August 4, 2025 12:30
@andyfeller andyfeller merged commit cf7c2b9 into trunk Aug 4, 2025
9 checks passed
@andyfeller andyfeller deleted the andyfeller/11408-close-suspected-spam-issues branch August 4, 2025 12:40
por1981

This comment was marked as spam.

tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Aug 22, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [cli/cli](https://github.com/cli/cli) | minor | `v2.76.2` -> `v2.78.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>cli/cli (cli/cli)</summary>

### [`v2.78.0`](https://github.com/cli/cli/releases/tag/v2.78.0): GitHub CLI 2.78.0

[Compare Source](cli/cli@v2.77.0...v2.78.0)

#### ℹ️ Note

This release was cut primarily to resolve a Linux package distribution issue. We recommend reviewing [the v2.77.0 release notes](https://github.com/cli/cli/releases/tag/v2.77.0) for the complete set of latest features and fixes.

#### What's Changed

##### ✨ Features

- Add `--force` flag to `gh run cancel` by [@&#8203;ankddev](https://github.com/ankddev) in [#&#8203;11513](cli/cli#11513)

##### 🐛 Fixes

- Fix failing to release Linux packages (affected v2.77.0). See [v2.77.0](https://github.com/cli/cli/releases/tag/v2.77.0) for more information.

**Full Changelog**: <cli/cli@v2.77.0...v2.78.0>

### [`v2.77.0`](https://github.com/cli/cli/releases/tag/v2.77.0): GitHub CLI 2.77.0

[Compare Source](cli/cli@v2.76.2...v2.77.0)

#### ⚠️ Incomplete Release

The v2.77.0 release experienced a failure publishing to our official Linux repos. This is resolved in [v2.78.0](https://github.com/cli/cli/releases/tag/v2.78.0), so we recommend using that release instead.

#### What's Changed

##### ✨ Features

- Report that v1 classic projects are detected on GHES 3.16.x or older by [@&#8203;andyfeller](https://github.com/andyfeller) in [#&#8203;11491](cli/cli#11491)
- Display v2 projects in `gh issue view` by [@&#8203;andyfeller](https://github.com/andyfeller) in [#&#8203;11496](cli/cli#11496)
- View v2 projects in `gh pr view` output by [@&#8203;andyfeller](https://github.com/andyfeller) in [#&#8203;11497](cli/cli#11497)
- Ensure users can see v2 projects when viewing issues and MRs, avoid v1 projects on GHES 3.17 and newer by [@&#8203;andyfeller](https://github.com/andyfeller) in [#&#8203;11514](cli/cli#11514)

##### 🐛 Fixes

- fix error for ErrReleaseNotFound when fetching ref by [@&#8203;ejahnGithub](https://github.com/ejahnGithub) in [#&#8203;11451](cli/cli#11451)
- add test for FetchRefSHA by [@&#8203;ejahnGithub](https://github.com/ejahnGithub) in [#&#8203;11481](cli/cli#11481)
- Fix `gh repo delete --yes` safety issue when no repository argument provided by [@&#8203;Copilot](https://github.com/Copilot) in [#&#8203;11536](cli/cli#11536)

##### 📚 Docs & Chores

- Improve spam detection evals by [@&#8203;babakks](https://github.com/babakks) in [#&#8203;11419](cli/cli#11419)
- Fix `help wanted` label regexp in CI automation by [@&#8203;babakks](https://github.com/babakks) in [#&#8203;11423](cli/cli#11423)
- Update spam detection to comment on and close issue by [@&#8203;andyfeller](https://github.com/andyfeller) in [#&#8203;11435](cli/cli#11435)
- Adding a note to `gh search` docs to explain the usage of `--` to exclude certain results by [@&#8203;Sukhpreet-s](https://github.com/Sukhpreet-s) in [#&#8203;11162](cli/cli#11162)
- Update issue triage guidelines and label usage by [@&#8203;BagToad](https://github.com/BagToad) in [#&#8203;11454](cli/cli#11454)
- Reorganize installation docs by [@&#8203;andyfeller](https://github.com/andyfeller) in [#&#8203;11473](cli/cli#11473)
- Update govulncheck workflow to scan source code by [@&#8203;BagToad](https://github.com/BagToad) in [#&#8203;11482](cli/cli#11482)
- Hidden trusted root flag for release verify by [@&#8203;ejahnGithub](https://github.com/ejahnGithub) in [#&#8203;11511](cli/cli#11511)

##### :dependabot: Dependencies

- Regenerate third-party licenses on trunk pushes by [@&#8203;andyfeller](https://github.com/andyfeller) in [#&#8203;11370](cli/cli#11370)
- Update third-party license versions by [@&#8203;BagToad](https://github.com/BagToad) in [#&#8203;11557](cli/cli#11557)
- Bump Go to 1.24.6 by [@&#8203;github-actions](https://github.com/github-actions)\[bot] in [#&#8203;11467](cli/cli#11467)
- chore(deps): bump github.com/spf13/pflag from 1.0.6 to 1.0.7 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11319](cli/cli#11319)
- chore(deps): bump actions/download-artifact from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11458](cli/cli#11458)
- chore(deps): bump actions/checkout from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11490](cli/cli#11490)
- chore(deps): bump github.com/yuin/goldmark from 1.7.12 to 1.7.13 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11368](cli/cli#11368)
- Bump google.golang.org/grpc & other required dependencies by [@&#8203;BagToad](https://github.com/BagToad) in [#&#8203;11510](cli/cli#11510)
- chore(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11367](cli/cli#11367)
- chore(deps): bump github.com/cli/go-gh/v2 from 2.12.1 to 2.12.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11537](cli/cli#11537)
- chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;11556](cli/cli#11556)

#### New Contributors

- [@&#8203;Sukhpreet-s](https://github.com/Sukhpreet-s) made their first contribution in [#&#8203;11162](cli/cli#11162)
- [@&#8203;Copilot](https://github.com/Copilot) made their first contribution in [#&#8203;11536](cli/cli#11536)

**Full Changelog**: <cli/cli@v2.76.2...v2.77.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xIiwidXBkYXRlZEluVmVyIjoiNDEuODIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Automatically close spam issues

5 participants