Pangolin operates like Git for data. You can Branch, Tag, and Merge data across namespaces.
- Method:
POST - Path:
/api/v1/branches - Body:
{ "catalog": "analytics", "name": "feature-branch", "source_ref": "main" }
- Method:
POST - Path:
/api/v1/merges - Body:
{ "catalog": "analytics", "source": "feature-branch", "target": "main" }
- Method:
GET - Path:
/api/v1/merges/{merge_id}/conflicts
- Method:
POST - Path:
/api/v1/merges/conflicts/{conflict_id}/resolve - Body:
{"strategy": "KeepSource"}(orKeepTarget)
- Method:
POST - Path:
/api/v1/merges/{merge_id}/complete
pangolin-admin create-branch \
--catalog analytics \
--name dev \
--from main
pangolin-admin list-branches --catalog analytics# Start Merge
pangolin-admin create-merge \
--catalog analytics \
--source dev \
--target main
# Check Conflicts
pangolin-admin list-merge-conflicts --id <merge-id>
# Resolve
pangolin-admin resolve-merge-conflict \
--conflict-id <uuid> \
--strategy KeepSource
# Complete
pangolin-admin complete-merge --id <merge-id>client.branches.create(
catalog="analytics",
name="experiment",
source="main"
)# 1. Start
merge_op = client.merge_operations.create(
catalog="analytics",
source="experiment",
target="main"
)
# 2. Check Conflicts
if merge_op.conflicts:
conflicts = client.merge_operations.list_conflicts(merge_op.id)
for c in conflicts:
client.merge_operations.resolve_conflict(c.id, "KeepSource")
# 3. Complete
client.merge_operations.complete(merge_op.id)- Branches:
- Navigate to Catalogs.
- Select a catalog.
- Go to Branches tab.
- Click "New Branch".
- Merging:
- Go to Merge Requests (or similar tab in Catalog).
- Click "New Merge".
- Select Source/Target.
- Review: UI shows diffs/conflicts.
- Resolve: Use UI buttons ("Keep Source" / "Keep Target") for each conflict.
- Complete: Click Merge.