Skip to content

Repository files navigation

tools

CI/CD

Reusable tooling for GitHub maintenance, project bootstrapping, and stack-specific developer workflows.

Features

  • Shell scripts for GitHub automation: cleanup, hygiene, and security scanning
  • Reusable Makefile fragments for Vue, Nuxt, and FastAPI projects
  • Docker templates organized by stack
  • devkit — Rust CLI/TUI to apply stack templates interactively
  • Local web UI (bun run ui) — the same commands as a browser form, generated from the command registry (React + shadcn/ui)
  • Destructive commands support --dry-run to preview before executing
  • Bats test suite and ShellCheck for all shell scripts

Prerequisites

Usage

make help    # list all available targets
make test    # run the Bats test suite
make lint    # run ShellCheck

Always preview destructive operations with --dry-run:

make purge-actions ARGS="--repo owner/repo --dry-run"
make purge-release ARGS="--repo owner/repo --keep-latest 3 --dry-run"

→ Full usage guide: docs

Running in Docker

Brings up the web UI with the source bind-mounted, so a save in your editor restarts the server:

bun run docker:up      # build + start, waits for the healthcheck
bun run docker:logs    # follow the server output
bun run docker:down    # stop

Handy while it runs:

bun run docker:sh                          # shell inside the container
bun run docker:cli -- benchmark models      # run the CLI in the container

The host port comes from TOOLS_UI_PORT (default 3030); the container side is fixed, so TOOLS_UI_PORT=3035 bun run docker:up moves only the published port. TOOLS_TARGET=runtime builds the self-contained image — no mounts, no hot reload, unprivileged user — instead of the development one.

Credentials are never baked into the image. Provide them through .env, the environment, or the UI's own Environment page.

The published port is bound to 127.0.0.1 on purpose. This server starts any command in the registry, so reaching the port is equivalent to running commands on the host. Keep it on loopback.

Documentation

Full documentation is available at https://kevindebenedetti.github.io/tools/. It is generated from the docs/ directory and published automatically on push.

About

A collection of reusable tools to initialize, configure, and automate projects.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages