# Git has the notion of hooks, which are custom scripts that are run on # specific events. One of these hooks is the pre-commit hook (located at # .git/hooks/pre-commit), which is run when committing, before specifying a # message. # # To ease management of the pre-commit hook, the pre-commit framework # ( https://pre-commit.com ) was developed. This is the configuration file # for that framework. It contains a list of hooks, with information on where # to find them and on which files to run them. # # See here ( https://pre-commit.com/#install ) on how to install the # pre-commit framework. # # To run all the hooks specified in this file manually, you can do: # $ pre-commit run # # To run some hooks and skip others, you can use environment variable SKIP: # $ SKIP=flake8,isort pre-commit run # # To install the pre-commit framework in the repository in order to run the # hooks on every commit, do: # $ pre-commit install # # After installing the pre-commit framework, you can skip running all # pre-commit hooks using --no-verify, or some using SKIP. # $ git commit --no-verify ... # $ SKIP=flake8,isort git commit ... # # In case some of these hooks don't work for you, you can make the SKIP # setting permanent by: # - setting SKIP in your environment # (this will affect all repositories where it is set) # - setting SKIP in .git/hooks/pre-commit by adding "export SKIP=..." # (this will affect only this repository, but it may have to be re-added # if .git/hooks/pre-commit is regenerated) # # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks minimum_pre_commit_version: 3.2.0 default_install_hook_types: [pre-commit, commit-msg] repos: - repo: https://github.com/psf/black-pre-commit-mirror rev: 25.1.0 hooks: - id: black types_or: [file] files: 'gdb/.*\.py(\.in)?$' - repo: https://github.com/pycqa/flake8 rev: 7.2.0 hooks: - id: flake8 types_or: [file] # Run this for (in glob notation): # # - gdb/gdb-gdb.py.in # - gdb/*.py # - gdb/python/**/*.py # - gdb/testsuite/*.py # files: '^gdb/(gdb-gdb\.py\.in|[^/]+\.py|python/.+\.py|testsuite/[^/]+\.py)$' args: [--config, gdb/setup.cfg] - repo: https://github.com/pycqa/isort rev: 6.0.1 hooks: - id: isort types_or: [file] files: 'gdb/.*\.py(\.in)?$' - repo: https://github.com/codespell-project/codespell rev: v2.4.1 hooks: - id: codespell files: '^(gdbsupport|gdbserver|gdb/(tui|target|data-directory|po|system-gdbinit|mi|syscalls|arch|regformats|compile|python|guile|config|unittests|cli|testsuite/gdb.(ctf|dap|debuginfod|gdb|go|guile|mi|modula2|objc|opencl|opt|pascal|perf|replay|reverse|rocm|server|stabs|testsuite|tui|xml)))/' args: [--config, gdb/contrib/setup.cfg] - repo: local hooks: - id: check-include-guards name: check-include-guards language: python entry: gdb/check-include-guards.py # All gdb header files, but not headers in the test suite. files: '^(gdb(support|server)?)/.*\.h$' exclude: '.*/testsuite/.*' - id: codespell-log name: codespell-log language: script entry: gdb/contrib/codespell-log.sh verbose: true always_run: true stages: [commit-msg]