# 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.

# Make sure to run `make -C tooling/overcommit`
gemfile: 'tooling/overcommit/Gemfile'

PostCheckout:
  BundleInstall:
    enabled: true

PreCommit:
  AuthorName:
    enabled: false
  EsLint:
    enabled: true
    # https://github.com/sds/overcommit/issues/338
    required_executable: 'yarn'
    command: ['yarn', 'eslint']
    flags: []
  HamlLint:
    enabled: true
  MergeConflicts:
    enabled: true
    exclude:
      - '**/conflict/file_spec.rb'
      - '**/git/conflict/parser_spec.rb'
  # prettier? https://github.com/sds/overcommit/issues/614 https://github.com/sds/overcommit/issues/390#issuecomment-495703284
  RuboCop:
    enabled: true
#    on_warn: fail # Treat all warnings as failures
  ScssLint:
    enabled: true
  MarkdownLint:
    enabled: true
    description: 'Lint documentation for Markdown errors'
    required_executable: 'node_modules/.bin/markdownlint'
    flags: ['--config', '.markdownlint.yml', 'doc/**/*.md']
    install_command: 'yarn install'
    include:
      - 'doc/**/*.md'
  Vale:
    enabled: true
    description: 'Lint documentation for grammatical and formatting errors'
    required_executable: 'vale'
    flags: ['--config', '.vale.ini', '--minAlertLevel', 'error', 'doc']
    install_command: 'brew install vale # (or use another package manager)'
    include:
      - 'doc/**/*.md'

CommitMsg:
  TextWidth:
    enabled: true
    min_subject_width: 8 # three 2-letter words with 2 spaces
    max_subject_width: 72
    quiet: false

  EmptyMessage:
    enabled: true
    required: true
    description: 'Checking for empty commit message'

#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
