MCPcopy Index your code
hub / github.com/ezekg/git-hound

github.com/ezekg/git-hound @1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.0.0 ↗ · + Follow
15 symbols 43 edges 5 files 12 documented · 80% updated 5y ago1.0.0 · 2020-09-29★ 3153 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Git Hound

Travis Code Climate GoDoc

Hound is a Git plugin that helps prevent sensitive data from being committed into a repository by sniffing potential commits against PCRE regular expressions.

How does it work?

Upon commit, it runs the output of git diff -U0 --staged through the Hound, which matches every added or modified line against your provided list of regular expressions from a local .githound.yml file.

Installation

To install Hound, please use go get. If you don't have Go installed, get it here. If you would like to grab a precompiled binary, head over to the releases page. The precompiled Hound binaries have no external dependencies.

go get github.com/ezekg/git-hound

Compiling

To compile for your operating system, simply run the following from the root of the project directory:

go install

To compile for all platforms using gox, run the following:

gox

Usage

git-hound [<opts>] commit [...]
git-hound [<opts>] sniff [<commit>]

Commit

Sniff changes before committing.

# Sniff changes since last commit and pass to git-commit when clean
git hound commit …

Sniff

You can optionally pass a commit hash or manually pipe a diff for the Hound to sniff.

# Sniff changes since last commit
git hound sniff HEAD

# Sniff entire codebase
git hound sniff

# Sniff entire repo history
git log -p | git hound sniff

Option flags

Flag Type Default Usage
-no-color bool false Disable color output
-config=file string .githound.yml Hound config file
-bin=file string git Executable binary to use for git command

Example .githound.yml

# Output warning on match but continue
warn:
  - '(?i)user(name)?\W*[:=,]\W*.+$'
  - '\/Users\/\w+\/'
# Fail immediately upon match
fail:
  - '[''"](?!.*[\s])(?=.*[A-Za-z])(?=.*[0-9])(?=.*[!@#$&*])?.{16,}[''"]'
  - '(?i)db_(user(name)?|pass(word)?|name)\W*[:=,]\W*.+$'
  - '(?i)pass(word)?\W*[:=,]\W*.+$'
# Skip on matched filename
skip:
  - '\.example$'
  - '\.sample$'

Core symbols most depended-on inside this repo

Sniff
called by 7
hound.go
String
called by 7
smell.go
parseConfig
called by 3
hound.go
regexp
called by 3
hound.go
matchPatterns
called by 3
hound.go
Exec
called by 3
command.go
New
called by 1
hound.go
loadConfig
called by 1
hound.go

Shape

Method 9
Function 3
Struct 3

Languages

Go100%

Modules by API surface

hound.go8 symbols
smell.go2 symbols
hound_test.go2 symbols
command.go2 symbols
main.go1 symbols

For agents

$ claude mcp add git-hound \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact