# Default configuration that all Overcommit configurations inherit from. # # This is an opinionated list of which hooks are valuable to run and what their # out-of-the-box settings should be. #------------------------------------------------------------------------------- # Loads Bundler context from a Gemfile. If false, does nothing (default). # # Specifying a Gemfile for Bundler to load allows you to control which gems are # available in the load path (i.e. loadable via `require`) within your hook # runs. Note that having a Gemfile requires you to include `overcommit` itself # in your Gemfile (otherwise Overcommit can't load itself!). # # This is useful if you want to: # # - Enforce a specific version of Overcommit to use for all hook runs # (or to use a version from the master branch that has not been released yet) # - Enforce a specific version or unreleased branch is used for a gem you want # to use in your git hooks # # WARNING: This makes your hook runs slower, but you can work around this! # # Loading a Bundler context necessarily adds a startup delay to your hook runs # as Bundler parses the Gemfile and checks that the dependencies are satisfied. # Thus for projects with many gems this can introduce a noticeable delay. # # The recommended workaround is to create a separate Gemfile in the root of your # repository (call it `.overcommit_gems.rb`), and include only the gems that # your Overcommit hooks need in order to run. This significantly reduces the # startup delay in your hook runs. Make sure to commit both # `.overcommit_gems.rb` and the resulting `.overcommit_gems.rb.lock` file to # your repository, and then set the `gemfile` option below to the name you gave # the file. # (Generate lock file by running `bundle install --gemfile=.overcommit_gems.rb`) gemfile: false # Where to store hook plugins specific to a repository. These are loaded in # addition to the default hooks Overcommit comes with. The location is relative # to the root of the repository. plugin_directory: '.git-hooks' # Whether to hide hook output by default. This results in completely silent hook # runs except in the case of warning or failure. quiet: false # Number of hooks that can be run concurrently. Typically this won't need to be # adjusted, but if you know that some of your hooks themselves use multiple # processors you can lower this value accordingly. You can define # single-operator mathematical expressions, e.g. '%{processors} * 2', or # '%{processors} / 2'. concurrency: '%{processors}' # Whether to check if a hook plugin has changed since Overcommit last ran it. # This is a defense mechanism when working with repositories which can contain # untrusted code (e.g. when you fetch a pull request from a third party). # See https://github.com/brigade/overcommit#security for more information. verify_signatures: true # 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 CapitalizedSubject: enabled: true description: 'Check subject capitalization' EmptyMessage: enabled: true description: 'Check for empty commit message' quiet: true GerritChangeId: enabled: false description: 'Ensure Gerrit Change-Id is present' required: true HardTabs: enabled: false description: 'Check for hard tabs' MessageFormat: enabled: false description: 'Check commit message matches expected pattern' pattern: '(.+)[|](.+)[|](.+)' expected_pattern_message: ' | | ' sample_message: 'DEFECT-1234 | Refactored Onboarding flow | John Doe' RussianNovel: enabled: false description: 'Check length of commit message' quiet: true SingleLineSubject: enabled: true description: 'Check subject line' SpellCheck: enabled: false description: 'Check for misspelled words' required_executable: 'hunspell' flags: ['-a'] TextWidth: enabled: true description: 'Check text width' max_subject_width: 60 min_subject_width: 0 max_body_width: 72 TrailingPeriod: enabled: true description: 'Check for trailing periods in subject' # Hooks that are run after `git commit` is executed, before the commit message # editor is displayed. These hooks are ideal for syntax checkers, linters, and # other checks that you want to run before you allow a commit object to be # created. 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 BerksfileCheck: enabled: false description: 'Check Berksfile lock' required_executable: 'berks' flags: ['list', '--quiet'] install_command: 'gem install berks' include: - 'Berksfile' - 'Berksfile.lock' BrokenSymlinks: enabled: true description: 'Check for broken symlinks' quiet: true BundleAudit: enabled: false description: 'Check for vulnerable versions of gems' required_executable: 'bundle-audit' install_command: 'gem install bundler-audit' BundleCheck: enabled: false description: 'Check Gemfile dependencies' required_executable: 'bundle' flags: ['check'] install_command: 'gem install bundler' include: - 'Gemfile' - 'Gemfile.lock' - '*.gemspec' BundleOutdated: enabled: false description: 'List installed gems with newer versions available' required_executable: 'bundle' flags: ['outdated', '--strict', '--parseable'] install_command: 'gem install bundler' CaseConflicts: enabled: true description: 'Check for case-insensitivity conflicts' quiet: true ChamberCompare: enabled: false description: 'Check that settings are equivalent between namespaces' required_executable: 'chamber' flags: ['compare'] install_command: 'gem install chamber' namespaces: - ['development'] - ['test'] - ['production'] exclusions: [] include: &chamber_settings_files - 'config/settings*.yml' - 'config/settings*.yml.erb' - 'config/settings/**/*.yml' - 'config/settings/**/*.yml.erb' - 'settings*.yml' - 'settings*.yml.erb' - 'settings/**/*.yml' - 'settings/**/*.yml.erb' ChamberSecurity: enabled: false description: 'Check that settings have been secured with Chamber' required_executable: 'chamber' flags: ['secure', '--files'] install_command: 'gem install chamber' include: *chamber_settings_files ChamberVerification: enabled: false description: 'Verify that all settings changes have been approved' required_executable: 'chamber' flags: ['sign', '--verify'] install_command: 'gem install chamber' include: *chamber_settings_files CodeSpellCheck: enabled: false description: 'Check if all your code is spell-checked correctly' command: 'alfonsox' install_command: 'gem install alfonsox' include: - '**/*.rb' - '**/*.erb' CoffeeLint: enabled: false description: 'Analyze with coffeelint' required_executable: 'coffeelint' flags: ['--reporter=csv'] install_command: 'npm install -g coffeelint' include: '**/*.coffee' CookStyle: enabled: false description: 'Analyze with CookStyle' required_executable: 'cookstyle' flags: ['--format=emacs', '--force-exclusion', '--display-cop-names'] install_command: 'gem install cookstyle' include: - '**/*.rb' - '**/*.erb' Credo: enabled: false description: 'Analyze with credo' required_executable: 'mix' flags: ['credo', '--all', '--strict', '--format', 'flycheck'] include: - '**/*.ex' - '**/*.exs' CssLint: enabled: false description: 'Analyze with csslint' required_executable: 'csslint' flags: ['--quiet', '--format=compact'] install_command: 'npm install -g csslint' include: '**/*.css' DartAnalyzer: enabled: false description: 'Analyze with dartanalyzer' required_executable: 'dartanalyzer' flags: [] include: - '**/*.dart' Dogma: enabled: false description: 'Analyze with dogma' required_executable: 'mix' flags: ['dogma'] include: - '**/*.ex' - '**/*.exs' ErbLint: enabled: false description: 'Analyze with ERB Lint' required_executable: 'erblint' install_command: 'bundle install erb_lint' include: '**/*.html.erb' EsLint: enabled: false description: 'Analyze with ESLint' required_executable: 'eslint' flags: ['--format=compact'] install_command: 'npm install -g eslint' include: '**/*.js' ExecutePermissions: enabled: false description: 'Check for file execute permissions' quiet: true Fasterer: enabled: false description: 'Analyzing for potential speed improvements' required_executable: 'fasterer' install_command: 'gem install fasterer' include: '**/*.rb' FixMe: enabled: false description: 'Check for "token" strings' required_executable: 'grep' flags: ['-IEHnw'] keywords: ['BROKEN', 'BUG', 'ERROR', 'FIXME', 'HACK', 'NOTE', 'OPTIMIZE', 'REVIEW', 'TODO', 'WTF', 'XXX'] FileSize: enabled: false description: 'Check for oversized files' size_limit_bytes: 1_000_000 Flay: enabled: false description: 'Analyze ruby code for structural similarities with Flay' required_executable: 'flay' install_command: 'gem install flay' mass_threshold: 16 fuzzy: 1 liberal: false include: '**/*.rb' Foodcritic: enabled: false description: 'Analyze with Foodcritic' required_executable: 'foodcritic' flags: ['--epic-fail=any'] install_command: 'gem install foodcritic' ForbiddenBranches: enabled: false description: 'Check for commit to forbidden branch' quiet: true branch_patterns: ['master'] GinkgoFocus: enabled: false description: 'Check for "focused" tests' required_executable: 'grep' flags: ['-IEHnw'] keywords: ['FContext','FDescribe','FIt','FMeasure','FSpecify','FWhen'] GoFmt: enabled: false description: 'Fix with go fmt' required_executable: 'go' command: ['go', 'fmt'] parallelize: false include: '**/*.go' GolangciLint: enabled: false description: 'Analyze with golangci-lint' required_executable: 'golangci-lint' install_command: 'go get github.com/golangci/golangci-lint/cmd/golangci-lint' flags: ['--out-format=line-number', '--print-issued-lines=false'] command: ['golangci-lint', 'run'] include: '**/*.go' GoLint: enabled: false description: 'Analyze with golint' required_executable: 'golint' install_command: 'go get github.com/golang/lint/golint' include: '**/*.go' GoVet: enabled: false description: 'Analyze with go vet' required_executable: 'go' flags: ['tool', 'vet'] install_command: 'go get golang.org/x/tools/cmd/vet' include: '**/*.go' Hadolint: enabled: false description: 'Analyze with hadolint' required_executable: 'hadolint' include: - '**/Dockerfile*' HamlLint: enabled: false description: 'Analyze with haml-lint' required_executable: 'haml-lint' install_command: 'gem install haml-lint' flags: ['--no-summary'] include: '**/*.haml' HardTabs: enabled: false description: 'Check for hard tabs' quiet: true required_executable: 'grep' flags: ['-IHn', "\t"] exclude: - '**/Makefile' - '**/*.go' Hlint: enabled: false description: 'Analyze with hlint' required_executable: 'hlint' install_command: 'cabal install hlint' include: '**/*.hs' HtmlHint: enabled: false description: 'Analyze with HTMLHint' required_executable: 'htmlhint' install_command: 'npm install -g htmlhint' include: '**/*.html' HtmlTidy: enabled: false description: 'Analyze HTML with tidy' required_executable: 'tidy' flags: ['-errors', '-quiet', '-utf8'] include: '**/*.html' ImageOptim: enabled: false description: 'Check for optimizable images' required_executable: 'image_optim' install_command: 'gem install image_optim' include: - '**/*.gif' - '**/*.jpeg' - '**/*.jpg' - '**/*.png' - '**/*.svg' JavaCheckstyle: enabled: false description: 'Analyze with checkstyle' required_executable: 'checkstyle' flags: ['-c', '/sun_checks.xml'] include: '**/*.java' Jscs: enabled: false description: 'Analyze with JSCS' required_executable: 'jscs' flags: ['--reporter=inline'] install_command: 'npm install -g jscs' include: '**/*.js' JsHint: enabled: false description: 'Analyze with JSHint' required_executable: 'jshint' flags: ['--verbose'] install_command: 'npm install -g jshint' include: '**/*.js' JsLint: enabled: false description: 'Analyze with JSLint' required_executable: 'jslint' flags: ['--terse'] install_command: 'npm install -g jslint' include: '**/*.js' Jsl: enabled: false description: 'Analyze with JSL' required_executable: 'jsl' flags: ['-nologo', '-nofilelisting', '-nocontext', '-nosummary'] include: '**/*.js' JsonSyntax: enabled: false description: 'Validate JSON syntax' required_library: 'json' install_command: 'gem install json' include: '**/*.json' KtLint: enabled: false description: 'Analyze with KtLint' required_executable: 'ktlint' flags: [] include: '**/*.kt' LicenseFinder: enabled: false description: 'Analyze with LicenseFinder' required_executable: 'license_finder' install_command: 'gem install license_finder' include: - 'Gemfile' - 'requirements.txt' - 'package.json' - 'pom.xml' - 'build.gradle' - 'bower.json' - 'Podfile' - 'rebar.config' LicenseHeader: enabled: false license_file: 'LICENSE.txt' description: 'Check source files for license headers' LocalPathsInGemfile: enabled: false description: 'Check for local paths in Gemfile' required_executable: 'grep' flags: ['-IHnE', "^[^#]*((\\bpath:)|(:path[ \t]*=>))"] include: '**/Gemfile' Mdl: enabled: false description: 'Analyze markdown files with mdl' required_executable: 'mdl' flags: ['--json'] install_command: 'gem install mdl' include: '**/*.md' MergeConflicts: enabled: true description: 'Check for merge conflicts' quiet: true required_executable: 'grep' flags: ['-IHn', "^<<<<<<<[ \t]"] MixFormat: enabled: false description: 'Check formatting with mix format' required_executable: 'mix' flags: ['format', '--check-formatted'] include: - '**/*.ex' - '**/*.heex' - '**/*.exs' PuppetMetadataJsonLint: enabled: false description: 'Checking module metadata' flags: ['--strict-license', '--strict-dependencies', '--fail-on-warning'] include: 'metadata.json' required_executable: 'metadata-json-lint' install_command: 'gem install metadata-json-lint' NginxTest: enabled: false description: 'Test nginx configs' required_executable: 'nginx' flags: ['-t'] include: '**/nginx.conf' Pep257: # Deprecated – use Pydocstyle instead. enabled: false description: 'Analyze docstrings with pep257' required_executable: 'pep257' install_command: 'pip install pep257' include: '**/*.py' Pep8: # Deprecated – use Pycodestyle instead. enabled: false description: 'Analyze with pep8' required_executable: 'pep8' install_command: 'pip install pep8' include: '**/*.py' PhpLint: enabled: false description: 'Testing with PHP lint' required_executable: 'php' command: 'php' flags: ['-l'] include: '**/*.php' PhpCs: enabled: false description: 'Analyze with PHP_CodeSniffer' command: 'vendor/bin/phpcs' flags: ['--standard=PSR2', '--report=csv'] include: '**/*.php' PhpCsFixer: enabled: false description: 'Fix non compliant PHP files' required_executable: 'php-cs-fixer' command: 'vendor/bin/php-cs-fixer' flags: ['fix', '-v', '--path-mode=intersection'] install_command: 'composer global require friendsofphp/php-cs-fixer' include: '**/*.php' PhpStan: description: 'Analyze with phpstan' enabled: false command: 'phpstan' flags: ['analyze', '--errorFormat=raw'] include: - '**/*.php' Pronto: enabled: false description: 'Analyzing with pronto' required_executable: 'pronto' install_command: 'gem install pronto' flags: ['run', '--staged', '--exit-code'] PuppetLint: enabled: false description: 'Analyze with puppet-lint' required_executable: 'puppet-lint' install_command: 'gem install puppet-lint' flags: - '--log-format="%{fullpath}:%{line}:%{column}:%{KIND}: %{message} (%{check})"' - '--fail-on-warnings' - '--error-level=all' include: '**/*.pp' Pycodestyle: enabled: false description: 'Analyze with pycodestyle' required_executable: 'pycodestyle' install_command: 'pip install pycodestyle' include: '**/*.py' Pydocstyle: enabled: false description: 'Analyze docstrings with pydocstyle' required_executable: 'pydocstyle' install_command: 'pip install pydocstyle' include: '**/*.py' Pyflakes: enabled: false description: 'Analyze with pyflakes' required_executable: 'pyflakes' install_command: 'pip install pyflakes' include: '**/*.py' Pylint: enabled: false description: 'Analyze with Pylint' required_executable: 'pylint' install_command: 'pip install pylint' flags: - '--msg-template="{path}:{line}:{C}: {msg} ({symbol})"' - '--reports=n' - '--persistent=n' include: '**/*.py' PythonFlake8: enabled: false description: 'Analyze with flake8' required_executable: 'flake8' install_command: 'pip install flake8' include: '**/*.py' RakeTarget: enabled: false description: 'Run rake targets' # targets: # - 'lint' # - 'validate' # - '...' required_executable: 'rake' install_command: 'gem install rake' RailsBestPractices: enabled: false description: 'Analyze with RailsBestPractices' required_executable: 'rails_best_practices' flags: ['--without-color'] install_command: 'gem install rails_best_practices' RailsSchemaUpToDate: enabled: false description: 'Check if database schema is up to date' include: - 'db/migrate/*.rb' - 'db/schema.rb' - 'db/structure.sql' Reek: enabled: false description: 'Analyze with Reek' required_executable: 'reek' flags: ['--single-line', '--no-color', '--force-exclusion'] install_command: 'gem install reek' include: - '**/*.gemspec' - '**/*.rake' - '**/*.rb' - '**/Gemfile' - '**/Rakefile' RstLint: enabled: false description: 'Analyze reStructuredText files with rst-lint' required_executable: 'rst-lint' install_command: 'pip install restructuredtext_lint' include: '**/*.rst' RSpec: enabled: false description: 'Run tests with Rspec' required_executable: 'rspec' RuboCop: enabled: false description: 'Analyze with RuboCop' required_executable: 'rubocop' flags: ['--format=emacs', '--force-exclusion', '--display-cop-names'] install_command: 'gem install rubocop' include: - '**/*.gemspec' - '**/*.rake' - '**/*.rb' - '**/*.ru' - '**/Gemfile' - '**/Rakefile' RubyLint: enabled: false description: 'Analyze with ruby-lint' required_executable: 'ruby-lint' flags: ['--presenter=syntastic', '--levels=error,warning'] install_command: 'gem install ruby-lint' include: - '**/*.gemspec' - '**/*.rb' RubySyntax: enabled: false description: 'Check ruby syntax' required_executable: 'ruby' command: [ 'ruby', '-e', 'ARGV.each { |applicable_file| ruby_c_output = `ruby -c #{applicable_file}`; puts ruby_c_output unless $?.success? }' ] include: - '**/*.gemspec' - '**/*.rb' Scalariform: enabled: false description: 'Check formatting with Scalariform' required_executable: 'scalariform' flags: ['--test'] include: '**/*.scala' Scalastyle: enabled: false description: 'Analyze with Scalastyle' required_executable: 'scalastyle' include: '**/*.scala' ScssLint: enabled: false description: 'Analyze with scss-lint' required_library: 'json' required_executable: 'scss-lint' flags: ['--format', 'JSON'] install_command: 'gem install scss_lint' include: '**/*.scss' SemiStandard: enabled: false description: 'Analyze with semistandard' required_executable: 'semistandard' flags: ['--verbose'] install_command: 'npm install -g semistandard' include: '**/*.js' ShellCheck: enabled: false description: 'Analyze with ShellCheck' required_executable: 'shellcheck' flags: ['--format=gcc'] include: '**/*.sh' SlimLint: enabled: false description: 'Analyze with slim-lint' required_executable: 'slim-lint' install_command: 'gem install slim_lint' include: '**/*.slim' Sorbet: enabled: false description: 'Analyze with Sorbet' required_executable: 'srb' install_command: 'gem install sorbet' command: ['srb', 'tc'] include: '**/*.rb' Sqlint: enabled: false description: 'Analyze with sqlint' required_executable: 'sqlint' install_command: 'gem install sqlint' include: '**/*.sql' Standard: enabled: false description: 'Analyze with standard' required_executable: 'standard' flags: ['--verbose'] install_command: 'npm install -g standard' include: '**/*.js' Stylelint: enabled: false description: 'Check styles with Stylelint' required_executable: 'stylelint' flags: ['-f', 'compact'] install_command: 'npm install -g stylelint' include: - '**/*.scss' - '**/*.css' - '**/*.less' SwiftLint: enabled: false description: 'Analyze with SwiftLint' required_executable: 'swiftlint' flags: ['lint', '--strict'] install_command: 'brew install swiftlint' include: '**/*.swift' TerraformFormat: enabled: false description: 'Analyze with Terraform' required_executable: 'terraform' flags: ['fmt', '-check=true', '-diff=false'] include: '**/*.tf' TsLint: enabled: false description: 'Analyze with TSLint' required_executable: 'tslint' install_command: 'npm install -g tslint typescript' include: '**/*.ts' TrailingWhitespace: enabled: false description: 'Check for trailing whitespace' required_executable: 'grep' flags: ['-IHn', "[ \t]$"] TravisLint: enabled: false description: 'Check Travis CI configuration' required_executable: 'travis' flags: ['lint'] install_command: 'gem install travis' include: '.travis.yml' Vint: enabled: false description: 'Analyze with Vint' required_executable: 'vint' install_command: 'pip install vim-vint' include: - '**/*.vim' - '**/*.vimrc' W3cCss: enabled: false description: 'Analyze with W3C CSS validation service' required_library: 'w3c_validators' install_command: 'gem install w3c_validators' validator_uri: 'http://jigsaw.w3.org/css-validator/validator' language: 'en' profile: 'css3' warn_level: 2 include: - '**/*.css' W3cHtml: enabled: false description: 'Analyze with W3C HTML validation service' required_library: 'w3c_validators' install_command: 'gem install w3c_validators' validator_uri: 'https://validator.w3.org/nu' charset: 'utf-8' doctype: 'HTML5' include: - '**/*.html' LineEndings: description: 'Check line endings' enabled: false eol: "\n" # or "\r\n" for Windows-style newlines XmlLint: enabled: false description: 'Analyze with xmllint' required_executable: 'xmllint' flags: ['--noout'] include: - '**/*.xml' - '**/*.svg' XmlSyntax: enabled: false description: 'Check XML syntax' required_library: 'rexml/document' include: - '**/*.xml' - '**/*.svg' YamlLint: enabled: false description: 'Analyze with YAMLlint' required_executable: 'yamllint' flags: ['--format=parsable', '--strict'] install_command: 'pip install yamllint' include: - '**/*.yaml' - '**/*.yml' YamlSyntax: enabled: false description: 'Check YAML syntax' required_library: 'yaml' include: - '**/*.yaml' - '**/*.yml' YardCoverage: enabled: false description: 'Checking for yard coverage' command: ['yard', 'stats', '--list-undoc', '--compact'] flags: ['--private', '--protected'] required_executable: 'yard' install_command: 'gem install yard' min_coverage_percentage: 100 include: - '/**/*.rb' YarnCheck: enabled: false description: 'Check yarn.lock dependencies' required_executable: 'yarn' flags: ['check', '--silent', '--no-progress', '--non-interactive'] install_command: 'npm install --global yarn' include: - 'package.json' - 'yarn.lock' # Hooks that run after HEAD changes or a file is explicitly checked out. PostCheckout: ALL: required: false quiet: false skip_file_checkout: true BowerInstall: enabled: false description: 'Install bower dependencies' requires_files: true required_executable: 'bower' install_command: 'npm install -g bower' flags: ['install'] include: 'bower.json' BundleInstall: enabled: false description: 'Install Bundler dependencies' requires_files: true required_executable: 'bundle' install_command: 'gem install bundler' flags: ['install'] include: - 'Gemfile' - 'Gemfile.lock' - '*.gemspec' ComposerInstall: enabled: false description: 'Install composer dependencies' requires_files: true required_executable: 'composer' install_command: 'curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer' flags: ['install'] include: 'composer.json' GitLfs: enabled: false description: 'Check status of lockable files tracked by Git LFS' required_executable: 'git-lfs' install_command: 'brew install git-lfs' IndexTags: enabled: false description: 'Generate tags file from source' quiet: true required_executable: 'ctags' NpmInstall: enabled: false description: 'Install NPM dependencies' requires_files: true required_executable: 'npm' flags: ['install'] include: - 'package.json' - 'npm-shrinkwrap.json' SubmoduleStatus: enabled: false description: 'Check submodule status' quiet: true recursive: false YarnInstall: enabled: false description: 'Install Yarn dependencies' requires_files: true required_executable: 'yarn' flags: ['install'] include: - 'package.json' - 'yarn.lock' # Hooks that run after a commit is created. PostCommit: ALL: requires_files: false required: false quiet: false BowerInstall: enabled: false description: 'Install bower dependencies' requires_files: true required_executable: 'bower' install_command: 'npm install -g bower' flags: ['install'] include: 'bower.json' BundleInstall: enabled: false description: 'Install Bundler dependencies' requires_files: true required_executable: 'bundle' install_command: 'gem install bundler' flags: ['install'] include: - 'Gemfile' - 'Gemfile.lock' - '*.gemspec' Commitplease: enabled: false description: 'Analyze with Commitplease' required_executable: './node_modules/.bin/commitplease' install_command: 'npm install --save-dev commitplease' flags: ['-1'] ComposerInstall: enabled: false description: 'Install composer dependencies' requires_files: true required_executable: 'composer' install_command: 'curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer' flags: ['install'] include: 'composer.json' GitGuilt: enabled: false description: 'Calculate changes in blame since last commit' requires_files: true required_executable: 'git-guilt' flags: ['HEAD~', 'HEAD'] install_command: 'npm install -g git-guilt' GitLfs: enabled: false description: 'Check status of lockable files tracked by Git LFS' required_executable: 'git-lfs' install_command: 'brew install git-lfs' IndexTags: enabled: false description: 'Generate tags file from source' quiet: true required_executable: 'ctags' NpmInstall: enabled: false description: 'Install NPM dependencies' requires_files: true required_executable: 'npm' flags: ['install'] include: - 'package.json' - 'npm-shrinkwrap.json' SubmoduleStatus: enabled: false description: 'Check submodule status' quiet: true recursive: false YarnInstall: enabled: false description: 'Install Yarn dependencies' requires_files: true required_executable: 'yarn' flags: ['install'] include: - 'package.json' - 'yarn.lock' # Hooks that run after `git merge` executes successfully (no merge conflicts). PostMerge: ALL: requires_files: false quiet: false BowerInstall: enabled: false description: 'Install bower dependencies' requires_files: true required_executable: 'bower' install_command: 'npm install -g bower' flags: ['install'] include: 'bower.json' BundleInstall: enabled: false description: 'Install Bundler dependencies' requires_files: true required_executable: 'bundle' install_command: 'gem install bundler' flags: ['install'] include: - 'Gemfile' - 'Gemfile.lock' - '*.gemspec' ComposerInstall: enabled: false description: 'Install composer dependencies' requires_files: true required_executable: 'composer' install_command: 'curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer' flags: ['install'] include: 'composer.json' GitLfs: enabled: false description: 'Check status of lockable files tracked by Git LFS' required_executable: 'git-lfs' install_command: 'brew install git-lfs' IndexTags: enabled: false description: 'Generate tags file from source' quiet: true required_executable: 'ctags' NpmInstall: enabled: false description: 'Install NPM dependencies' requires_files: true required_executable: 'npm' flags: ['install'] include: - 'package.json' - 'npm-shrinkwrap.json' SubmoduleStatus: enabled: false description: 'Check submodule status' quiet: true recursive: false YarnInstall: enabled: false description: 'Install Yarn dependencies' requires_files: true required_executable: 'yarn' flags: ['install'] include: - 'package.json' - 'yarn.lock' # Hooks that run after a commit is modified by an amend or rebase. PostRewrite: ALL: requires_files: false quiet: false BowerInstall: enabled: false description: 'Install bower dependencies' requires_files: true required_executable: 'bower' install_command: 'npm install -g bower' flags: ['install'] include: 'bower.json' BundleInstall: enabled: false description: 'Install Bundler dependencies' requires_files: true required_executable: 'bundle' install_command: 'gem install bundler' flags: ['install'] include: - 'Gemfile' - 'Gemfile.lock' - '*.gemspec' ComposerInstall: enabled: false description: 'Install composer dependencies' requires_files: true required_executable: 'composer' install_command: 'curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer' flags: ['install'] include: 'composer.json' IndexTags: enabled: false description: 'Generate tags file from source' quiet: true required_executable: 'ctags' NpmInstall: enabled: false description: 'Install NPM dependencies' requires_files: true required_executable: 'npm' flags: ['install'] include: - 'package.json' - 'npm-shrinkwrap.json' SubmoduleStatus: enabled: false description: 'Check submodule status' quiet: true recursive: false YarnInstall: enabled: false description: 'Install Yarn dependencies' requires_files: true required_executable: 'yarn' flags: ['install'] include: - 'package.json' - 'yarn.lock' # Hooks that run during the `prepare-commit-msg` hook. PrepareCommitMsg: ALL: requires_files: false required: false quiet: false ReplaceBranch: enabled: false description: 'Prepends the commit message with text based on the branch name' branch_pattern: '\A(\d+)-(\w+).*\z' replacement_text: '[#\1]' skipped_commit_types: - 'message' # if message is given via `-m`, `-F` - 'template' # if `-t` is given or `commit.template` is set - 'commit' # if `-c`, `-C`, or `--amend` is given - 'merge' # if merging - 'squash' # if squashing on_fail: warn # Hooks that run during `git push`, after remote refs have been updated but # before any objects have been transferred. PrePush: ALL: requires_files: false required: false quiet: false Brakeman: enabled: false description: 'Check for security vulnerabilities' required_executable: 'brakeman' flags: ['--exit-on-warn', '--quiet', '--summary'] install_command: 'gem install brakeman' CargoTest: enabled: false description: 'Run tests with cargo' required_executable: 'cargo' flags: ['test'] include: 'src/**/*.rs' FlutterTest: enabled: false description: 'Run flutter test suite' required_executable: 'flutter' flags: ['test'] GitLfs: enabled: false description: 'Upload files tracked by Git LFS' required_executable: 'git-lfs' install_command: 'brew install git-lfs' GolangciLint: enabled: false description: 'Analyze with golangci-lint' required_executable: 'golangci-lint' install_command: 'go get github.com/golangci/golangci-lint/cmd/golangci-lint' flags: ['--out-format=line-number', '--print-issued-lines=false'] command: ['golangci-lint', 'run'] GoTest: enabled: false description: 'Run go test suite' required_executable: 'go' command: ['go', 'test', './...'] Minitest: enabled: false description: 'Run Minitest test suite' command: ['ruby', '-Ilib:test', '-rminitest', "-e 'exit! Minitest.run'"] include: 'test/**/*_test.rb' MixTest: enabled: false description: 'Run mix test suite' required_executable: 'mix' flags: ['test'] PhpUnit: enabled: false description: 'Run PhpUnit test suite' command: 'vendor/bin/phpunit' flags: ['--bootstrap', 'vendor/autoload.php', 'tests'] install_command: 'composer require --dev phpunit/phpunit' Pronto: enabled: false description: 'Analyzing with pronto' required_executable: 'pronto' install_command: 'gem install pronto' flags: ['run', '--exit-code'] ProtectedBranches: enabled: false description: 'Check for illegal pushes to protected branches' destructive_only: true branches: ['master'] PubTest: enabled: false description: 'Run pub test suite' required_executable: 'pub' flags: ['run', 'test'] Pytest: enabled: false description: 'Run pytest test suite' required_executable: 'pytest' install_command: 'pip install -U pytest' PythonNose: enabled: false description: 'Run nose test suite' required_executable: 'nosetests' install_command: 'pip install -U nose' RSpec: enabled: false description: 'Run RSpec test suite' required_executable: 'rspec' RakeTarget: enabled: false description: 'Run rake targets' # targets: # - 'lint' # - 'validate' # - '...' required_executable: 'rake' install_command: 'gem install rake' TestUnit: enabled: false description: 'Run Test::Unit test suite' command: ['ruby', '-Ilib:test', '-rtest/unit', "-e 'exit! Test::Unit::AutoRunner.run'"] # Hooks that run during `git rebase`, before any commits are rebased. # If a hook fails, the rebase is aborted. PreRebase: ALL: requires_files: false required: false quiet: false MergedCommits: enabled: false description: 'Check for commits that have already been merged' branches: ['master']