Review, Merge, and Deploy
Validate pull requests, synchronize protected main, and deploy with Git provenance
Source Control keeps Git review and runtime deployment deliberately separate. This makes it possible to approve a workflow definition without changing production until the synchronized main draft is ready.
Open the Pull Request
After committing the branch:
- Select Open pull request in the source-control bar.
- Review the generated pull request in GitHub.
- Wait for the SteelEngine validation Check to finish.
- Follow the repository's normal approval and branch-protection policy.
The pull request points to the exact branch commit and summarizes the affected workflows and resource requirements.
What Validation Checks
SteelEngine's test deployment validates the exact commit without modifying main or production. It checks:
- Repository identity, commit reachability, and managed path boundaries
- Bundle format, required files, references, and secret sanitization
- Workflow graph structure, block types, operations, edges, and interfaces
- Protected workflow dependencies and logical resource assignments
- Deployment preflight for schedules, webhooks, APIs, and hosted surfaces
Validation parses extracted prompts and code but does not execute arbitrary workflow code. It also does not create triggers, change resource assignments, or create a deployment version.
Review the GitHub Check result and the Recent validation and apply jobs table under Settings > Source Control. Fix failures on the branch, commit again, and let the pull request revalidate.
Update a Branch from Main
The source-control bar marks a branch behind main when the repository default branch has advanced.
- Commit or discard all local branch changes.
- Select Update branch from main.
- If the update is clean, SteelEngine creates a normal merge commit on the branch.
- If conflicts appear, select Resolve.
SteelEngine uses a structured three-way merge instead of treating the workflow as an opaque JSON file. For each conflict, choose exactly one resolution:
| Choice | Meaning |
|---|---|
| ours | Keep the value from your source-control branch |
| theirs | Keep the value from the current main branch |
| base | Restore the common ancestor's value |
| delete | Remove the conflicted item |
| Edit JSON | Provide a valid custom JSON value |
Select Resolve and update after every conflict has a valid resolution. SteelEngine validates the combined workflow and creates a two-parent merge commit. It never force-pushes the branch.
Merge the Pull Request
When the pull request is approved and its Check passes, merge it using the repository's normal merge policy.
The GitHub webhook queues an atomic default-branch apply. SteelEngine validates the final commit tree, updates all affected protected main drafts together, and records the applied commit SHA. If any affected workflow fails validation, none of the main drafts move forward.
The merge still does not change the active deployment. Confirm the workflow shows Protected main · read-only and that Settings > Source Control shows the expected Applied commit before deploying.
If the webhook is delayed or missed, use Sync now in Settings > Source Control. Scheduled reconciliation also repairs missed delivery without polling GitHub continuously.
Deploy Protected Main
- Open the protected workflow on
main. - Confirm there is no synchronization error.
- Resolve every required resource assignment.
- Open the Deploy panel and review the synchronized draft.
- Select Deploy or Update, following the normal deployment confirmation.
The immutable deployment version records the Git commit SHA and branch provenance. Production triggers execute that deployment snapshot and do not need GitHub to remain available.
Roll Back
Use the workflow's deployment history to promote a previous deployment version back to live. The previous version retains its original source commit provenance.
Rollback changes the active runtime version only. It does not rewrite Git, revert the repository default branch, or change the protected main draft. If you also need to reverse main, merge a normal revert or repair pull request and synchronize it separately.
Effect of Each Action
| Action | Branch working copy | GitHub | Protected main | Active runtime |
|---|---|---|---|---|
| Edit a branch | Changes | No change | No change | No change |
| Commit | Becomes clean | Branch advances | No change | No change |
| Open or validate a PR | No change | Check updates | No change | No change |
| Merge | No change | Default branch advances | Synchronizes after validation | No change |
| Deploy | No change | No change | No change | New immutable version becomes active |
| Roll back | No change | No change | No change | A previous immutable version becomes active |
This separation makes the repository the review authority, protected main the approved SteelEngine draft, and the active deployment the production authority.