# commitly A CLI tool for making commits to many subrepos after a distributed change. ## Overview `commitly` is a Babashka/Clojure CLI tool designed for monorepo workflows where multiple independent git repositories coexist. When you make changes that span multiple subrepos (e.g., updating documentation, shared configuration, or architecture changes), `commitly` automates the process of committing those changes across all affected repositories. ## Features - Automatically detects which subrepos have uncommitted changes - Creates commits with a single message across all modified subrepos - Reports commit status for each subrepo - Written in Babashka for fast startup and easy distribution ## Usage ```bash # Commit changes across all modified subrepos ./commitly "Your commit message here" ``` ## Requirements - [Babashka](https://babashka.org/) installed and available on PATH ## Installation ```bash # Make the script executable chmod +x commitly # Optionally, symlink to a directory in your PATH ln -s $(pwd)/commitly /usr/local/bin/commitly ``` ## How It Works 1. Scans parent directory for git repositories 2. Checks each repository for uncommitted changes (staged or unstaged) 3. Commits changes in each modified repository with the provided message 4. Reports success/failure for each repository ## Use Case Perfect for monorepos containing multiple independent services (each with their own `.git` directory) where cross-cutting changes need to be committed atomically with consistent commit messages.