- Update
ReplaceBranch
prepare-commit-msg hook to avoid running on--amend
by default. - Add support for
modified_files
andmodified_lines_in_file
inCommitMsg
hooks.
- Fix
GoFmt
to not be enabled by default. This was enabled by mistake when introduced in Overcommit0.52.0
.
- Fix
Overcommit::GitRepo.list_files
helper to work with arbitrarily large lists of files. - Fix
AuthorName
to allow mononyms to be more inclusive of names.
- Fix
YamlLint
pre-commit hook - Relax
childprocess
gem version constraint to allow version 4.x
- Improve performance in
PhpCs
pre-commit hook - Add
Pronto
pre-push hook - Remove erroneous extra newline in replacement string for
ReplaceBranch
prepare-commit-msg hook - Add note about potentially checking your stash when hook is interrupted
- Add support for skipping hooks based on command result using the
skip_if
option
- Fix case where no standard input is provided to
pre-push
hooks
- Fix
Mdl
to properly parse JSON output frommdl
- Add
GolangciLint
pre-commit and pre-push hooks - Add
GoTest
pre-push hook - Add
GoFmt
pre-commit hook - Add
exclude_branches
hook option to disable hooks running on specific branches - Add
exclude_remotes
pre-push hook option to disable pre-push hooks running against specific remotes - Change default behavior of pre-push hooks to not run against deleted remote refs
- Add
include_remote_ref_deletions
pre-push hook option to allow running for a remote branch deletion - Rename
remote_branch_deletion?
pre-push hook helper toremote_ref_deletion?
- Add per-branch
destructive_only
setting toProtectedBranches
pre-push hook
- Stop stashing in pre-commit hooks when all changes are already staged, avoiding unnecessary file modification
- Improve instructions for recovering commit message when a
commit-msg
hook fails
- Fix Overcommit to display helpful error message when a hook does not inherit from the base class
- Relax
childprocess
gem constraint to allow up to version 3.x - Display a helpful message if hooks do not inherit from the correct base class
- Fix Overcommit to work with emacs/magit by disabling literal pathspecs
- Fix Overcommit to run when executed with no parent process
- Fix
Stylelint
pre-commit hookrequired_executable
- Add
skipped_commit_types
option toReplaceBranch
prepare-commit-msg hook - Add
RubySyntax
pre-commit hook - Add
CodeSpellCheck
pre-commit hook
- Relax
childprocess
dependency to allow version 1.x
- Fix deadlock which was more likely to occur when setting
parallelize
on a hook tofalse
- Fix
Mdl
hook to use JSON output and not fail on unexpected output
- Fix
Stylelint
hook regex to extract line numbers with more than one digit - Fix
CaseConflicts
hook to work with file paths containing double quotes
- Drop support for Ruby 2.3 or older
- Support multi-line matches in
MessageFormat
commit-msg
hook - Add
FileSize
pre-commit hook
- Add support for
prepare-commit-message
hooks - Add
SwiftLint
pre-commit hook - Add
KtLint
pre-commit hook - Add
TerraformFormat
pre-commit hook - Add
CookStyle
pre-commit hook
- Update
validator_uri
forW3cHtml
pre-commit hook - Update
TsLint
pre-commit hook to support new output format - Update
BundleCheck
error message with additional instructions
- Add
--force-exclusion
flag toReek
pre-commit hook configuration to ensure excluded files are excluded
- Fix
Credo
pre-commit hook to lint applicable files only rather than all files - Add
PhpCsFixer
pre-commit hook - Add
YardCoverage
pre-commit hook - Add
Flay
pre-commit hook - Add
Stylelint
pre-commit hook - Fix
TsLint
default flags to work withtslint
5.11+
- Add
CargoTest
pre-push hook for runningcargo test
- Add
min_subject_width
option toTextWidth
commit-msg
hook
- Drop support for Ruby versions 2.1 and older
- Fix detection of
.git
directory location on Git versions before 2.5
- Add support for worktrees
- Fix installer to not attempt to remove old hooks directory if non-empty
- Fix erroneous
fatal
error message from a pre-commit hook run when adding the first submodule to a repo
- Add
GitLfs
post-checkout
,post-commit
andpost-merge
hooks - Display commit message when
commit-msg
hooks fail - Drop support for JRuby
- Enhance
pre-push
hooks to exposemodified_lines_in_file
, similar topre-commit
hooks - Add
YarnCheck
pre-commit hook which checks ifyarn.lock
matchespackage.json
- Add
PhpUnit
pre-push
hook
- Add
YarnInstall
post-checkout, post-commit, post-merge, and post-rewrite hooks - Add
metadata-json-lint
pre-commit hook - Add
RstLint
pre-commit hook - Add
YarnInstall
post-checkout, post-commit, post-merge, and post-rewrite hooks - Add additional file patterns for
ChamberSecurity
pre-commit hook - Add
ChamberCompare
andChamberVerification
pre-commit hooks - Add
ComposerInstall
post-checkout, post-commit, post-merge, and post-rewrite hooks - Add ability to
pre-push
hooks to inspect modified files for pushed refs - Add
PhpStan
pre-commit hook
- Run
GoLint
pre-commit hook against each file individually - Improve performance of
BundleAudit
checking ofGemfile.lock
file - Allow ad hoc hooks to run executables not tracked by Git
- Drop support for Ruby 2.0
- Fix
LineEndings
pre-commit hook handling of file paths with spaces - Fix
Mdl
pre-commit hook message parsing regex - Fix
RailsBestPractices
hook to only run against changed files - Fix Overcommit installation in submodules
- Don't print backtrace of signature change for
overcommit --run
- Add
PhpCs
pre-commit hook - Add
PhpLint
pre-commit hook - Allow toggling colorize output via
OVERCOMMIT_COLOR
environment variable
- Add
Pronto
pre-commit hook - Add
hadolint
pre-commit hook - Add
license_finder
pre-commit hook - Use the
core.hooksPath
Git configuration option when installing hooks - Gracefully handle binary files in
LineEndings
pre-commit hook - Relax
childprocess
dependency to allow 0.x - Gracefully handle gem loading errors when invoking Overcommit in a repo where
the
gemfile
specified by the local.overcommit.yml
references a gem version incompatible with the already-loaded Overcommit - Ignore
Makefile
and*.go
files inHardTabs
pre-commit hook by default
- Update
childprocess
to 0.6.3
- Add
GitLfs
pre-push hook
- Update
childprocess
dependency to 0.6.x series - Auto-sign configuration file when installing hooks for the first time
- Fix
forwarding to private method
warning on Ruby 2.4.x - Fix potential hang when a hook's
parallelize
option was set tofalse
- Fix
empty strings as pathspecs
warning introduced in Git 2.11
- Add
Pytest
pre-push hook - Add
RakeTarget
pre-commit and pre-push hook - Moved
CommitPlease
fromCommitMsg
toPostCommit
hook - Add
skip_file_checkout
hook setting forPostCheckout
hooks
- Fix
install_command
for scss_lint gem
- Add
FixMe
pre-commit hook, to ensure that no "token" words slips through. These strings are things you should fix now, not later - Add
YAMLLint
pre-commit hook - Add
LicenseHeader
pre-commit enforcement to ensure open source projects contain proper license comments - Add
Foodcritic
pre-commit hook - Add
LineEndings
pre-commit hook that allows you to enforcing UNIX- or Windows-style line endings
- Fix
CapitalizedSubject
to not fail when commit message starts with one or more empty lines
- Add
Fasterer
pre-commit hook - Add
Brakeman
pre-push hook - Add
TSLint
pre-commit hook - Validate that hook
env
environment configurations have valid names/values - Fix a false negative reported by RailsSchemaUpToDate for newly-created Rails projects that don't yet have any migrations
- Drop support for Ruby 1.9.3
- Fix
JavaCheckstyle
pre-commit hook to properly categorizeINFO
andWARN
messages - Add
TestUnit
pre-push hook to run tests withTest::Unit
- Add
BundleAudit
pre-commit hook to scan gems for vulnerabilities withbundle-audit
- Copy hook files instead of symlinking
- Add
Credo
pre-commit hook to check Elixir files - Remove
Brakeman
pre-commit hook as it could erroneously report clean runs depending on which files were committed to your repository. You should run this tool in a separate job/task in your CI runs as it doesn't make for a good pre-commit hook. - Add
Commitplease
pre-commit hook which checks commit messages withcommitplease
- Add
--no-color
flag to allgit diff
/git show
calls to override local configuration - Ignore
commit.gpgsign
configuration option when creating stash commits in pre-commit hooks
- Switch template directory hooks from symlinks to regular files so gem can be installed on Windows
- Fix
Scalastyle
pre-commit hook to capture messages with no line number - Fix
CoffeeLint
pre-commit hook detection of modified lines - Fix
Jscs
pre-commit hook to work withjscs
3.0.0+ - Fix
CapitalizedSubject
pre-commit hook to ignore commit message subjects starting withfixup!
orsquash!
special prefixes - Add
BundleOutdated
pre-commit hook to report gems in theGemfile.lock
that have newer versions available - Add
destructive_only
option toProtectedBranches
pre-push hook - Include
.ru
files inRuboCop
pre-commit hook - Fix
TextWidth
to ignore specialfixup!
/squash!
prefixes in commit message subjects when determining width of line
- Add global
quiet
option which silences all hook output except in the case of warning or error
- Official support for Rubinius has been dropped. It will probably still work for most use cases, but parallelized hook runs may be problematic. If someone from the community is willing to step up to support it, we'll gladly add it back
- Change
overcommit
CLI to automatically run within a Bundler context if thegemfile
option is specified. This mainly saves you from needingbundle exec
when runningovercommit --run
- Fix
AuthorName
/AuthorEmail
pre-commit hooks to respectGIT_AUTHOR_NAME
/GIT_AUTHOR_EMAIL
environment variables, respectively - Fix
JavaCheckstyle
pre-commit hook to ignore[ERROR]
prefix when parsing output messages
- Hooks are now run in parallel by default
- Add
concurrency
global option allowing you to specify the number of threads to use when running hooks concurrently - Add
parallelize
hook option which specifies whether or not this hook should be run in parallel (default istrue
) - Add
processors
hook option allowing you to specify how many processing units a hook should require - Add
ForbiddenBranches
pre-commit hook which prevents creating a commit on any blacklisted branch by name/pattern - Add
MessageFormat
commit-msg hook to validate commit messages against a regex pattern
- Improve error message output when there is a problem processing messages
via
extract_messages
pre-commit hook helper - Switch
ScssLint
pre-commit hook to use the JSON output formatter instead of the default formatter - Change tense of hook descriptions from progressive indicative form ("Running") to indicative present form ("Run") so output reads better in parallel hook runs
- Fix bug where amending a commit with command line arguments containing Unicode characters could cause a crash due to invalid byte sequences
- Fix
Minitest
pre-push hook to include all test files
- Add
concurrency
global option allowing you to specify the number of threads to use when running hooks concurrently - Add
parallelize
hook option which specifies whether or not this hook should be run in parallel (default istrue
) - Add
processors
hook option allowing you to specify how many processing units a hook should require
- Add support for glob patterns to
ProtectedBranches
pre-push hook - Add
Mdl
pre-commit hook to runmdl
on Markdown files - Add
--without-color
flag toRailsBestPractices
pre-commit hook to fix parsing issues due to color escape sequences - Improve error message when
gemfile
has not had a dependency installed - Fix
RuboCop
pre-commit hook to not swallow cop messages whenparser
gem warnings are output to STDERR
- Add
Dogma
pre-commit hook to lint Elixir files with dogma files - Add
Minitest
pre-push hook to run Minitest tests - Add
RailsBestPractices
pre-commit hook which lints code withrails_best_practices
- Fix
--run
flag to not block reading STDIN when using existing hook scripts - Fix
RuboCop
pre-commit hook to fail when RuboCop version specified by Bundler context is not available - Fix
TextWidth
commit-msg hook to not include newline characters in calculated width
- Raise error when hooks are defined with invalid names (i.e. non-alphanumeric characters)
- Fix hook signing when specifying hook name
- Fix
BundleCheck
pre-commit hook to not report false negatives when running viaovercommit --run
with local changes
- Fix vulnerability where disabling signature verification would not be caught
by signature verification, allowing an attacker to bypass the check. If you
disable signature verification in your configuration, you must rename the
option to
verify_signatures
and should audit your hooks.
- Allow nested arrays in
include
andexclude
options so lists of file glob patterns can be shared across hook configurations via YAML references - Add
NginxTest
pre-commit hook that checks nginx configuration files withnginx -t
- Respect
core.commentchar
configuration when reading commit messages
- Rename
verify_plugin_signatures
toverify_signatures
- Fix
Jscs
pre-commit hook to handle the newjscs
exit codes introduced as of 2.2.0 - Fix
Scalastyle
pre-commit hook to fail with non-zero exit statuses
- Ensure
applicable_files
hook helper returns files in lexicographic order - Add
NpmInstall
post-checkout, post-commit, post-merge, and post-rewrite hooks - Add
PuppetLint
pre-commit hook that checks Puppet code with puppet-lint - Add
BowerInstall
post-checkout, post-commit, post-merge, and post-rewrite hooks - Add
BundleInstall
post-checkout, post-commit, post-merge, and post-rewrite hooks - Add
Sqlint
pre-commit hook that checks SQL code with sqlint - Add Windows support
- Add
Hlint
pre-commit hook that checks Haskell files with hlint - Add
ExecutePermissions
pre-commit hook that checks file mode for unnecessary execute permissions
- Add
HtmlHint
pre-commit hook that checks HTML files with HTMLHint - Add support to the hook
execute
helper for accepting an optional list of splittable command arguments for transparently dealing with really long file lists and the operating system command length limit - Add
modified_files
helper toPostCheckout
andPostRewrite
hooks - Add
rewritten_commits
helper toPostRewrite
hooks - Add
gemfile
option to configuration file which allows aGemfile
to be loaded by Bundler to enforce particular gem versions during hook runs - Add support for
OVERCOMMIT_DEBUG
environment variable which toggles the display of additional verbose output from executed commands - Add support for defining
hooks based on your existing git hooks
within your
.overcommit.yml
(no Ruby code required) - Add support for filtering all hooks except a small list via the
ONLY
environment variable (similar toSKIP
except a whitelist instead of blacklist)
- Don't display "No applicable hook-type hooks to run" message unless debug mode is enabled
- Fix pre-commit hook bug where amending a commit which breaks a symlink would result in that symlink not being included in the list of modified files
- Fix
CaseConflicts
pre-commit hook handling of large sets of files - Fix
SemiStandard
/Standard
hooks to read fromSTDOUT
instead ofSTDERR
and handle new output format - Fix
commit-msg
hooks to handle large commit messages auto-generated by the--verbose
flag forgit commit
- Add
EmptyMessage
commit-msg hook that reports commits messages that are empty or contain only whitespace - Add
env
hook configuration option that allows you to set values for environment variables during the course of a particular hook's run
- Fix handling of paths with spaces in the name
- Fix
CaseConflicts
pre-commit hook to not fail on initial commit - Fix handling of files removed or renamed in a commit amendment
- Add
Vint
pre-commit hook that checks Vim script with Vint - Add
Scalariform
pre-commit hook that checks formatting of Scala code with Scalariform - Add
SlimLint
pre-commit hook that analyzes Slim templates with Slim-Lint
- Include SVG files in
ImageOptim
,XmlLint
, andXmlSyntax
pre-commit hooks by default - Make
IndexTags
hooks quiet by default - Rename
Rubocop
pre-commit hook toRuboCop
to match the project's proper name
- Fix
HardTabs
andTrailingWhitespace
pre-commit hooks to include line information in errors, making it work as expected whenproblem_on_unmodified_line
is set to something other thanreport
- Fix handling of changing a symlink to a directory on commit amendment so it is not included in the list of modified files for pre-commit hooks
- Handle empty commit messages in
CapitalizedSubject
,SingleLineSubject
,HardTabs
,TextWidth
, andTrailingPeriod
commit-msg hooks
- Add
required_library
/required_libraries
hook option which specifies a list of paths a hook should load withKernel.require
before running - Add
JsLint
pre-commit hook that checks the style of JavaScript files with JSLint - Add
RubyLint
pre-commit hook that statically analyzes Ruby files with ruby-lint - Add
Jsl
pre-commit hook that checks the style of JavaScript files with JavaScript Lint - Add
CapitalizedSubject
commit message hook - Add
GoVet
pre-commit hook that examines Go source files with vet - Add
XmlSyntax
pre-commit hook to check that XML files are valid - Add
CaseConflicts
pre-commit hook which checks for file names in the same directory which differ by letter casing - Preserve existing git hooks in a repository when installing Overcommit hooks, and restore them on uninstall
- Add
RSpec
pre-push hook that runs RSpec tests before pushing to remote - Add
ProtectedBranches
pre-push hook that prevents destructive pushes (deletions or force pushes) to specified branches - Add
SpellCheck
commit-msg hook to check commit messages for misspelled words - Add support for
pre-rebase
hooks - Add
SubmoduleStatus
post-checkout
,post-commit
,post-merge
, andpost-rewrite
hooks that warn when submodules are uninitialized, out of date with the current index, or contain merge conflicts
- Disable
ShellCheck
pre-commit hook by default - Switch
ImageOptim
hook to use executable instead of Ruby API - Improve
CoffeeLint
pre-commit hook to differentiate between errors and warnings - Improve
GoLint
pre-commit hook to extract file and line information - Change configuration loading behavior to prefer user-defined
ALL
hook configuration over defaultALL
configuration, and user-defined hook configuration over defaultALL
configuration - Change hook summary message to mention warnings if there were any
- Disable almost all hooks by default. You will now need to explicitly enable
almost all hooks yourself in your
.overcommit.yml
. If you are migrating fromovercommit
0.23.0 and want to use the default configuration that shipped with that version, copy the default configuration from 0.23.0 - Update
ScssLint
pre-commit hook to properly handle special exit code that signals all files were filtered by exclusions (new as ofscss-lint
0.36.0) - Update
childprocess
dependency to minimum 0.5.6 - Change default value for
problem_on_unmodified_line
fromwarn
toreport
- Update
Rubocop
pre-commit hook to pass--display-cop-names
flag so cop names appear in output - Drop support for returning
:good
/:bad
results from hooks (was deprecated in 0.15.0) - Remove
PryBinding
pre-commit hook since its functionality is provided by theRubocop
pre-commit hook
- Fix
LocalPathsInGemfile
to not report lints for commented paths - Fix
CssLint
pre-commit hook to ignore blank lines incsslint
output - Fix error instructions typo in
BundleCheck
pre-commit hook - Fix bug where stashed changes were not restored when plugin signature validation failed
- Don't clear working tree after pre-commit hook when only submodule changes are present
- Restore file modification times of unstaged files in addition to staged files in pre-commit hook runs
- Add pre-commit ESLint hook
- Add pre-commit hooks for standard and semistandard JavaScript linters
- Add support for
post-commit
,post-merge
, andpost-rewrite
hooks - Add
GitGuilt
post-commit
hook to display changes in blame ownership for modified files - Add
execute_in_background
helper to provide a standardized way to start long-running processes without blocking the hook run - Add
IndexTags
hook forpost-commit
,post-merge
, andpost-rewrite
hook types so tags index can always be kept up to date viactags
- Add
W3cCss
andW3cHtml
pre-commit hooks which integrate with thew3c_validator
gem - Add
Scalastyle
pre-commit hook that runs scalastyle against Scala code - Add
XmlLint
pre-commit hook to check XML files with xmllint - Add
JavaCheckstyle
pre-commit hook to check style of Java files with checkstyle - Add
Pep8
pre-commit hook to check Python files with pep8 - Add
Pyflakes
pre-commit hook to check Python files with pyflakes - Add
Pep257
pre-commit hook to check Python files with pep257 - Add
HtmlTidy
pre-commit hook to check HTML files with tidy - Add
Pylint
pre-commit hook to check Python files with pylint
- Parse JSHint errors more precisely
- Remove
JsxHint
andJsxcs
pre-commit hooks in favor of using therequired_executable
option on the JsHint and Jscs pre-commit hooks - Change behavior of configuration options containing array values to always replace the old value instead of appending to it
- Change
ImageOptim
hook to fail instead of warn if theimage_optim
gem cannot be found - Remove
ctags_arguments
option fromIndexTags
hooks - Improve
PythonFlake8
pre-commit hook to differentiate between errors and warnings - Improve
CssLint
pre-commit hook to differentiate between errors and warnings
- Fix
--run
flag to consider all lines in all files as modified rather than none - Fix
--run
flag to exclude submodule directories from the list of modified files - Fix handling of files with spaces in their name when calculating modified lines in a file
- Disable
Reek
pre-commit hook by default - Allow
required_executable
to include paths that are in the repo root - Add
command
hook option allowing the actual command that is executed to be configured (useful to invoke command viabundle exec
or similar) - Add
flags
hook option allowing the flags passed on the command line to be configured
- Change
HardTabs
,MergeConflicts
, andPryBinding
pre-commit hooks to bequiet
by default - Switch
TravisLint
pre-commit hook from deprecatedtravis-lint
gem totravis
gem - Add .projections.json configuration file
- Add pre-commit static analysis and linting for sh/bash scripts with ShellCheck
- Use
--verbose
flag when running JSCS to include name of offending rule
- Add
--run
flag which runs all configured pre-commit hooks against the entire repository - Fix installer to work with Overcommit hooks created via
GIT_TEMPLATE_DIR
- Fix hook runner to not display skip message unless hook would have actually run
- Change
ImageOptim
hook to useskip_missing_workers
option and update dependency to 0.18.0 - Remove interactive prompt support from overcommit hooks
- Change hook signing from interactive flow to be done via
overcommit --sign <hook-type>
command
- Add
--no-pngout
flag forimage_optim
command on:fail
message - Fix
Brakeman
pre-commit hook when multiple files have been staged - Reset modification times more frequently when cleaning up the environment after running pre-commit hooks. This should help overcommit work with file watchers a little more nicely.
- Add pre-commit JavaScript style checking with JSXCS
- Add pre-commit Ruby code smell checking with Reek
- Gracefully handle
.git
files that point to an external git directory
- Update minimum version of
image_optim
gem to 0.15.0 (breaking change in name of exception classes) - Add
--list-hooks
flag which displays all hooks for a repository and whether they are enabled/disabled - Add
required_executable
andinstall_command
options that allow a hook to define an executable that must be in thePATH
in order for it to work, and a command the user can use to install the executable if it doesn't exist - All built-in hooks will now fail if the required executable is not present
- Fix bug where pre-commit hook would crash if user attempted to commit a broken symlink
- Add
BrokenSymlinks
pre-commit hook which checks for broken symlinks - Fix Chamber integration
- Fix 'include' path for ChamberSecurity
- Fix bug where commit message from cherry-picked commit would be lost if there were conflicts
- Change commit hook header text to bold instead of bold white so that it displays on terminals with a white background
- Add support for
OVERCOMMIT_DISABLE
environment variable, which when set prevents Overcommit hooks from running - Fix bug that prevented RailsSchemaUpToDate from working in directories that contained decimals
- Warn when trying to pipe commands using the
execute
helper, as this is not supported - Include both standard out/error streams in exception messages in pre-commit hook context
- Fix edge case where hitting Ctrl-C twice rapidly could result in work tree being lost
- Fix edge case where hitting Ctrl-C after all pre-commit hooks had run but before the cleanup had finished would result in a lost working tree
- Handle edge case where if a file was created in the working directory by a separate process in between the working tree being reset and the stash being applied, the hook runner would silently fail
- Prevent stack traces from appearing during early interrupt before Overcommit has loaded its code
- Remove
BundleCheck
post-checkout hook as it was a bit overzealous
- Fix bug where incorrect "hook run interrupted" message displayed when hook run failed
- Gracefully handle
git stash
failures in pre-commit hook runs - Fix
overcommit-hook
auto-updating not passing original arguments to updated hook - Display message when
overcommit-hook
file is automatically updated - Deprecate
:bad
status in favor of:fail
- Deprecate
:good
status in favor of:pass
- Allow hook statuses to be transformed via
on_fail
andon_warn
configuration options - Add
config
attribute as the preferred method to access hook configurations in hook implementations - Generate starter configuration on install with instructions on how to
configure overcommit if an
.overcommit.yml
file does not yet exist - Include name of hook in output (to make it easier to find out which name to use when skipping)
- Fix hook skipping regression
- Ignore
db/structure.sql
inTrailingWhitespace
pre-commit hook - Drop stashed changes after restoring them (now that #55 is fixed)
- Change
JSCS
pre-commit hook to check status code instead of using regex to determine type of error - Fix performance regression where running Overcommit in a repository with a lot of files would be very slow
- Wildcards in include/exclude globs now match files beginning with
.
- Drop support for Ruby 1.8.7
- Prevent
JsonSyntax
pre-commit hook from failing ifjson_class
key is present in JSON - Prevent
HardTabs
pre-commit hook from warning on tabs in Makefiles - Fix bug where
overcommit
hooks would fail for initial commit to repo - Add support for gracefully exiting from Ctrl-C interruptions
- Add
.gitmodules
to the list of ignored files inHardTabs
pre-commit hook
- Skip
HardTabs
pre-commit hook for Golang source files by default - Disable
IndexTags
post-checkout hook by default - Add
GoLint
pre-commit hook which runsgolint
on Golang source files
- Fix bug where
CHERRY_PICK_HEAD
would be lost when a pre-commit hook failed after attempting to cherry pick a commit with a conflict - Drop support for Ruby 1.9.2
- Allow custom arguments to be passed to
ctags
viaIndexTags
post-checkout hook
- Change format of
include
/exclude
file globs to match that of standard shell globbing (e.g.**
matches zero or more directories rather than 1 or more) - Don't drop stashed changes after restoring them
- Fix bug where
MERGE_HEAD
would be lost when attempting to commit a resolution to a merge conflict
- Include
--force-exclusion
flag in Rubocop hook so files excluded via.rubocop.yml
are actually excluded - Add pre-commit
JsxHint
hook which uses the JSXHint project - Add pre-commit
BerksfileCheck
hook which warns you when yourBerksfile.lock
is out of sync with yourBerksfile
- Fix
BundleCheck
to usegit ls-files
instead ofgit check-ignore
, as the latter is only available as of git 1.8 - Fix bug where skipping a hook via the
SKIP
environment variable would incorrectly warn about the hook's configuration having changed - Add
MergeConflicts
pre-commit hook which checks for unresolved merge conflicts in files - Add
RailsSchemaUpToDate
pre-commit hook which checks forschema.rb
/structure.sql
that aren't up-to-date with the latest migration - Add
PryBinding
pre-commit hook which checks forbinding.pry
calls that have been left behind in code - Add
LocalPathsInGemfile
pre-commit hook which checks for gem dependencies pointing to local paths in aGemfile
- Add
JsonSyntax
pre-commit hook which checks the syntax of all.json
files - Add
Brakeman
pre-commit hook which runs security checks against code (disabled by default as it is slow) - Add
ChamberSecurity
pre-commit hook which ensures thatchamber secure
has been run before committing your changes (see the Chamber gem for more information)
- Add pre-commit
TravisLint
hook which uses the travis-lint gem - Display actual warning message when dependencies aren't satisfied in
post-checkout
BundleCheck
hook - Add support for hook plugin signature verification so that you don't automatically execute repo-specific hooks that changed since you last ran them. See Security for more information
- Automatically update
overcommit-hook
master hook and any other symlinks before hook run. Runovercommit --install
if you're upgrading to save you from having to runovercommit --install
in the future
- Change
command
hook helper signature to accept an array of arguments instead of a shell string - Rename
command
hook helper toexecute
- Add support for JRuby 1.7.9 in Ruby 1.9 mode
- Display more helpful error message when installing Overcommit into a repo that already has non-Overcommit hooks
- Add
--force
flag allowing Overcommit to be installed in repositories that already contain non-Overcommit hooks (overwriting them in the process)
TextWidth
pre-commit hook now supports customized maximum subject line and commit message body widths- Fix bug where committing a change with only file deletions would result in those changes not being committed
- Warn instead of failing when gem dependencies are out of date in
BundleCheck
post-checkout hook
- Fix bug where hook run would crash if hook was unsuccessful but returned no output
- Fix bug where a plugin would fail to load if it had a custom configuration defined
- Breaking changes: plugin framework has been overhauled.
You must now subclass
Overcommit::Hook::<Type>
and implement the methodrun
instead ofrun_check
. Also, the old hook runner no longer works, so you'll need to remove the hooks installed in.git/hooks
and install new ones withovercommit --install
- Configuration for repository can be specified via
.overcommit.yml
file - Can now skip hooks using just
SKIP
instead ofSKIP_CHECKS
environment variable - Add
--template-dir
flag which provides a convenient way to auto-install overcommit via Git template directories - Converted all script-based hook scripts to Ruby-based ones
AuthorEmail
check can be customized so emails match a regexWhitespace
check was split intoHardTabs
andTrailingWhitespace
- Add pre-commit JavaScript style checking with JSCS
- Add
BundleCheck
pre-commit hook which checks ifGemfile.lock
matchesGemfile
- Use per-file
.scss-lint.yml
configuration for staged files
- Remove
RestrictedPaths
pre-commit check
- Added pre-commit check that optimizes images with
image_optim
- Don't include submodules in the list of modified files
- Fix bug where
.rubocop.yml
would not be found in present working directory
- Use per-file
.rubocop.yml
configuration for staged files
- Added Gemfile.lock/bundler checking
- Added
--no-ext-diff
option to git diff - Exposed StagedFile#original_path
- Added check for linting HAML files with haml-lint
- Don't use
--silent
flag withrubocop
for Ruby style check (allows upgrade to Rubocop 0.12.0)
- Teach scss-lint check to downgrade lints on untouched lines as warnings
- Fix "Too many open files" error for very large commits
- Make
StagedFile
tempfile creation lazy - should speed up some checks - Address rare cross-platform compatibility issue by replacing a
which
call with a pure Ruby equivalent - Fix CoffeeScript linter path processing
- Allow specifying multiple file types for checks and syntax check rake files
- Fix bug where checks which returned lists of lines would output incorrectly
- Indent check output lines to nest under check name for better readability
- Fix bug where checks that didn't return strings for output would error
- Teach
StagedFile
s how to calculate which lines were actually added/modified - Checks no longer need to filter temporary staged file paths themselves
- Condense Ruby style check output
- Teach Ruby style check to downgrade style lints on untouched lines as warnings
- Added Ruby code style linting via RuboCop
- Fixed bug where
output
was expected to be a string but was an array in js_syntax
- Fixed bug where
staged
helper inHookSpecificCheck
wasn't returningStagedFile
s
- Resurrect StagedFile for reading index contents rather than disk contents
- Sort plugins alphabetically
- Omit periods from warning messages for consistency
- Enforce single-line commit message subjects
- Only colorize output when logging to a TTY
- Add check to detect hard tabs in commit messages
- Fix crashing --list-templates flag
- Strip out blank release note in addition to warning the committer
- Add Python linting via flake8
- Add CoffeeScript linting via coffeelint
- Improve spec coverage
- Use installed
jshint
if available instead of Rhino - Update readme with dependencies, uninstall instructions
- Fix SKIP_CHECKS for namespaced hooks
- Make hooks work when repo-specific configuration file is missing
- Improve error handling when loading custom hooks
- Add un-skippable checks (not skipped via SKIP_CHECKS)
- Improve spec coverage
- Add uninstall (-u) option
- Make installer more robust
- Improve readme documentation
- Add template listing (-l) to CLI
- Add rspec and super-basic spec coverage
- Improve command-line messaging
- First public release