Since v6: - Converted 'enum hookdir_opt' to UPPER_SNAKE - Coccinelle fix in the hook destructor - Fixed a bug where builtin/hook.c wasn't running the default git config setup and therefore missed hooks in core.hooksPath when it was set. (These hooks would still run except when invoked by 'git hook run' as the config was called by the processes which invoked the hook library.) CI run: https://github.com/nasamuffin/git/actions/runs/436864964 Thanks! - Emily Emily Shaffer (17): doc: propose hooks managed by the config hook: scaffolding for git-hook subcommand hook: add list command hook: include hookdir hook in list hook: respect hook.runHookDir hook: implement hookcmd.<name>.skip parse-options: parse into strvec hook: add 'run' subcommand hook: replace find_hook() with hook_exists() hook: support passing stdin to hooks run-command: allow stdin for run_processes_parallel hook: allow parallel hook execution hook: allow specifying working directory for hooks run-command: add stdin callback for parallelization hook: provide stdin by string_list or callback run-command: allow capturing of collated output hooks: allow callers to capture output .gitignore | 1 + Documentation/Makefile | 1 + Documentation/config/hook.txt | 19 + Documentation/git-hook.txt | 117 +++++ Documentation/technical/api-parse-options.txt | 5 + .../technical/config-based-hooks.txt | 355 +++++++++++++++ Makefile | 2 + builtin.h | 1 + builtin/bugreport.c | 4 +- builtin/fetch.c | 1 + builtin/hook.c | 176 ++++++++ builtin/submodule--helper.c | 2 +- command-list.txt | 1 + git.c | 1 + hook.c | 416 ++++++++++++++++++ hook.h | 154 +++++++ parse-options-cb.c | 16 + parse-options.h | 4 + run-command.c | 85 +++- run-command.h | 31 ++ submodule.c | 1 + t/helper/test-run-command.c | 46 +- t/t0061-run-command.sh | 37 ++ t/t1360-config-based-hooks.sh | 256 +++++++++++ 24 files changed, 1717 insertions(+), 15 deletions(-) create mode 100644 Documentation/config/hook.txt create mode 100644 Documentation/git-hook.txt create mode 100644 Documentation/technical/config-based-hooks.txt create mode 100644 builtin/hook.c create mode 100644 hook.c create mode 100644 hook.h create mode 100755 t/t1360-config-based-hooks.sh -- 2.28.0.rc0.142.g3c755180ce-goog