# DELETE THIS COMMENT IN YOUR COPY.
#
# This is the global list of words which are still too commonly used in the
# codebase to be blocked outright. This list will continue to shrink as the
# codebase moves away from the use of these terms.
#
# Copy this file to your project and comment more words to enable the repo hook
# to block the words.

# KEEP THIS COMMENT IN YOUR COPY.
#
# Don't delete this file if you want to keep keyword_check enabled even if it's
# empty.
#
# See repohooks/README.md for more details.

# black.?hat
black.?list
build.?cop
crazy
cripple
dummy
# first.?class.?citizen
# grandfathered
# gr[ae]y.?hat
gr[ae]y.?list
insane
\bhe\b
\bshe\b
\bhim\b
\bher\b
\bhis\b
\bhers\b
man.?in.?the.?middle
master
mitm
\bnative
\bred.?line
rtfm
sane
sanity
slave
# white.?glove
# white.?hat
white.?label
white.?list
\bwtf
