howmanysmall
All work

Repository automation / Rust

pullhook

Repository automation should be invisible when nothing changed and dependable when it did.

Role
Creator and maintainer
Language
Rust
Focus
Rust · CLI · automation
This site uses pullhook to react to dependency changes without running setup work after every pull.

The problem

Repositories often come with a sentence everyone eventually ignores: “If this file changed, remember to run that command.” The result is stale dependencies, confusing failures, or a setup command run after every pull whether it is needed or not.

pullhook turns that sentence into repository configuration. It looks at what changed during a pull and runs only the matching commands.

The approach

The tool is written in Rust and distributed for macOS, Linux, and Windows. Its useful behavior is deliberately narrow: detect changed paths, match configured rules, run commands, and make the result legible. Integration tests cover execution and terminal output because a small automation tool still needs predictable failure modes.

This repository uses pullhook itself. That keeps its configuration format grounded in the ordinary work it is meant to remove.

What it demonstrates

  • Cross-platform CLI design and distribution.
  • Careful boundaries around command execution.
  • Integration testing for output and behavior.
  • Dogfooding repository automation in active projects.