Flow & Git

Atrahasis has a built-in Git client that operates per flow group — every flow group is its own repository, with its own history, branches, and remotes.

Per-Flow-Group Repository

Each flow group folder is tracked as an independent Git repository. This means a single Atrahasis workspace can have many small, focused repositories — one per API surface, project, or team — instead of a single mega-repo. You decide the granularity, and you can connect each one to a different remote (GitHub, GitLab, internal, anywhere).

  • Scope: Flows, environments, lifecycle scripts, and assertions inside the group are versioned. OS secrets and Vault values stay out by design (only the metadata is tracked).
  • Isolation: A commit in one flow group never touches another. Branching, merging, and rebasing happen inside that group's repo only.
  • Same model for Load Test: Load test spec groups also get their own repo. The Git panel adapts to whichever scope you opened it from.

Opening the Git Panel

Right-click any flow group in the sidebar and pick Git from the context menu (alongside Rename / Environments / Delete). The Git panel takes over the main area and shows the repo state for that group.

Top bar at a glance:

  • Breadcrumb: flows/<group-name> — confirms which scope you are operating on.
  • Pull / Fetch buttons: Sync with the configured remote without leaving the panel.
  • Active branch indicator: Shows the currently checked-out branch (e.g., Active: main).

What the Git Panel Covers

The left sidebar of the Git panel exposes six sections. Everything is built into Atrahasis — you do not need an external Git client, terminal, or IDE plugin to version your flows.

SectionWhat you can do
OverviewRepo status (branch, last commit, remote, sync state), quick stats (modified / untracked / staged counts), recent commits list, suggestions card (e.g. "1 file(s) changed — stage and commit"), and quick action buttons: Commit, New Branch, Stash.
ChangesStaged / unstaged file lists, side-by-side diff preview (Original vs Modified) with line numbers, commit message editor, and the Commit to <branch> / Commit & Push buttons.
HistoryCommit graph with HEAD / branch / remote badges, searchable commit list, per-commit detail panel showing author / date / file changes, file diff view, and blame view.
BranchesList local + remote branches, create / switch / delete, and a dedicated Compare Graph view to visualize divergence between two branches.
StashesSave in-progress changes as a stash, browse the stash list, view per-stash diffs, and apply or drop entries.
SettingsUser config (name & email), connection setup (HTTPS / SSH), saved connections, and quick connect for new remotes.

Conflict resolution is built in too: Merge conflicts (in-memory, after-pull, or after-stash-apply) open a 3-way merge view with side-by-side panels so you can resolve and continue without dropping to a terminal.

Why It Matters for Flows

  • Review changes safely: The diff preview shows exactly what changed in flow.json before you commit — added assertions, modified steps, edited environment vars — so you never push a half-finished flow by accident.
  • Branch per feature: Test a risky refactor on a branch, run the flow there, and merge back when you are confident — same workflow as production code.
  • Team sharing: Push the flow group to a shared remote so teammates clone it and run the same flows against the same environments. No JSON copy-paste, no broken extractions.
  • Audit trail: History + blame answer "who changed this assertion and when?" the same way you would in any source repo.
  • Stash WIP: Quick experiment on a flow you have to put down? Stash it, switch branches, come back, pop it.

This page covers how Git fits into a flow group's lifecycle. For the full Git client reference — Setup Wizard, connection types, all panel sections in depth, conflict resolution flows, and best practices — see the dedicated Git Integration guide section.