github-org-sync is a cross-platform desktop and command-line application built with Python 3.11+, PySide6, and the GitHub CLI. It provides a visual and automated way to discover, clone, and update all repositories belonging to any GitHub organization.
- Automatic Updates: Added automatic update checker on startup and manual check option in the Help menu. Downloads and installs updates directly from GitHub Releases without manual intervention.
- Cross-Platform Release Packages: Packaged native executables and binaries for Linux (
.tar.gz) and macOS (.zip) along with Windows (.zip). - Cross-platform spec configurations for PyInstaller.
- Open Existing Workspace Mode: Scan and inspect local Git repositories directly without specifying a GitHub organization name.
- Support for Non-GitHub Repositories: Safely scan and perform local Git operations (Fetch, Update, Open, etc.) on GitLab, Bitbucket, and other self-hosted/custom Git locations.
- Detected Organization Auto-fill: Automatically detects and populates the organization name if all scanned GitHub repositories belong to the same owner.
- Repository Grouping and Filtering: Filter repository views by hosting platforms and owners (e.g.
GitHub / my-org,GitLab / project). - Workspace-to-Org Verification: Instantly compare scanned local workspace repositories against any GitHub organization to highlight missing/extra repositories.
To run the application on Windows without installing Python:
- Download the release package (
github-org-sync-v1.3.2-windows-x64.zip) from the Releases page. - Extract the complete archive to a directory of your choice.
- Run
github-org-sync.exeinside the extracted folder.
Important: The application still requires external command-line tools to interact with Git and GitHub. Make sure you have installed:
- Git (verify with
git --version) - GitHub CLI (gh) (verify with
gh --version)
Before synchronizing private repositories, log in via the GitHub CLI:
gh auth login
gh auth status- Python 3.11+
- Git installed and on PATH.
- GitHub CLI (gh) installed and authenticated.
- Clone the repository:
git clone https://github.com/MatthiasLew/github-org-sync.git cd github-org-sync - Create and activate a virtual environment:
python -m venv .venv # On Windows: .venv\Scripts\activate # On Linux/macOS: source .venv/bin/activate
- Install dependencies and the package:
pip install -e .[dev]
Run the desktop GUI via:
python -m github_org_syncShow status of repositories:
python -m github_org_sync.cli status --org subactor --workspace C:\Users\Praca\fork\subactorSync (clone and update) repositories:
python -m github_org_sync.cli sync --org subactor --workspace C:\Users\Praca\fork\subactorAdd --dry-run to run without performing any local modifications.
Run the test suite using:
python -m pytest -qTo build a standalone executable on Windows:
.\scripts\build_windows.ps1The output executable will be placed in the dist/ directory.
