commitly/README.md
2026-01-05 02:13:30 -05:00

1.5 KiB

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

# Commit changes across all modified subrepos
./commitly "Your commit message here"

Requirements

  • Babashka installed and available on PATH

Installation

# 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.