Skip to content

user4302/goro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

58 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Goro β€” Git Ops Repo Orchestrator

Version License Python Platform

πŸš€ A blazing-fast Textual TUI for managing and syncing dozens of Git repositories at once β€” think lazygit, but for your entire workspace.

Goro screenshot/demo

Features ✨

  • Bulk Repository Management - Add, edit, rename, and remove multiple repositories interactively
  • Live Status Grid - Real-time display of branch, ahead/behind, and dirty indicators for all repos
  • One-Click Sync Operations - Bulk sync (add β†’ commit β†’ pull β†’ push) for selected or all repositories
  • Flexible Repository Paths - Support for any repository path including %APPDATA%, client folders, external drives
  • Real-time Command Output - Live progress bars and detailed command feedback
  • Full CLI Fallback - Complete command-line interface (goro sync-all, goro status my-repo, etc.)
  • Cross-Platform Support - Works seamlessly on Windows, macOS, and Linux
  • Intuitive Keyboard Shortcuts - Efficient TUI navigation with quick access keys

Tech Stack / Built With πŸ› οΈ

Textual Typer Pydantic Rich

  • Textual - Modern Python TUI framework for rich terminal interfaces
  • Typer - Modern CLI framework for beautiful command-line interfaces
  • Pydantic - Data validation using Python type annotations
  • Rich - Rich text and beautiful formatting in the terminal
  • Asyncio - Concurrent Git operations for optimal performance
  • Hatch - Modern Python project management and packaging

Prerequisites

  • Python 3.8 or higher
  • Git installed and available in PATH
  • Terminal that supports ANSI colors and modern terminal features

Installation πŸ“₯

Option 1: Install from PyPI (Recommended)

pip install goro
# or using uv (faster)
uv tool install goro

Option 2: Install from Source

git clone https://gitlab.com/user4302_Projects/coding/python/textual/goro.git
cd goro
pip install -e ".[dev]"

Usage / Quick Start ⚑

Launch the Interactive TUI

goro                      # launches the interactive TUI instantly

CLI Commands

# Initialize configuration
goro init

# Check status of all repositories
goro status

# Check status of specific repository
goro status my-repo

# Sync all repositories
goro sync-all

# Sync specific repository
goro sync my-repo

# Edit repository configuration
goro edit my-repo --name new-name --path /new/path

TUI Quick Keys

Key Action
a Add repository
s / S Sync selected β€’ all repos
t Show detailed git status
F2 Edit / rename repository
c Clear logs
q Quit

Project Structure πŸ“‚

goro/
β”œβ”€β”€ src/goro/                 # Main package
β”‚   β”œβ”€β”€ cli.py               # Command-line interface
β”‚   β”œβ”€β”€ config.py            # Configuration management
β”‚   β”œβ”€β”€ commands/            # CLI command implementations
β”‚   β”‚   β”œβ”€β”€ edit.py          # Repository editing commands
β”‚   β”‚   β”œβ”€β”€ status.py        # Status checking commands
β”‚   β”‚   └── sync.py          # Synchronization commands
β”‚   └── tui/                 # Textual TUI components
β”‚       β”œβ”€β”€ app.py           # Main TUI application
β”‚       β”œβ”€β”€ css/             # Styling and themes
β”‚       β”œβ”€β”€ dialogs/         # Modal dialogs
β”‚       β”œβ”€β”€ utils.py         # Utility functions
β”‚       └── widgets/          # Custom UI widgets
β”œβ”€β”€ pyproject.toml           # Project configuration
β”œβ”€β”€ README.md               # This file
β”œβ”€β”€ CHANGELOG.md            # Version history
β”œβ”€β”€ CONTRIBUTING.md         # Development guidelines
└── ROADMAP.md              # Future development plans

Configuration πŸ”§

Goro stores configuration in ~/.goro/config.yaml by default. The configuration includes:

  • Repository names and paths
  • Plugin configurations
  • Display preferences
  • Git operation settings

Configuration is automatically created on first run.

Development / Running Locally πŸ—οΈ

# Clone and enter
git clone https://gitlab.com/user4302_Projects/coding/python/textual/goro.git
cd goro

# Recommended: use uv (super fast)
uv venv
source .venv/bin/activate   # Linux/macOS
# .venv\Scripts\activate    # Windows PowerShell

# Install editable with dev dependencies
uv pip install -e ".[dev]"   # or: pip install -e ".[dev]"

# Launch the app while developing
uv run goro                  # picks up your local changes instantly

Development Tools

# Format code
black src/
isort src/

# Type checking
mypy src/

# Run tests
pytest

# Build package
hatch build

Testing πŸ§ͺ

# Run all tests
pytest

# Run with coverage
pytest --cov=goro

# Run specific test file
pytest tests/test_config.py

Building for Production 🏭

# Build the package
hatch build

# Build produces wheel in dist/
# dist/goro-0.5.1-py3-none-any.whl

Deployment πŸš€

Goro is distributed via PyPI and can be installed using standard Python package managers. For system-wide deployment:

# Using pip
pip install goro

# Using uv (recommended for speed)
uv tool install goro

# Using conda (if available)
conda install -c conda-forge goro

Contributing 🀝

We welcome contributions! Please read CONTRIBUTING.md for detailed guidelines.

Important: For any questions, bug reports, feature requests, or security concerns, please open an issue on GitLab: https://gitlab.com/user4302_Projects/coding/python/textual/goro/-/issues

No email or direct messaging support is available.

License πŸ“„

MIT

This project is licensed under the MIT License - see the LICENSE file for details.

Support & Contact πŸ‘‹

For any questions, bug reports, feature requests, or security concerns, please open an issue on GitLab: https://gitlab.com/user4302_Projects/coding/python/textual/goro/-/issues

No email or direct messaging support is available.

Project Homes

Platform Purpose Link
GitLab Source of truth β€’ Issues β€’ MRs β€’ CI/CD https://gitlab.com/user4302_Projects/coding/python/textual/goro
GitHub Mirror for discoverability & extra stars https://github.com/user4302/goro

Please file issues and feature requests on GitLab β€” that's where I actively track and fix everything.
GitHub mirror is kept in sync automatically.

Acknowledgments πŸ™

  • Built with Textual - the modern Python TUI framework
  • Inspired by tools like lazygit and gitui
  • Thanks to all contributors who help make Goro better!

⭐ Star on whichever platform you prefer β€” every star helps!
(If you star both, I won't complain πŸ˜‰)

About

Mirror of GitLab project goro https://gitlab.com/user4302_Projects/coding/python/textual/goro

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors