API reference
Every input, every strategy, every language. Only token is required —
everything else is sensible defaults you can override when you need to.
Inputs
token
Required
string GitHub token used to update issues and pull requests. Use the built-in ${{ secrets.GITHUB_TOKEN }} for the simplest setup.
replacement-strategy
Optional
enum
default: asterisk How profane content should be replaced. See the strategy reference below for all 14 options. Case-insensitive; hyphens are also accepted (e.g. anger-emoji).
include-updated-note
Optional
boolean
default: true When true, appends a note to the body explaining that the content was updated by the profanity filter.
include-confused-reaction
Optional
boolean
default: false When true, the action reacts to the issue or pull request with the 😕 confused reaction.
manual-profane-words
Optional
string A comma-separated list of additional words to include in the filter. Layered on top of the built-in dictionary.
custom-profane-words-url
Optional
url A URL returning a newline-separated list of words to include in the filter.
Replacement strategies
Each strategy demonstrated against a four-letter profane word. Strategy values are case-insensitive and accept hyphenated alternatives.
asterisk **** Classic asterisks — the safe default.
emoji 💩 A random expressive emoji per match.
grawlix #%$! Comic-book style symbol soup.
bold-grawlix #%$! Grawlix, but louder.
bleep bleep Replaces with the literal word "bleep".
redacted-rectangle ████ Top-secret redaction blocks.
anger-emoji 😡 A random anger-themed emoji.
middle-asterisk f**k Keeps first and last letters intact.
middle-swear-emoji f🤬k A swear emoji in the middle.
random-asterisk * — **** Random number of asterisks.
first-letter-then-asterisk f*** Keep the first letter only.
vowel-asterisk sh*t Replaces only the vowels.
strike-through Wraps content in <del> tags.
underscores ____ Replaces with underscores.
Supported languages
Word lists are stored as plain newline-delimited text files. They're auditable, contributable, and shipped right alongside the action.
Browse the dictionaries in the Data directory on GitHub
What the action does
- Replaces any detected profane content using your configured strategy.
- Optionally reacts to the issue or pull request with the 😕 confused reaction.
- Applies the
profane content 🤬label, if it exists in the repo. - Posts a detailed job summary table for traceability.