git-hound

Git plugin that prevents sensitive data from being committed.

Github stars Tracking Chart

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$'

Main metrics

Overview
Name With Ownerezekg/git-hound
Primary LanguageGo
Program languageGo (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2015-11-05 16:30:20
Pushed At2020-10-08 22:34:28
Last Commit At2020-10-08 17:34:28
Release Count19
Last Release Name1.0.0 (Posted on )
First Release Name0.1.0 (Posted on )
用户参与
Stargazers Count312
Watchers Count9
Fork Count26
Commits Count77
Has Issues Enabled
Issues Count11
Issue Open Count2
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private