Skip to content
Snippets Groups Projects
.pre-commit-config.yaml 3.04 KiB
Newer Older
  • Learn to ignore specific revisions
  • # -*- coding: utf-8 -*-
    # vim: ft=yaml
    ---
    # See https://pre-commit.com for more information
    # See https://pre-commit.com/hooks.html for more hooks
    
    ci:
      autofix_commit_msg: |
        ci(pre-commit.ci): apply auto fixes from pre-commit.com hooks
    
        For more information, see https://pre-commit.ci
      autofix_prs: true
      autoupdate_branch: ''
      autoupdate_commit_msg: |
        ci(pre-commit.ci): perform `pre-commit` autoupdate
      autoupdate_schedule: quarterly
      skip: []
      submodules: false
    
    default_stages: [commit]
    repos:
      - repo: https://github.com/dafyddj/commitlint-pre-commit-hook
        rev: v2.3.0
        hooks:
          - id: commitlint
            name: Check commit message using commitlint
            description: Lint commit message against @commitlint/config-conventional rules
            stages: [commit-msg]
    
            additional_dependencies: ['@commitlint/config-conventional@17.1.0']
    
      - repo: https://github.com/rubocop-hq/rubocop
    
        hooks:
          - id: rubocop
            name: Check Ruby files with rubocop
            args: [--debug]
            always_run: true
            pass_filenames: false
    
      - repo: https://github.com/shellcheck-py/shellcheck-py
    
        hooks:
          - id: shellcheck
            name: Check shell scripts with shellcheck
            files: ^.*\.(sh|bash|ksh)$
            types: []
    
      - repo: https://github.com/adrienverge/yamllint
    
        hooks:
          - id: yamllint
            name: Check YAML syntax with yamllint
    
            args: [--strict]
            types: [file]
            # Files to include
            # 1. Obvious YAML files
            # 2. `pillar.example` and similar files
            # 3. SLS files under directory `test/` which are pillar files
            # Files to exclude
            # 1. SLS files under directory `test/` which are state files
            # 2. `kitchen.vagrant.yml`, which contains Embedded Ruby (ERB) template syntax
            # 3. YAML files heavily reliant on Jinja
            files: |
              (?x)^(
                    .*\.yaml|
                    .*\.yml|
                    \.salt-lint|
                    \.yamllint|
                    .*\.example|
                    test/.*\.sls
              )$
            exclude: |
              (?x)^(
                    kitchen.vagrant.yml|
                    test/.*/states/.*\.sls|
                    salt/osfamilymap.yaml|
                    salt/osmap.yaml|
                    salt/osfingermap.yaml
              )$
    
      - repo: https://github.com/warpnet/salt-lint
    
        hooks:
          - id: salt-lint
            name: Check Salt files using salt-lint
            files: ^.*\.(sls|jinja|j2|tmpl|tst)$
    
      - repo: https://github.com/myint/rstcheck
    
        hooks:
          - id: rstcheck
            name: Check reST files using rstcheck
    
            exclude: 'docs/CHANGELOG.rst'
    
            additional_dependencies: [sphinx==7.2.6]
    
      - repo: https://github.com/saltstack-formulas/mirrors-rst-lint
        rev: v1.3.2
        hooks:
          - id: rst-lint
            name: Check reST files using rst-lint
            exclude: |
                (?x)^(
                    docs/CHANGELOG.rst|
                    docs/TOFS_pattern.rst|
                )$
    
            additional_dependencies: [pygments==2.16.1]