repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: - id: check-added-large-files args: ['--maxkb=500'] - id: check-merge-conflict - id: check-case-conflict - id: detect-private-key - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/guettli/sync-branch rev: v0.0.11 hooks: - id: sync-branch - repo: local hooks: - id: check-no-binary name: check for binary files (build artifacts, databases) language: system entry: bash -c 'cd "$(git rev-parse --show-toplevel)" && scripts/check_no_binary.sh' pass_filenames: false always_run: true - id: forbidden-files-hook name: check for forbidden home-directory files language: system entry: bash -c 'cd "$(git rev-parse --show-toplevel)" && task check-hygiene' pass_filenames: false always_run: true - id: dart-check name: dart format (autofix) + check-fast (parallel) language: system entry: bash -c 'cd "$(git rev-parse --show-toplevel)" && dagger call --progress=plain -q -m ci --source=. check-fast' pass_filenames: false always_run: true - id: ci-no-direct-dagger name: check for direct dagger calls in workflows (use Task instead) language: system entry: "bash -c 'git --no-pager grep \"dagger call\" .forgejo/workflows/ && echo \"ERROR: Direct dagger calls found in workflows. Use Taskfile instead.\" && exit 1 || exit 0'" pass_filenames: false always_run: true - id: dagger-progress-plain name: ensure all dagger calls use --progress=plain language: system entry: "bash -c 'git --no-pager grep \"dagger call\" -- \":!.pre-commit-config.yaml\" | grep -v \"\\-\\-progress=plain\" && echo \"ERROR: All dagger calls must include --progress=plain\" && exit 1 || exit 0'" pass_filenames: false always_run: true - id: ci-image-exists name: verify container images in ci/main.go are reachable language: system entry: bash -c 'cd "$(git rev-parse --show-toplevel)" && task check-ci-images' pass_filenames: false files: ^(ci/main\.go|\.fvmrc)$ - id: dagger-versions-aligned name: verify Dagger version is consistent across dagger.json, Dockerfile and DAGGER.md language: system entry: bash -c 'cd "$(git rev-parse --show-toplevel)" && scripts/check_dagger_versions.sh' pass_filenames: false files: ^(ci/dagger\.json|\.forgejo/Dockerfile|DAGGER\.md)$