# GitHoox v0.1.0 - Table of Contents

> Git hooks in pure Elixir. Configurable file globs, per-hook options, built-in support for mix format, Credo, ExUnit, and Dialyzer.

## Pages

- [Changelog](changelog.md)
- [LICENSE](license.md)
- [GitHoox](readme.md)

## Modules

- [GitHoox.Config.Error](GitHoox.Config.Error.md): Structured errors returned by `GitHoox.Config.load/1`.

- Core
  - [GitHoox](GitHoox.md): Git hooks in pure Elixir. Configurable file globs, per-hook options,
built-in support for `mix format`, Credo, ExUnit, and Dialyzer.
  - [GitHoox.Config](GitHoox.Config.md): Load and validate `.git_hoox.exs`.
  - [GitHoox.Hook](GitHoox.Hook.md): Behaviour for git_hoox hooks.
  - [GitHoox.Runner](GitHoox.Runner.md): Execute hooks for a given stage.

- Git
  - [GitHoox.Git](GitHoox.Git.md): Shell out to `git` for file-state queries.
  - [GitHoox.Installer](GitHoox.Installer.md): Manage `.git/hooks/*` shim files.

- Built-in Hooks
  - [GitHoox.Hooks.Credo](GitHoox.Hooks.Credo.md): Runs `mix credo` against staged Elixir files.
  - [GitHoox.Hooks.Dialyzer](GitHoox.Hooks.Dialyzer.md): Runs `mix dialyzer --quiet`.
  - [GitHoox.Hooks.Format](GitHoox.Hooks.Format.md): Runs `mix format` against staged Elixir files.
  - [GitHoox.Hooks.Shell](GitHoox.Hooks.Shell.md): Escape hatch for arbitrary shell commands.
  - [GitHoox.Hooks.Test](GitHoox.Hooks.Test.md): Runs `mix test`.

## Mix Tasks

- Mix Tasks
  - [mix git_hoox.install](Mix.Tasks.GitHoox.Install.md): Install git_hoox shims.
  - [mix git_hoox.run](Mix.Tasks.GitHoox.Run.md): Execute git_hoox for a given stage.
  - [mix git_hoox.uninstall](Mix.Tasks.GitHoox.Uninstall.md): Remove only the shims git_hoox installed (identified by marker comment).
Restores the most recent `.backup.*` for each removed shim if present.

