{"id":15814021,"url":"https://github.com/cchexcode/hoox","last_synced_at":"2026-01-22T05:33:08.036Z","repository":{"id":250084006,"uuid":"833426780","full_name":"cchexcode/hoox","owner":"cchexcode","description":"Git hooks done right.","archived":false,"fork":false,"pushed_at":"2025-01-21T04:45:23.000Z","size":740,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-13T09:57:42.546Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cchexcode.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-25T03:16:59.000Z","updated_at":"2025-01-21T04:45:26.000Z","dependencies_parsed_at":"2024-07-25T04:31:40.885Z","dependency_job_id":"010091c6-4fad-49b7-9123-0e3ff11ae5c6","html_url":"https://github.com/cchexcode/hoox","commit_stats":null,"previous_names":["replicadse/hoox","cchexcode/hoox"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/cchexcode/hoox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cchexcode%2Fhoox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cchexcode%2Fhoox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cchexcode%2Fhoox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cchexcode%2Fhoox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cchexcode","download_url":"https://codeload.github.com/cchexcode/hoox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cchexcode%2Fhoox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28656281,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-05T04:21:40.918Z","updated_at":"2026-01-22T05:33:08.021Z","avatar_url":"https://github.com/cchexcode.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hoox\n\n![](hoox.png)\n\n`hoox` is an application / library that allows users to manage git hooks as part of the repository.\n\n## Workflow\n\n### CLI install\n\nThe Git hooks will contain calls to the `hoox` cli, therefore making it necessary that the `hoox` CLI is installed in order to execute the Git hooks. If it is not installed, the hooks will fail and prevent the operation (by default).\n\n### Repo initialization\n\nIn order to initialize a repo you can either:\n\n- Add hoox to the dev-dependencies of the crate you're working with (if you're working on a rust project)\n  ```bash\n  cargo add hoox --dev\n  ```\n  This command installs hoox in the git repository during the build process (using a custom `build.rs`) even when it's not in the root `Cargo.toml`. It moves up the directory path, starting from the `OUT_DIR` env variable during build (usually the `target` folder), to find the first folder containing a `.git` subfolder.\n- OR install hoox manually into the Git folder with\n  ```bash\n  hoox init\n  ```\n  This method works the same way as the method mentioned above although it does not use the `OUT_DIR` env variable that is present during build but it uses the current working directory of the shell (`cwd`).\n\n### Run hooks manually\n\nTo run hooks manually, use:\n\n```bash\nhoox run $HOOK_NAME\n```\n\nIf the hook `$HOOK_NAME` was _not_ specified in the `.hoox.toml` file, this command will fail. In order to make the command succeed and ignore the missing hook definition, pass the `--ignore-missing` parameter.\n\n## Example\n\n```yaml\nversion: \"0.0.0\"\nverbosity: all\n\n.cargo: \u0026cargo !inline |-\n  set -e\n  set -u\n  cargo +nightly fmt --all -- --check\n  cargo test --all\n\nhooks:\n  \"pre-commit\":\n    # use YAML anchor\n    - command: *cargo\n    # use inline command\n    - command: !inline |-\n        cargo doc --no-deps\n      verbosity: stderr\n      severity: warn\n    # reference a script file (path is relative to Git repo root)\n    - command: !file \"./hello_world.sh\"\n    # reference a script file with custom program\n    - command: !file \"./hello_world.py\"\n      program: [\"python3\", \"-c\"]\n      verbosity: stderr\n      severity: error\n\n  \"pre-push\":\n    # re-use YAML anchor\n    - command: *cargo\n\n  \"prepare-commit-msg\":\n    # write to $COMMIT_MSG_FILE ($1) which is going to be the template commit message for this commit\n    # which is subsequently opened in the $EDITOR program.\n    # $0 = path to \"hoox.yaml\" file in any hook\n    - command: !inline |-\n        COMMIT_MSG_FILE=$1\n        echo \"Work in progress\" \u003e $COMMIT_MSG_FILE\n```\n\n### Available hooks\n\n- `applypatch-msg`\n- `commit-msg`\n- `post-applypatch`\n- `post-checkout`\n- `post-commit`\n- `post-merge`\n- `post-receive`\n- `post-rewrite`\n- `post-update`\n- `pre-applypatch`\n- `pre-auto-gc`\n- `pre-commit`\n- `pre-push`\n- `pre-rebase`\n- `pre-receive`\n- `prepare-commit-msg`\n- `push-to-checkout`\n- `sendemail-validate`\n- `update`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcchexcode%2Fhoox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcchexcode%2Fhoox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcchexcode%2Fhoox/lists"}