CodeCargo logo

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-only after 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:

StatusDescription
SyncingChanges are being pushed and PRs are being created
SyncedAll pull requests created or updated successfully
FailedAn error occurred — see the error message details
Not SyncedWorkspace 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

StatusDescription
DraftWorkspace is being prepared, no PRs created yet
OpenWorkspace has active pull requests
ClosedAll 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.

Previous
GitHub Integration