diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c1a39c1..6a6c3cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,6 +8,7 @@ default_language_version: default_stages: [pre-commit] fail_fast: false +default_install_hook_types: [pre-commit, pre-push, post-commit, post-merge, post-rewrite] repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 @@ -354,6 +355,30 @@ repos: language: system files: \.(md|markdown)$ + - id: todo-closer + name: close Todo trailer tasks + entry: scripts/todo_hooks.sh closer + language: system + stages: [post-commit] + always_run: true + pass_filenames: false + + - id: todo-import-pr-merge + name: import PR Todo sections (pull) + entry: scripts/todo_hooks.sh import-pr post-merge + language: system + stages: [post-merge] + always_run: true + pass_filenames: false + + - id: todo-import-pr-rewrite + name: import PR Todo sections (pull --rebase) + entry: scripts/todo_hooks.sh import-pr post-rewrite + language: system + stages: [post-rewrite] + always_run: true + pass_filenames: false + # Every dependency on its ecosystem's newest STABLE release, exact-pinned # so the question is mechanically answerable at all. # diff --git a/scripts/todo_hooks.sh b/scripts/todo_hooks.sh new file mode 100755 index 0000000..168dc7b --- /dev/null +++ b/scripts/todo_hooks.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# Shim: forward to the shared todo git hooks in ~/src/utils (silent if absent). +set -euo pipefail + +readonly SHARED="${UTILS_ROOT:-$HOME/src/utils}/scripts/todo_hooks.sh" + +main() { + [[ -f "$SHARED" ]] || exit 0 + exec bash "$SHARED" "$@" +} + +main "$@"