A CLI tool to clone or backup all repositories from a GitHub/GitLab/Bitbucket organization or user into a single directory.
ghorg is a command-line tool that clones or backs up all repositories from a GitHub organization, GitLab group, Bitbucket workspace, or user account into a single local directory. It solves the problem of manually cloning multiple repositories by automating the process across multiple SCM providers, including self-hosted instances.
Developers, DevOps engineers, and teams who need to efficiently clone, back up, or audit large sets of repositories for tasks like code searching, scripting, onboarding, or compliance.
Developers choose ghorg for its cross-platform support, powerful filtering options, and automation features, which save time and reduce manual effort when managing repository collections at scale.
Quickly clone or backup an entire org/users repositories into one directory - Supports GitHub, GitLab, Bitbucket, and more 🐇🥚
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports GitHub, GitLab, Bitbucket, Gitea, and Sourcehut, including self-hosted instances, as detailed in the provider setup sections, enabling unified cloning across diverse SCM ecosystems.
Allows selective cloning using regex, prefixes, topics, and ignore files like ghorgignore, providing precise control over which repositories are cloned, which is essential for large organizations.
Features reclone commands, an HTTP server, and cron integration for automating cloning tasks, making it ideal for backups, audits, and team onboarding without manual intervention.
Configurable concurrency (default 25) speeds up cloning by processing multiple repositories simultaneously, improving efficiency for large-scale operations.
Each SCM provider requires distinct token creation and configuration steps (e.g., GitHub PATs, GitLab read_api scope), which can be cumbersome and error-prone for users managing multiple platforms.
By default, ghorg cleans local directories on subsequent runs with git pull and git clean, risking data loss if the --no-clean flag isn't used, as explicitly warned in the README.
Some features, like --skip-archived, don't work on Bitbucket, and Sourcehut has limited functionality, leading to a fragmented experience across different providers.