Skip to content

Notgnoshi/herostratus

Repository files navigation

Herostratus

lint workflow release workflow code coverage

Herostratus n. 1. An ancient Greek known for seeking fame through crime and destruction. 2. A Git repository achievements engine.

Inspired by https://github.com/someteam/acha.

Usage

Trying it out

git clone git@github.com:Notgnoshi/herostratus.git
cd herostratus
cargo run --release -- check .
cargo run --release -- check . origin/test/fixup

The check subcommand is stateless. It reads/writes no configuration, and can not fetch from the upstream remote. Read on for stateful configuration that enables running and re-running Herostratus on a group of repositories.

Tip

--release builds are recommended for significantly better performance!

Setting it up

The following example configures Herostratus to run on its own test/simple and test/fixup branches.

# Configure Herostratus to track two branches of its own repository
$ herostratus add git@github.com:Notgnoshi/herostratus.git test/simple
$ herostratus add git@github.com:Notgnoshi/herostratus.git test/fixup
# Check all configured branches for achievements
$ herostratus check-all
# Generate a static HTML site with the granted achievements
$ herostratus render
$ xdg-open ./public/index.html

These commands write their configuration and clone Git repositories to ~/.local/share/herostratus/ by default. See herostratus --help for more options.

What achievements are there?

See RULES.md for a list of achievements.

Development

See CONTRIBUTING.md and quickstart.md, as well as the ARCHITECTURE.md.

Benchmarks

Name # Commits # Achievements Time Time per commit
git 80620 177 34.80s 431.64µs
herostratus 463 3 69.98ms 151.14µs

About

An ancient Greek known for seeking fame through crime and destruction. Also a Git repository achievements engine.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors