# Commitly Skill Use this skill when you need to commit and/or push changes across multiple git repositories in the monorepo. ## What is Commitly? Commitly is a Babashka script located at `commitly/commitly` that commits and pushes changes across all modified git subrepositories in the ajet-industries monorepo. ## Usage ```bash ./commitly/commitly [-p] ``` ### Options - `-p` - Push changes after committing. If no commit message is provided with `-p`, it will skip committing and just push all subrepos. ### Examples **Commit all modified repos with a message:** ```bash ./commitly/commitly "fix: update configuration" ``` **Commit and push all modified repos:** ```bash ./commitly/commitly -p "feat: add new feature" ``` **Just push all repos (no commit):** ```bash ./commitly/commitly -p ``` ## How It Works 1. **Discovery**: Scans the current directory for subdirectories containing `.git` folders 2. **Detection**: Checks each repository for uncommitted changes using `git status --porcelain` 3. **Commit**: Runs `git add -A` and `git commit -m ""` for each modified repo 4. **Push**: If `-p` flag is present, runs `git push` for each successfully committed repo (or all repos if no message provided) ## When to Use Use commitly when you've made changes across multiple services (service-manager, www, gateway, etc.) and want to commit them all with the same message, rather than cd-ing into each directory individually. ## Architecture Context The monorepo contains multiple independent git repositories: - `service-manager/` - Orchestration service - `www/` - Dashboard website - `gateway/` - Nginx reverse proxy - `commitly/` - This tool itself - `just-vibes/` - Other projects Each has its own `.git` directory and is deployed independently via Gitea Actions when pushed to main. ## Error Handling - If any repository fails to commit, commitly exits with code 1 and reports which repos failed - If any repository fails to push (when `-p` is used), commitly exits with code 1 and reports which repos failed - Repos are processed independently - one failure doesn't stop others from being processed ## Requirements - Babashka must be installed (`bb` command available) - The script must be executable: `chmod +x commitly/commitly` - Each subrepo must have a git remote configured for pushing