Promote assets across project branches with promote_assets, carrying metadata and aliases.
Promote assets from one branch to another by copying metadata pointers (the underlying data is not duplicated). Each promoted instance gets an alias on the target branch for stable referencing.
Returns: {"promoted": [...], "errors": [...]}
Promoted instances are tagged with aliases that represent lifecycle stages:
Downstream consumers can then read a specific stage:
To customize the allowed aliases, add to obproject.toml:
Add a promote job to your GitHub Actions workflow that runs before teardown when a PR is merged:
This ensures assets are promoted to main with @candidate before the feature branch is torn down.
[dev-assets] and promotion pipelines: [dev-assets] branch = "main" redirects all asset reads to main, which is ideal for consumer flows (dashboards, reports). But in a promotion pipeline where a flow trains a model and then evaluates it on the same branch, reads need to come from the branch that just wrote the asset. Either omit [dev-assets] in promotion projects, or use a try/except fallback to read from the write branch when the asset doesn’t exist on main yet.