Core Concepts
Workspaces
A workspace in CodeCargo is a way to directly interact with your code assets in GitHub.
- Each workspace contains a collection of files, GitHub repositories, or other assets
- All assets in a workspace serve as context to the GenAI agent
- After a workspace is created, you can add or remove files, repositories, or other assets
- Your GenAI Agent can make edits across multiple files and repositories, and then create PRs
- Workspaces become
read-onlyafter you create a PR - Assets loaded into a workspace can be from different Projects
- Workspaces are tied to a user and a single organization
Creating a Workspace
You can create a workspace in two different ways:
Option #1 - Click on the button located on the top-right-corner of the screen labeled "X repo(s) in workspace," then click on "New Workspace." Enter a name for your workspace, then click "Create Workspace."
Option 2 - Click on the button located on the top-right-hand corner of the screen labeled "X repos(s) in workspace," then click "Manage," then click on the button labeled "+ New Workspace" and enter a name, and click "Create Workspace."
Adding Files, Repositories and other Assets to a Workspace
You can add the following items to a Workspace:
- Files
- GitHub Repositories
- Building Blocks
- Service Catalog entities
In general, to add any of the above to a workspace, navigate to the item that you'd like to add, click the + icon directly to the left of the item, and it will be added to the workspace. You can then remove the item by clicking on the boue - icon in the same location.
Files
To add a file to the workspace, navigate to a project, then to the Guardrails section, and click the + icon directly to the left of a workflow file. The icon will turn blue indicating that the file has been added to the workspace, and the workspace button in the top-right-corner of the dashboard will update.
Quick Tip
Adding a file to your Workspace also adds all contents from the GitHub repository that it is defined in.
Repositories
When you add a Repository to your workspace, all contents of the repository will be added to the workspace. To add a repository to the workspace:
From the Organization Menu: click on "repositories," and click the + icon to the left of any repository that you would like to add to the workspace.
From a Project: click on "Repositories" in the Project dashboard, then click the + icon to the left of any repository that you would like to add to the workspace.
Building Blocks
Navigate to Building Blocks from the Organization menu. Click the type of Building Block you'd like to add to the workspace (Workflows or Actions). To the left of the Building Block, click on the + icon to the left of the building block to add it to your workspace.
Service Catalog Entities
Navigate to a Project with an active Service Catalog, make sure its open in split or table view, then click on the + icon to the left of the Service Catalog entity that you'd like to add to the workspace.
GenAI Context
All files, repositories, Building Blocks, and Service Catalog entities in the workspace are used as context for the GenAI Editor. This means the active GenAI Agent will be able to read all of those entities and make code changes, perform analysis, or other tasks based on the file contents and their relationships.
This enables advanced use-cases such as refactoring an API and updating all software that calls it, migrating CI/CD pipelines from one framework to another, and more.
Syncing Changes and Creating Pull Requests
After editing code in the GenAI Editor, you need to sync your workspace to push changes back to GitHub as pull requests. This is the primary way changes flow from CodeCargo into your repositories.
Starting a Sync
Click the Create Pull Request(s) button on your active workspace card. If pull requests already exist for your workspace, the button reads Manage Pull Requests instead.
This opens the Sync Workspace modal, which shows a table of all repositories in your workspace:
- Repository — the repository name
- Changes — file count and lines added/removed
- PRs — current pull request status (if any)
- Action — what will happen: "Open New PR", "Update PR", or "No Changes"
Creating Pull Requests
Click Open Pull Request(s) (or Sync Workspace if updating existing PRs) to push your changes. CodeCargo creates or updates one pull request per repository that has changes. Repositories without modifications are skipped.
While syncing, each repository row shows a spinner. When complete, PR badges appear with links to the pull requests on GitHub.
Multi-Repository Sync
A single workspace can span multiple repositories. When you sync, CodeCargo handles all repositories in one operation — creating or updating pull requests across each repository that has changes. This is especially powerful for cross-repo refactors and coordinated migrations.
Sync Status
After initiating a sync, you can track progress on the Workspace Sync page:
| Status | Description |
|---|---|
| Syncing | Changes are being pushed and PRs are being created |
| Synced | All pull requests created or updated successfully |
| Failed | An error occurred — see the error message details |
| Not Synced | Workspace has not been synced yet |
The sync page also shows summary statistics: creation date, last changed date, repositories changed, files changed, and lines added/removed.
Branch Selection
Each repository in your workspace targets a branch. Click the branch indicator on a repository to change the target branch before syncing. Changing the branch clears the local file cache so fresh content is pulled.
Selective Repository Sync
When syncing a workspace with multiple repositories, you can choose which repositories to include in the sync operation. In the Sync Workspace modal, each repository row includes a checkbox that lets you select or deselect it for syncing.
- Selected repositories show their normal action ("Open New PR", "Update PR", etc.)
- Unselected repositories show "Skip" in the action column and are excluded from the sync
- Use Select All or Deselect All buttons to quickly toggle all repositories
This is useful when you've made changes across multiple repositories but only want to create pull requests for a subset of them, or when you want to stagger your pull request creation across different repositories.
Sync Filtering
Only repositories with actual changes can be selected for syncing. Repositories without modifications are automatically excluded and cannot be selected.
Managing Workspaces
Organization-Level Workspaces View
Navigate to Workspaces from the organization sidebar to see all workspaces across your organization. This page provides:
- Search — find workspaces by name
- Filters — filter by status: Draft, Open, Closed, or Hide Empty
- Workspace table — shows each workspace's name, status badge, repository/file counts, line changes, PR counts, and last changed date
Workspace Statuses
| Status | Description |
|---|---|
| Draft | Workspace is being prepared, no PRs created yet |
| Open | Workspace has active pull requests |
| Closed | All pull requests have been merged or closed |
Active Workspace
Your currently active workspace appears in a highlighted card above the workspace list. From here you can:
- Create Pull Request(s) — sync changes to GitHub
- Stash Workspace — deactivate the workspace without deleting it
- Delete — permanently remove the workspace
Stashing and Switching
You can only have one active workspace at a time. Use Stash Workspace to deactivate your current workspace, then click Make Active on another workspace to switch. Stashed workspaces retain all their files and changes.
