• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sgerrand / git_hoox
98%

Build:
DEFAULT BRANCH: main
Repo Added 27 May 2026 03:44PM UTC
Token 7ETc2xhNlTXrxNIi4bgFE3AZ9xxhAbcyO regen
Build 79 Last
Files 28
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
Sync Branches
  • main
  • dependabot/github_actions/actions-22cf09a089
  • dependabot/github_actions/actions-6a98abd9ac
  • dependabot/github_actions/actions-77dee05d92
  • dependabot/github_actions/actions-7a5a078ad4
  • dependabot/github_actions/actions-9f1c31c749
  • dependabot/github_actions/actions-a17b1c2a7d
  • dependabot/github_actions/actions-f620df48e4
  • dependabot/github_actions/actions-fb369c98ee
  • dependabot/hex/elixir-8b2ac5cfc7
  • dependabot/hex/elixir-ac5bc953c7
  • feat/coloured-reporter
  • fix/hook-arg-injection
  • refactor/simplify-codebase
  • release-please--branches--main--components--git_hoox

12 Aug 2026 10:54AM UTC coverage: 98.131% (-0.2%) from 98.315%
31589465432

push

github

web-flow
refactor: simplify hooks, config, installer and doctor (#23)

* refactor(hooks): centralise command execution in Helpers

Every built-in hook hand-threaded `env: Helpers.env_opt(opts)` into
Cmd.run/3, and Test.exec/2 and Mix.exec/2 were byte-identical private
functions. Add Helpers.cmd/3 and Helpers.mix/2 so `:env` has a single
enforcement point, matching its three global siblings (`:files`,
`:timeout`, `:stage_fixed`), which the runner already enforces
centrally.

The `:args` NimbleOptions entry was copy-pasted into five hook
schemas with only the doc string differing; it now comes from
Helpers.args_schema/1.

Also drops two single-use resolver wrappers in Shell in favour of
direct captures, and swaps Test's two prefix/suffix regexes for
String.replace_prefix/3 and String.replace_suffix/3.

* perf(format): skip the worktree diff on check_only runs

`mix format --check-formatted` never writes, so the follow-up
`git diff --name-only` looking for files to re-stage could not find
anything the hook had modified. Return a bare `:ok` in that case and
save one git subprocess per commit.

This also stops a check_only run from re-staging unrelated unstaged
edits, which the previous `{:ok, changed}` return did whenever the
default `stage_fixed: true` was left in place.

While here, adopt Helpers.cmd/3 and Helpers.args_schema/1, and build
the argument list from a flag list instead of branching over the
whole list. Argument order is unchanged.

* refactor(installer): derive hook filenames from the stage list

The eight git stages were written out twice — as snake_case atoms in
Config.Schema and again as kebab-case strings in Installer — and the
atom-to-filename transform a third time, inline in the run task's
error message. Forgetting the Installer list meant no shim was
written, with nothing to catch it.

Add Schema.hook_filename/1 and Schema.hook_filenames/0 beside
parse_stage/1, and build Installer's list and the run task's message
from them. Schema.valid_stag... (continued)

74 of 75 new or added lines in 14 files covered. (98.67%)

630 of 642 relevant lines covered (98.13%)

28.7 hits per line

Relevant lines Covered
Build:
Build:
642 RELEVANT LINES 630 COVERED LINES
28.7 HITS PER LINE
Source Files on main
  • Tree
  • List 28
  • Changed 17
  • Source Changed 17
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
31589465432 main refactor: simplify hooks, config, installer and doctor (#23) * refactor(hooks): centralise command execution in Helpers Every built-in hook hand-threaded `env: Helpers.env_opt(opts)` into Cmd.run/3, and Test.exec/2 and Mix.exec/2 were byte-ident... push 12 Aug 2026 10:54AM UTC web-flow github
98.13
31574112157 main chore(main): release 0.5.0 (#12) Co-authored-by: release-mate[bot] <288917743+release-mate[bot]@users.noreply.github.com> push 12 Aug 2026 07:28AM UTC web-flow github
98.32
31574005342 main feat(reporter): coloured terminal reporter for hook runs (#18) * feat(reporter): add coloured terminal reporter for hook runs Add GitHoox.Reporter, a telemetry handler (sibling of GitHoox.Logger) that prints coloured per-hook and per-stage statu... push 12 Aug 2026 07:27AM UTC web-flow github
98.32
31518650958 main fix(hooks): block filename argument injection via -- terminator (#19) * fix(hooks): terminate mix argv with -- to block filename injection Built-in Format, Credo, and Test hooks appended git-supplied filenames to the mix argv with no options ter... push 11 Aug 2026 05:39PM UTC web-flow github
98.33
31405993456 main ci(deps): bump the actions group across 1 directory with 2 updates (#22) Bumps the actions group with 2 updates in the / directory: [actions/checkout](https://github.com/actions/checkout) and [coverallsapp/github-action](https://github.com/covera... push 10 Aug 2026 03:53PM UTC web-flow github
98.33
31405060184 main chore(deps-dev): bump stream_data in the elixir group (#20) Bumps the elixir group with 1 update: [stream_data](https://github.com/whatyouhide/stream_data). Updates `stream_data` from 1.3.0 to 1.4.0 - [Changelog](https://github.com/whatyouhide/... push 10 Aug 2026 03:43PM UTC web-flow github
98.33
30005083735 main ci(deps): bump the actions group across 1 directory with 4 updates (#17) * ci(deps): bump the actions group across 1 directory with 4 updates Bumps the actions group with 4 updates in the / directory: [actions/checkout](https://github.com/action... push 23 Jul 2026 11:57AM UTC web-flow github
98.33
29652457582 main chore(build): allow Dependabot commit messages to pass linting Dependabot commit messages are often longer than those generated by other authors. Updated the committed configuration to accommodate this. ``` ./committed Linting commits: * d116a30... push 18 Jul 2026 04:41PM UTC sgerrand github
98.33
27813360125 main chore(deps-dev): bump credo from 1.7.18 to 1.7.19 in the elixir group (#13) Bumps the elixir group with 1 update: [credo](https://github.com/rrrene/credo). Updates `credo` from 1.7.18 to 1.7.19 - [Release notes](https://github.com/rrrene/credo/... push 19 Jun 2026 08:00AM UTC web-flow github
98.33
27504091199 main ci(deps): bump actions/checkout from 6.0.2 to 6.0.3 in the actions group (#11) Bumps the actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 6.0.2 to 6.0.3 - [Release notes](http... push 14 Jun 2026 03:52PM UTC web-flow github
98.33
See All Builds (79)

Badge your Repo: git_hoox

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc