Scam Detector fix false positive #1216
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Our Scam Detector recently ran into its first false positive, a message like this:
The reason it was flagged is because it has the word
learn
in it, whichcontains("earn")
, one of our suspicious keywords.This PR adds unit tests to cover false positives and fixes the above issue by allowing suspicious keywords to require a
startsWith
check instead ofcontains
by starting with^
. So^earn
will not trigger onlearn
anymore.Note, the logic for this was self-written. It would also be possible to make them a full regex pattern (which supports
^
as well), but I thought this would be a bit overkill and also annoying, since all other keywords would then need to be changed to.*foo.*
.Config
When deploying, change the suspicious keyword
earn
in the config to^earn
.