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:

  1. Select Open pull request in the source-control bar.
  2. Review the generated pull request in GitHub.
  3. Wait for the SteelEngine validation Check to finish.
  4. 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.

  1. Commit or discard all local branch changes.
  2. Select Update branch from main.
  3. If the update is clean, SteelEngine creates a normal merge commit on the branch.
  4. 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:

ChoiceMeaning
oursKeep the value from your source-control branch
theirsKeep the value from the current main branch
baseRestore the common ancestor's value
deleteRemove the conflicted item
Edit JSONProvide 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

  1. Open the protected workflow on main.
  2. Confirm there is no synchronization error.
  3. Resolve every required resource assignment.
  4. Open the Deploy panel and review the synchronized draft.
  5. 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

ActionBranch working copyGitHubProtected mainActive runtime
Edit a branchChangesNo changeNo changeNo change
CommitBecomes cleanBranch advancesNo changeNo change
Open or validate a PRNo changeCheck updatesNo changeNo change
MergeNo changeDefault branch advancesSynchronizes after validationNo change
DeployNo changeNo changeNo changeNew immutable version becomes active
Roll backNo changeNo changeNo changeA 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.

On this page