- Add
Solargraphpre-commit hook
- Fix
setgem dependency error when running with--diffflag
- Fix bug introduced in 0.65.0 that prevented
gemfile: falsefrom working correctly
- Add
--diffCLI option for running pre-commit hooks against only changed files
- Load bundled gems on expected version
- Update minimum version of rexml to address CVE-2024-49761
- Add support for
stylelint16+ - Add
changelog_urito gemspec
- Add
Sorbetpre-commit hook - Add
RSpecpre-commit hook
- Allow version 5 of
childprocessgem dependency
- Allow
ReplaceBranchto useskip_if - Fix local Overcommit file merges with existing
.overcommit.yml
- Allow overriding
Gemfile.locklocation forBundleCheckpre-commit hook - Fix
ReplaceBranchprepare-commit-msg hook to allow trailing spaces - Add
MixFormatpre-commit hook - Add
MixTestpre-push hook - Allow loading custom local configuration from
.local-overcommit.yml - Handle
Psych::DisallowedClasswhen runningYamlSyntaxpre-commit hook - Add support for specifying custom
encodinginRailsSchemaUpToDatepre-commit hook
- Remove
--disable-pending-copsas default flag toRuboCoppre-commit hook. - Remove special handling of process output on Windows since it broke on Linux.
- Add
--disable-pending-copsas default flag toRuboCoppre-commit hook to ignore non-existent cops. Requires RuboCop0.82.0or newer. - Fix deprecation warning for
Bundler.with_clean_env. - Fix handling of some kinds of pronto errors in the
Prontohook. - Fix encoding of process output on Windows.
- Add support for specifying hook type to
--runflag. - Fix message regex parser for Stylelint.
- Fix configuration loading on Ruby 3.1.
- Fix
YamlSyntaxto support aliases when parsing. - Fix run output to explicitly flush partial logs.
- Add
rexmldependency explicitly to support Ruby 3.0. - Add
DartAnalyzerpre-commit hook to analyze Dart files. - Add
PubTestandFlutterTestpre-push hooks to runpub testandflutter testfor Dart projects, respectively. - Update
index-tagsscript to support scanning only files tracked by Git. - Fix
EsLintpre-commit hook to not report certain false positives. - Update
YamlLinttofailthe run instead ofwarnwhen errors are detected. - Update
YamlLintparse the line number of output so it is line aware. - Gracefully handle breaking behavior in upstream Psych gem to support YAML aliases.
- Fix case where
gitwould delete all tracked files when popping stash.
- Fix
CommitMsghooks to be able to callmodified_lines_in_file. - Add
ErbLintpre-commit hook to lint ERB files.
- Update
ReplaceBranchprepare-commit-msg hook to avoid running on--amendby default. - Add support for
modified_filesandmodified_lines_in_fileinCommitMsghooks.
- Fix
GoFmtto not be enabled by default. This was enabled by mistake when introduced in Overcommit0.52.0.
- Fix
Overcommit::GitRepo.list_fileshelper to work with arbitrarily large lists of files. - Fix
AuthorNameto allow mononyms to be more inclusive of names.
- Fix
YamlLintpre-commit hook - Relax
childprocessgem version constraint to allow version 4.x
- Improve performance in
PhpCspre-commit hook - Add
Prontopre-push hook - Remove erroneous extra newline in replacement string for
ReplaceBranchprepare-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_ifoption
- Fix case where no standard input is provided to
pre-pushhooks
- Fix
Mdlto properly parse JSON output frommdl - Add
GolangciLintpre-commit and pre-push hooks - Add
GoTestpre-push hook - Add
GoFmtpre-commit hook - Add
exclude_brancheshook option to disable hooks running on specific branches - Add
exclude_remotespre-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_deletionspre-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_onlysetting toProtectedBranchespre-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-msghook fails
- Fix Overcommit to display helpful error message when a hook does not inherit from the base class
- Relax
childprocessgem 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
Stylelintpre-commit hookrequired_executable
- Add
skipped_commit_typesoption toReplaceBranchprepare-commit-msg hook - Add
RubySyntaxpre-commit hook - Add
CodeSpellCheckpre-commit hook
- Relax
childprocessdependency to allow version 1.x
- Fix deadlock which was more likely to occur when setting
parallelizeon a hook tofalse - Fix
Mdlhook to use JSON output and not fail on unexpected output
- Fix
Stylelinthook regex to extract line numbers with more than one digit - Fix
CaseConflictshook to work with file paths containing double quotes
- Drop support for Ruby 2.3 or older
- Support multi-line matches in
MessageFormatcommit-msghook - Add
FileSizepre-commit hook
- Add support for
prepare-commit-messagehooks - Add
SwiftLintpre-commit hook - Add
KtLintpre-commit hook - Add
TerraformFormatpre-commit hook - Add
CookStylepre-commit hook
- Update
validator_uriforW3cHtmlpre-commit hook - Update
TsLintpre-commit hook to support new output format - Update
BundleCheckerror message with additional instructions
- Add
--force-exclusionflag toReekpre-commit hook configuration to ensure excluded files are excluded
- Fix
Credopre-commit hook to lint applicable files only rather than all files - Add
PhpCsFixerpre-commit hook - Add
YardCoveragepre-commit hook - Add
Flaypre-commit hook - Add
Stylelintpre-commit hook - Fix
TsLintdefault flags to work withtslint5.11+
- Add
CargoTestpre-push hook for runningcargo test - Add
min_subject_widthoption toTextWidthcommit-msghook
- Drop support for Ruby versions 2.1 and older
- Fix detection of
.gitdirectory 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
fatalerror message from a pre-commit hook run when adding the first submodule to a repo
- Add
GitLfspost-checkout,post-commitandpost-mergehooks - Display commit message when
commit-msghooks fail - Drop support for JRuby
- Enhance
pre-pushhooks to exposemodified_lines_in_file, similar topre-commithooks - Add
YarnCheckpre-commit hook which checks ifyarn.lockmatchespackage.json - Add
PhpUnitpre-pushhook
- Add
YarnInstallpost-checkout, post-commit, post-merge, and post-rewrite hooks - Add
metadata-json-lintpre-commit hook - Add
RstLintpre-commit hook - Add
YarnInstallpost-checkout, post-commit, post-merge, and post-rewrite hooks - Add additional file patterns for
ChamberSecuritypre-commit hook - Add
ChamberCompareandChamberVerificationpre-commit hooks - Add
ComposerInstallpost-checkout, post-commit, post-merge, and post-rewrite hooks - Add ability to
pre-pushhooks to inspect modified files for pushed refs - Add
PhpStanpre-commit hook
- Run
GoLintpre-commit hook against each file individually - Improve performance of
BundleAuditchecking ofGemfile.lockfile - Allow ad hoc hooks to run executables not tracked by Git
- Drop support for Ruby 2.0
- Fix
LineEndingspre-commit hook handling of file paths with spaces - Fix
Mdlpre-commit hook message parsing regex - Fix
RailsBestPracticeshook to only run against changed files - Fix Overcommit installation in submodules
- Don't print backtrace of signature change for
overcommit --run
- Add
PhpCspre-commit hook - Add
PhpLintpre-commit hook - Allow toggling colorize output via
OVERCOMMIT_COLORenvironment variable
- Add
Prontopre-commit hook - Add
hadolintpre-commit hook - Add
license_finderpre-commit hook - Use the
core.hooksPathGit configuration option when installing hooks - Gracefully handle binary files in
LineEndingspre-commit hook - Relax
childprocessdependency to allow 0.x - Gracefully handle gem loading errors when invoking Overcommit in a repo where
the
gemfilespecified by the local.overcommit.ymlreferences a gem version incompatible with the already-loaded Overcommit - Ignore
Makefileand*.gofiles inHardTabspre-commit hook by default
- Update
childprocessto 0.6.3
- Add
GitLfspre-push hook
- Update
childprocessdependency to 0.6.x series - Auto-sign configuration file when installing hooks for the first time
- Fix
forwarding to private methodwarning on Ruby 2.4.x - Fix potential hang when a hook's
parallelizeoption was set tofalse - Fix
empty strings as pathspecswarning introduced in Git 2.11
- Add
Pytestpre-push hook - Add
RakeTargetpre-commit and pre-push hook - Moved
CommitPleasefromCommitMsgtoPostCommithook - Add
skip_file_checkouthook setting forPostCheckouthooks
- Fix
install_commandfor scss_lint gem
- Add
FixMepre-commit hook, to ensure that no "token" words slips through. These strings are things you should fix now, not later - Add
YAMLLintpre-commit hook - Add
LicenseHeaderpre-commit enforcement to ensure open source projects contain proper license comments - Add
Foodcriticpre-commit hook - Add
LineEndingspre-commit hook that allows you to enforcing UNIX- or Windows-style line endings
- Fix
CapitalizedSubjectto not fail when commit message starts with one or more empty lines
- Add
Fastererpre-commit hook - Add
Brakemanpre-push hook - Add
TSLintpre-commit hook - Validate that hook
envenvironment 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
JavaCheckstylepre-commit hook to properly categorizeINFOandWARNmessages - Add
TestUnitpre-push hook to run tests withTest::Unit - Add
BundleAuditpre-commit hook to scan gems for vulnerabilities withbundle-audit - Copy hook files instead of symlinking
- Add
Credopre-commit hook to check Elixir files - Remove
Brakemanpre-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
Commitpleasepre-commit hook which checks commit messages withcommitplease
- Add
--no-colorflag to allgit diff/git showcalls to override local configuration - Ignore
commit.gpgsignconfiguration 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
Scalastylepre-commit hook to capture messages with no line number - Fix
CoffeeLintpre-commit hook detection of modified lines - Fix
Jscspre-commit hook to work withjscs3.0.0+ - Fix
CapitalizedSubjectpre-commit hook to ignore commit message subjects starting withfixup!orsquash!special prefixes - Add
BundleOutdatedpre-commit hook to report gems in theGemfile.lockthat have newer versions available - Add
destructive_onlyoption toProtectedBranchespre-push hook - Include
.rufiles inRuboCoppre-commit hook - Fix
TextWidthto ignore specialfixup!/squash!prefixes in commit message subjects when determining width of line
- Add global
quietoption 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
overcommitCLI to automatically run within a Bundler context if thegemfileoption is specified. This mainly saves you from needingbundle execwhen runningovercommit --run
- Fix
AuthorName/AuthorEmailpre-commit hooks to respectGIT_AUTHOR_NAME/GIT_AUTHOR_EMAILenvironment variables, respectively - Fix
JavaCheckstylepre-commit hook to ignore[ERROR]prefix when parsing output messages
- Hooks are now run in parallel by default
- Add
concurrencyglobal option allowing you to specify the number of threads to use when running hooks concurrently - Add
parallelizehook option which specifies whether or not this hook should be run in parallel (default istrue) - Add
processorshook option allowing you to specify how many processing units a hook should require - Add
ForbiddenBranchespre-commit hook which prevents creating a commit on any blacklisted branch by name/pattern - Add
MessageFormatcommit-msg hook to validate commit messages against a regex pattern
- Improve error message output when there is a problem processing messages
via
extract_messagespre-commit hook helper - Switch
ScssLintpre-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
Minitestpre-push hook to include all test files
- Add
concurrencyglobal option allowing you to specify the number of threads to use when running hooks concurrently - Add
parallelizehook option which specifies whether or not this hook should be run in parallel (default istrue) - Add
processorshook option allowing you to specify how many processing units a hook should require
- Add support for glob patterns to
ProtectedBranchespre-push hook - Add
Mdlpre-commit hook to runmdlon Markdown files - Add
--without-colorflag toRailsBestPracticespre-commit hook to fix parsing issues due to color escape sequences - Improve error message when
gemfilehas not had a dependency installed - Fix
RuboCoppre-commit hook to not swallow cop messages whenparsergem warnings are output to STDERR
- Add
Dogmapre-commit hook to lint Elixir files with dogma files - Add
Minitestpre-push hook to run Minitest tests - Add
RailsBestPracticespre-commit hook which lints code withrails_best_practices
- Fix
--runflag to not block reading STDIN when using existing hook scripts - Fix
RuboCoppre-commit hook to fail when RuboCop version specified by Bundler context is not available - Fix
TextWidthcommit-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
BundleCheckpre-commit hook to not report false negatives when running viaovercommit --runwith 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_signaturesand should audit your hooks.
- Allow nested arrays in
includeandexcludeoptions so lists of file glob patterns can be shared across hook configurations via YAML references - Add
NginxTestpre-commit hook that checks nginx configuration files withnginx -t - Respect
core.commentcharconfiguration when reading commit messages
- Rename
verify_plugin_signaturestoverify_signatures
- Fix
Jscspre-commit hook to handle the newjscsexit codes introduced as of 2.2.0 - Fix
Scalastylepre-commit hook to fail with non-zero exit statuses
- Ensure
applicable_fileshook helper returns files in lexicographic order - Add
NpmInstallpost-checkout, post-commit, post-merge, and post-rewrite hooks - Add
PuppetLintpre-commit hook that checks Puppet code with puppet-lint - Add
BowerInstallpost-checkout, post-commit, post-merge, and post-rewrite hooks - Add
BundleInstallpost-checkout, post-commit, post-merge, and post-rewrite hooks - Add
Sqlintpre-commit hook that checks SQL code with sqlint - Add Windows support
- Add
Hlintpre-commit hook that checks Haskell files with hlint - Add
ExecutePermissionspre-commit hook that checks file mode for unnecessary execute permissions
- Add
HtmlHintpre-commit hook that checks HTML files with HTMLHint - Add support to the hook
executehelper 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_fileshelper toPostCheckoutandPostRewritehooks - Add
rewritten_commitshelper toPostRewritehooks - Add
gemfileoption to configuration file which allows aGemfileto be loaded by Bundler to enforce particular gem versions during hook runs - Add support for
OVERCOMMIT_DEBUGenvironment 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
ONLYenvironment variable (similar toSKIPexcept 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
CaseConflictspre-commit hook handling of large sets of files - Fix
SemiStandard/Standardhooks to read fromSTDOUTinstead ofSTDERRand handle new output format - Fix
commit-msghooks to handle large commit messages auto-generated by the--verboseflag forgit commit
- Add
EmptyMessagecommit-msg hook that reports commits messages that are empty or contain only whitespace - Add
envhook 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
CaseConflictspre-commit hook to not fail on initial commit - Fix handling of files removed or renamed in a commit amendment
- Add
Vintpre-commit hook that checks Vim script with Vint - Add
Scalariformpre-commit hook that checks formatting of Scala code with Scalariform - Add
SlimLintpre-commit hook that analyzes Slim templates with Slim-Lint
- Include SVG files in
ImageOptim,XmlLint, andXmlSyntaxpre-commit hooks by default - Make
IndexTagshooks quiet by default - Rename
Rubocoppre-commit hook toRuboCopto match the project's proper name
- Fix
HardTabsandTrailingWhitespacepre-commit hooks to include line information in errors, making it work as expected whenproblem_on_unmodified_lineis 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, andTrailingPeriodcommit-msg hooks
- Add
required_library/required_librarieshook option which specifies a list of paths a hook should load withKernel.requirebefore running - Add
JsLintpre-commit hook that checks the style of JavaScript files with JSLint - Add
RubyLintpre-commit hook that statically analyzes Ruby files with ruby-lint - Add
Jslpre-commit hook that checks the style of JavaScript files with JavaScript Lint - Add
CapitalizedSubjectcommit message hook - Add
GoVetpre-commit hook that examines Go source files with vet - Add
XmlSyntaxpre-commit hook to check that XML files are valid - Add
CaseConflictspre-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
RSpecpre-push hook that runs RSpec tests before pushing to remote - Add
ProtectedBranchespre-push hook that prevents destructive pushes (deletions or force pushes) to specified branches - Add
SpellCheckcommit-msg hook to check commit messages for misspelled words - Add support for
pre-rebasehooks - Add
SubmoduleStatuspost-checkout,post-commit,post-merge, andpost-rewritehooks that warn when submodules are uninitialized, out of date with the current index, or contain merge conflicts
- Disable
ShellCheckpre-commit hook by default - Switch
ImageOptimhook to use executable instead of Ruby API - Improve
CoffeeLintpre-commit hook to differentiate between errors and warnings - Improve
GoLintpre-commit hook to extract file and line information - Change configuration loading behavior to prefer user-defined
ALLhook configuration over defaultALLconfiguration, and user-defined hook configuration over defaultALLconfiguration - 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 fromovercommit0.23.0 and want to use the default configuration that shipped with that version, copy the default configuration from 0.23.0 - Update
ScssLintpre-commit hook to properly handle special exit code that signals all files were filtered by exclusions (new as ofscss-lint0.36.0) - Update
childprocessdependency to minimum 0.5.6 - Change default value for
problem_on_unmodified_linefromwarntoreport - Update
Rubocoppre-commit hook to pass--display-cop-namesflag so cop names appear in output - Drop support for returning
:good/:badresults from hooks (was deprecated in 0.15.0) - Remove
PryBindingpre-commit hook since its functionality is provided by theRubocoppre-commit hook
- Fix
LocalPathsInGemfileto not report lints for commented paths - Fix
CssLintpre-commit hook to ignore blank lines incsslintoutput - Fix error instructions typo in
BundleCheckpre-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-rewritehooks - Add
GitGuiltpost-commithook to display changes in blame ownership for modified files - Add
execute_in_backgroundhelper to provide a standardized way to start long-running processes without blocking the hook run - Add
IndexTagshook forpost-commit,post-merge, andpost-rewritehook types so tags index can always be kept up to date viactags - Add
W3cCssandW3cHtmlpre-commit hooks which integrate with thew3c_validatorgem - Add
Scalastylepre-commit hook that runs scalastyle against Scala code - Add
XmlLintpre-commit hook to check XML files with xmllint - Add
JavaCheckstylepre-commit hook to check style of Java files with checkstyle - Add
Pep8pre-commit hook to check Python files with pep8 - Add
Pyflakespre-commit hook to check Python files with pyflakes - Add
Pep257pre-commit hook to check Python files with pep257 - Add
HtmlTidypre-commit hook to check HTML files with tidy - Add
Pylintpre-commit hook to check Python files with pylint
- Parse JSHint errors more precisely
- Remove
JsxHintandJsxcspre-commit hooks in favor of using therequired_executableoption 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
ImageOptimhook to fail instead of warn if theimage_optimgem cannot be found - Remove
ctags_argumentsoption fromIndexTagshooks - Improve
PythonFlake8pre-commit hook to differentiate between errors and warnings - Improve
CssLintpre-commit hook to differentiate between errors and warnings
- Fix
--runflag to consider all lines in all files as modified rather than none - Fix
--runflag 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
Reekpre-commit hook by default - Allow
required_executableto include paths that are in the repo root - Add
commandhook option allowing the actual command that is executed to be configured (useful to invoke command viabundle execor similar) - Add
flagshook option allowing the flags passed on the command line to be configured
- Change
HardTabs,MergeConflicts, andPryBindingpre-commit hooks to bequietby default - Switch
TravisLintpre-commit hook from deprecatedtravis-lintgem totravisgem - Add .projections.json configuration file
- Add pre-commit static analysis and linting for sh/bash scripts with ShellCheck
- Use
--verboseflag when running JSCS to include name of offending rule
- Add
--runflag 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
ImageOptimhook to useskip_missing_workersoption 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-pngoutflag forimage_optimcommand on:failmessage - Fix
Brakemanpre-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
.gitfiles that point to an external git directory
- Update minimum version of
image_optimgem to 0.15.0 (breaking change in name of exception classes) - Add
--list-hooksflag which displays all hooks for a repository and whether they are enabled/disabled - Add
required_executableandinstall_commandoptions that allow a hook to define an executable that must be in thePATHin 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
BrokenSymlinkspre-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_DISABLEenvironment 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
executehelper, 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
BundleCheckpost-checkout hook as it was a bit overzealous
- Fix bug where incorrect "hook run interrupted" message displayed when hook run failed
- Gracefully handle
git stashfailures in pre-commit hook runs - Fix
overcommit-hookauto-updating not passing original arguments to updated hook - Display message when
overcommit-hookfile is automatically updated - Deprecate
:badstatus in favor of:fail - Deprecate
:goodstatus in favor of:pass - Allow hook statuses to be transformed via
on_failandon_warnconfiguration options - Add
configattribute 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.ymlfile 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.sqlinTrailingWhitespacepre-commit hook - Drop stashed changes after restoring them (now that #55 is fixed)
- Change
JSCSpre-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
JsonSyntaxpre-commit hook from failing ifjson_classkey is present in JSON - Prevent
HardTabspre-commit hook from warning on tabs in Makefiles - Fix bug where
overcommithooks would fail for initial commit to repo - Add support for gracefully exiting from Ctrl-C interruptions
- Add
.gitmodulesto the list of ignored files inHardTabspre-commit hook
- Skip
HardTabspre-commit hook for Golang source files by default - Disable
IndexTagspost-checkout hook by default - Add
GoLintpre-commit hook which runsgolinton Golang source files
- Fix bug where
CHERRY_PICK_HEADwould 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
ctagsviaIndexTagspost-checkout hook
- Change format of
include/excludefile 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_HEADwould be lost when attempting to commit a resolution to a merge conflict
- Include
--force-exclusionflag in Rubocop hook so files excluded via.rubocop.ymlare actually excluded - Add pre-commit
JsxHinthook which uses the JSXHint project - Add pre-commit
BerksfileCheckhook which warns you when yourBerksfile.lockis out of sync with yourBerksfile - Fix
BundleCheckto usegit ls-filesinstead ofgit check-ignore, as the latter is only available as of git 1.8 - Fix bug where skipping a hook via the
SKIPenvironment variable would incorrectly warn about the hook's configuration having changed - Add
MergeConflictspre-commit hook which checks for unresolved merge conflicts in files - Add
RailsSchemaUpToDatepre-commit hook which checks forschema.rb/structure.sqlthat aren't up-to-date with the latest migration - Add
PryBindingpre-commit hook which checks forbinding.prycalls that have been left behind in code - Add
LocalPathsInGemfilepre-commit hook which checks for gem dependencies pointing to local paths in aGemfile - Add
JsonSyntaxpre-commit hook which checks the syntax of all.jsonfiles - Add
Brakemanpre-commit hook which runs security checks against code (disabled by default as it is slow) - Add
ChamberSecuritypre-commit hook which ensures thatchamber securehas been run before committing your changes (see the Chamber gem for more information)
- Add pre-commit
TravisLinthook which uses the travis-lint gem - Display actual warning message when dependencies aren't satisfied in
post-checkout
BundleCheckhook - 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-hookmaster hook and any other symlinks before hook run. Runovercommit --installif you're upgrading to save you from having to runovercommit --installin the future
- Change
commandhook helper signature to accept an array of arguments instead of a shell string - Rename
commandhook 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
--forceflag allowing Overcommit to be installed in repositories that already contain non-Overcommit hooks (overwriting them in the process)
TextWidthpre-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
BundleCheckpost-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 methodruninstead ofrun_check. Also, the old hook runner no longer works, so you'll need to remove the hooks installed in.git/hooksand install new ones withovercommit --install - Configuration for repository can be specified via
.overcommit.ymlfile - Can now skip hooks using just
SKIPinstead ofSKIP_CHECKSenvironment variable - Add
--template-dirflag which provides a convenient way to auto-install overcommit via Git template directories - Converted all script-based hook scripts to Ruby-based ones
AuthorEmailcheck can be customized so emails match a regexWhitespacecheck was split intoHardTabsandTrailingWhitespace- Add pre-commit JavaScript style checking with JSCS
- Add
BundleCheckpre-commit hook which checks ifGemfile.lockmatchesGemfile
- Use per-file
.scss-lint.ymlconfiguration for staged files
- Remove
RestrictedPathspre-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.ymlwould not be found in present working directory
- Use per-file
.rubocop.ymlconfiguration for staged files
- Added Gemfile.lock/bundler checking
- Added
--no-ext-diffoption to git diff - Exposed StagedFile#original_path
- Added check for linting HAML files with haml-lint
- Don't use
--silentflag withrubocopfor 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
StagedFiletempfile creation lazy - should speed up some checks - Address rare cross-platform compatibility issue by replacing a
whichcall 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
StagedFiles 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
outputwas expected to be a string but was an array in js_syntax
- Fixed bug where
stagedhelper inHookSpecificCheckwasn't returningStagedFiles
- 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
jshintif 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