https://github.com/mehranzand/repofleet
RepoFleet is an issue-centered CLI tool for managing Git workflows across multiple repositories.
https://github.com/mehranzand/repofleet
cli git terminal
Last synced: 8 days ago
JSON representation
RepoFleet is an issue-centered CLI tool for managing Git workflows across multiple repositories.
- Host: GitHub
- URL: https://github.com/mehranzand/repofleet
- Owner: mehranzand
- License: mit
- Created: 2026-06-27T20:15:38.000Z (11 days ago)
- Default Branch: main
- Last Pushed: 2026-06-28T02:35:09.000Z (10 days ago)
- Last Synced: 2026-06-28T03:10:33.259Z (10 days ago)
- Topics: cli, git, terminal
- Language: Go
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

RepoFleet is an issue-centered CLI tool for managing Git workflows across multiple repositories.
When a feature spans multiple services, RepoFleet lets you create one issue context, branch all repos together, run git commands across them in parallel, and track every open MR/PR — without switching directories.
---
## Commands
```
repofleet
├── repo
│ ├── add Add a repository to a workspace
│ ├── remove Remove a repository from a workspace
│ └── list List repositories in the current workspace
├── git [git args...] Run any git command across all workspace repos
└── issue
├── create Create an issue context across selected repos
├── list List all issue contexts
├── switch Switch all repos to the issue branch
├── sync Fetch and rebase all repos for the current issue
├── push Push all issue branches to their remotes
├── status Show status dashboard for the current issue
└── archive Archive a completed issue context
```
---
## Architecture
Three layers — each with one job, depending only on the layer below.
```
cmd/repofleet/main.go binary entry point; version via ldflags
│
commands/ Cobra CLI layer — parse flags, call internal, print output
├── root/ wires factory + registers all subcommands
├── factory/ dependency injection: Config, GitRunner, IO
├── repo/
├── gitcmd/
└── issuecmd/
│
internal/ business logic — compiler-enforced, not importable outside
├── config/ Workspace + Repo types; YAML persistence (~/.config/repofleet/)
├── issue/ issue context entity; per-issue YAML state
├── git/ concurrent git runner (one goroutine per repo)
└── iostreams/ injectable IO + ANSI color helpers
```
## Getting Started
**Install Go** (if not already installed):
```bash
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
```
**Build:**
```bash
go mod tidy
go build -ldflags="-X main.version=0.1.0" -o repofleet ./cmd/repofleet
```
**Run:**
```bash
./repofleet
```