{"id":22578758,"url":"https://github.com/gaskam/workspace","last_synced_at":"2025-04-12T20:51:43.993Z","repository":{"id":264227104,"uuid":"891602413","full_name":"gaskam/workspace","owner":"gaskam","description":"Workspace is a powerful application designed to install and manage all your repositories in your chosen destination.","archived":false,"fork":false,"pushed_at":"2025-04-03T17:40:59.000Z","size":182,"stargazers_count":12,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T20:51:37.187Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gaskam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-20T16:12:38.000Z","updated_at":"2025-03-25T23:07:00.000Z","dependencies_parsed_at":"2024-12-08T05:04:01.809Z","dependency_job_id":"d03ca39f-6d3a-47fe-9d64-92bb44fe7d52","html_url":"https://github.com/gaskam/workspace","commit_stats":null,"previous_names":["gaskam/workspace"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaskam%2Fworkspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaskam%2Fworkspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaskam%2Fworkspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaskam%2Fworkspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gaskam","download_url":"https://codeload.github.com/gaskam/workspace/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631728,"owners_count":21136560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-08T05:01:45.919Z","updated_at":"2025-04-12T20:51:43.985Z","avatar_url":"https://github.com/gaskam.png","language":"Zig","readme":"\u003ch1 align=\"center\"\u003eWorkspace\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/v/release/gaskam/workspace?display_name=tag\u0026style=for-the-badge\" alt=\"GitHub Release\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/gaskam/workspace?style=for-the-badge\" alt=\"GitHub License\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A powerful Zig-based tool to manage all your GitHub repositories with ease\n\u003c/p\u003e\n\n## ✨ Features\n\n- 🚀 **Fast \u0026 Efficient** - Built with Zig for maximum performance\n- 📦 **Bulk Operations** - Clone all repositories from any GitHub organization or user\n- 🔄 **Concurrent Processing** - Handle multiple repositories simultaneously\n- 🧹 **Cleanup Tools** - Prune unwanted repositories automatically\n- 🛠️ **Easy Setup** - Simple installation process for both Windows and Linux\n\n## 📜 Table of Contents\n- [Quick Start](#-quick-start)\n- [Usage](#-usage)\n  - [Example](#example)\n- [Development](#️️-development)\n  - [Prerequisites](#prerequisites)\n  - [Steps](#steps)\n- [Contributing](#-contributing)\n- [License](#license)\n- [Star History](#star-history)\n\n## 🚀 Quick Start\n\n\u003cimg src=\"https://img.shields.io/github/downloads/gaskam/workspace/total?style=for-the-badge\" alt=\"GitHub Downloads\"\u003e‎ \n\nChoose your platform and run the installation command:\n\n🐧 Linux\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/gaskam/workspace/refs/heads/main/install.sh | bash\n```\n\n🪟 Windows PowerShell\n\n```bash\nirm raw.githubusercontent.com/gaskam/workspace/refs/heads/main/install.ps1 | iex\n```\n\nThis script will:\n- Install Workspace.\n- Add it to your PATH.\n- Ensure all required dependencies are installed.\n\n## 📖 Usage\nWorkspace can be called with the following arguments:\n\nFor **cloning** repositories from a GitHub organization or user:\n```bash\nworkspace clone \u003corganization/user\u003e [destination] [--flags]\n```\n\nFlags:\n| Flag | Description |\n|------|-------------|\n| `--limit`, `-l` | Limit the number of repositories to clone |\n| `--processes`, `-p` | Limit the number of concurrent processes -\u003e Default is the number of logical CPUs - 1 |\n| `--prune` | Delete repositories that do not belong to current user |\n\nFor showing **help**:\n```bash\nworkspace help\n```\n\nFor showing the **version**:\n```bash\nworkspace version\n```\n\nFor **updating** Workspace:\n```bash\nworkspace update\n```\n\nFor **uninstalling** Workspace:\n```bash\nworkspace uninstall\n```\n\n### Example\nClone repositories from an organization\n\n```bash\n# Clone first 10 repos from ziglang\nworkspace clone ziglang ./workspace -l 10\n\n# Clone all repos with 8 concurrent processes\nworkspace clone microsoft ./code -p 8\n\n# Clone and clean up old repos\nworkspace clone gaskam ./projects --prune\n```\n\n\u003e [!NOTE] \n\u003e Note that if you provide `--limit` and `--prune` flags, we'll delete \n\u003e the repositories that no longer exist once the limit is reached.\n\u003e\n\u003e This is useful for keeping your workspace clean and up-to-date.\n\n\u003e [!WARNING]\n\u003e If you use the `--processes` flag with a number higher than your \n\u003e number of CPU threads, you may experience performance issues.\n\u003e\n\u003e This can be useful if you want to override the default number of \n\u003e simultaneous processes, in order to go faster. It *will* be faster \n\u003e than the default value, but at the cost of a higher ressource usage.\n\n## Benchmarks\nThis benchmark was run on a **GitHub codespaces** instance with **4 vCPUs** and **16GB of RAM**.\n\n\u003e [!NOTE] GitHub Codespaces is quite slow, since it clones with just one process.\n\nWe're using **hyperfine** to measure the time taken to clone each **repositories** from the specified organization.\n\nRealized on **2024-12-03** with the **1.2.2** version of Workspace.\n\n| Organization | Repositories Cloned | Time Taken [s]   |\n|--------------|---------------------|------------------|\n| ziglang      | 24                  | 103.458 ± 4.833  |\n| gaskam       | 11                  | 3.454 ± 0.185    |\n\n## 🛠️ Development\nFor developers who want to contribute or build Workspace from source:\n\n### Prerequisites\n| Tool          | Purpose                         | Installation                                        |\n|---------------|---------------------------------|-----------------------------------------------------|\n| ⚡ Zig         | Building the application        | [Download](https://ziglang.org/download/)           |\n| 🐙 GitHub CLI | Interacting with GitHub         | [Download](https://github.com/cli/cli#installation) |\n| 📦 Git        | Git, forever and ever           | [Download](https://git-scm.com/downloads)           |\n\n### Steps\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/gaskam/workspace.git\ncd workspace\n```\n\n2. Build the application:\n\n```bash\nzig build\n```\n\n3. Run the built binary:\n\n```bash\n./zig-out/bin/workspace -h\n```\n## 🤝 Contributing\nContributions are welcome! Feel free to:\n\n* 🐛 Report bugs\n* 💡 Suggest new features\n* 📝 Improve documentation\n* 🔧 Submit pull requests\n\n## License\n\nWorkspace is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.\n\nMade with ❤️ by Gaskam\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#gaskam/workspace\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=gaskam/workspace\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=gaskam/workspace\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=gaskam/workspace\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e","funding_links":[],"categories":["Fundamentals"],"sub_categories":["Utility"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaskam%2Fworkspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaskam%2Fworkspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaskam%2Fworkspace/lists"}