Add Overcommit to prevent committing substandard code

This commit is contained in:
Wilson Silva 2023-01-06 10:58:39 +07:00
parent edc2269ff7
commit 836e54f9d8
No known key found for this signature in database
GPG Key ID: 65135F94E23F82C8
3 changed files with 41 additions and 1 deletions

33
.overcommit.yml Normal file
View File

@ -0,0 +1,33 @@
# Use this file to configure the Overcommit hooks you wish to use. This will
# extend the default configuration defined in:
# https://github.com/sds/overcommit/blob/master/config/default.yml
#
# At the topmost level of this YAML file is a key representing type of hook
# being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
# customize each hook, such as whether to only run it on certain files (via
# `include`), whether to only display output if it fails (via `quiet`), etc.
#
# For a complete list of hooks, see:
# https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
#
# For a complete list of options that you can use to customize hooks, see:
# https://github.com/sds/overcommit#configuration
#
# Uncomment the following lines to make the configuration take effect.
PreCommit:
RuboCop:
enabled: true
on_warn: fail # Treat all warnings as failures
TrailingWhitespace:
enabled: true
exclude:
- '**/db/structure.sql' # Ignore trailing whitespace in generated files
#PostCheckout:
# ALL: # Special hook name that customizes all hooks of this type
# quiet: true # Change all post-checkout hooks to only display output on failure
#
# IndexTags:
# enabled: true # Generate a tags file with `ctags` each time HEAD changes

View File

@ -5,4 +5,10 @@ set -vx
bundle install
# Do any other automated setup that you need to do here
if ! which overcommit >/dev/null; then
echo 'The gem overcommit is not installed. It is necessary to lint the git history through git hooks.'
echo 'Please install overcommit and run this script again.'
exit 1
fi
overcommit --install

View File

@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
spec.require_paths = ['lib']
spec.add_development_dependency 'overcommit', '~> 0.59'
spec.add_development_dependency 'rake', '~> 13.0'
spec.add_development_dependency 'rspec', '~> 3.12'
spec.add_development_dependency 'rubocop', '~> 1.42'