yegor256/pdd

View on GitHub
.overcommit.yml

Summary

Maintainability
Test Coverage
# 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

PreCommit:
  ALL:
    problem_on_unmodified_line: report
    requires_files: true
    required: false
    quiet: false

  AuthorEmail:
    enabled: true
    description: 'Check author email'
    requires_files: false
    required: true
    quiet: true
    pattern: '^[^@]+@.*$'

  AuthorName:
    enabled: true
    description: 'Check for author name'
    requires_files: false
    required: true
    quiet: true

  BundleCheck:
    enabled: true
    description: 'Check Gemfile dependencies'
    required_executable: 'bundle'
    flags: ['check']
    include:
      - 'Gemfile'
      - 'Gemfile.lock'
      - '*.gemspec'

  BundleOutdated:
    enabled: true
    description: 'List installed gems with newer versions available'
    required_executable: 'bundle'
    flags: ['outdated', '--strict', '--parseable']

  RuboCop:
    enabled: true
    description: 'Analyze with RuboCop'
    required_executable: 'bundle'
    flags: ['exec', 'rubocop']

# Hooks that are run against every commit message after a user has written it.
# These hooks are useful for enforcing policies on commit messages written for a
# project.
CommitMsg:
  ALL:
    requires_files: false
    quiet: false

  EmptyMessage:
    enabled: true
    description: 'Check for empty commit message'
    quiet: true

  MessageFormat:
    enabled: true
    description: 'Check commit message matches expected pattern'
    pattern: '(\[#)(.+)(\]\s)(.+)'
    expected_pattern_message: '[#<Issue Id>] <Commit Message Description>'
    sample_message: '[#167] Refactored onboarding flow'

PrePush:
  ALL:
    requires_files: false
    required: false
    quiet: false

  RakeTarget:
    enabled: true
    quite: true
    description: 'Run rake targets'
    targets:
     - 'rubocop'
     - 'test'
     - 'xcop'
    required_executable: 'bundle'
    flags: ['exec', 'rake']