https://github.com/vieolo/sirup
Multi-repo workspace management CLI -- The closest thing to a monorepo without being a monorepo
https://github.com/vieolo/sirup
cli go multirepo workspace
Last synced: 3 months ago
JSON representation
Multi-repo workspace management CLI -- The closest thing to a monorepo without being a monorepo
- Host: GitHub
- URL: https://github.com/vieolo/sirup
- Owner: Vieolo
- License: other
- Created: 2025-06-29T15:26:24.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-06-29T17:26:39.000Z (3 months ago)
- Last Synced: 2025-06-29T18:27:59.770Z (3 months ago)
- Topics: cli, go, multirepo, workspace
- Language: Go
- Homepage:
- Size: 8.79 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sirup v0.1.1
Multi-repo workspace manager -- The closest thing to a monorepo without being a monorepo## Install
`sirup` is a standalone binary```
go install github.com/vieolo/sirup@latest
```## Workspace
A sirup workspace is a folder that contains the `sirup.workspace.yaml` config file. It is recommended to create a standalone repo to hold a workspace.Each workspace can have multiple independent repos, listed in the `sirup.workspace.yaml` which will be cloned in the given path in the workspace.
Here is the structure of the `sirup.workspace.yaml` file. I suggest avoid using whitespaces in the names.
```yaml
name: "workspace_name" # Name of the workspace -- Required
projects_path: "." # Where to clone the projects -- Optional. defaults: "."repos: # The array of repos. Should have at least one repo -- Required
- name: "repo_1" # Name of the repo. can be different than the actual repo name -- Required
url: "https://github.com/to/your/repo_1" # URL of the repo -- Required
path: "utils/repo_1" # Where to clone the repo inside the workspace -- Required
- name: "repo_2"
url: "https://github.com/to/your/repo_2"
path: "cicd/repo_2"
```## Commands
- `init` -> Initiates a new workspace. Will prompt you for the necessary fields
- `fetch` -> Clones the repos listed in workspace yaml