Skip to content
Proud to collaborate with Microsoft for Startups

spad.auto-deploy-release ​

Handles automatic deployments triggered by GitHub release webhooks

Handles automatic deployments triggered by GitHub release webhooks.

Input fields: repository_uuid, tag_name, action, release_id (optional), github_release_id (optional), prerelease (optional), target_commitish (optional), release_name (optional), organization_id (optional)

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-spad
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
tag_namestringYes—Released tag (e.g. v1.2.3)
actionstringYes—Release action — 'published' or 'released'
site_uuidstringNo—SpadSite UUID (GitLab path); use either this or repository_uuid
repository_uuidstringNo—GitHubRepository UUID (GitHub path)
organization_uuidstringNo—Organization UUID; inferred from the repo when omitted
release_uuidstringNo—Internal release UUID (GitHubRelease.uuid) for idempotency
github_release_refstringNo—GitHub Release id from the webhook payload (provider-native)
prereleasebooleanNoFalseWhether the release is a prerelease
target_commitishstringNo—Target commit/branch the tag was created from
release_namestringNo—Human-friendly release name

Output Schema ​

FieldTypeRequiredDefaultDescription
site_uuidstringNo—Site UUID (GitLab path)
repository_uuidstringNo—GitHub repository UUID (GitHub path)
organization_uuidstringNo—Resolved organization UUID
release_uuidstringNo—Internal release UUID propagated from input
github_release_refstringNo—GitHub release id propagated from input (provider-native)
tag_namestringNo—Released tag
actionstringNo—Release action ('published' or 'released')
prereleasebooleanNo—Whether the release is a prerelease
target_commitishstringNo—Target commit/branch propagated from input
release_namestringNo—Release name propagated from input
webhook_sourcestringNo—'github' or 'gitlab'
matching_siteslistNo—Sites that matched the release and will be deployed
skipped_siteslistNo—Sites that were skipped (action mismatch or prerelease excluded)
triggered_countintegerNo—Number of deployments successfully queued
deploymentslistNo—Per-site deployment records (deployment_uuid, workflow_uuid, dispatch_workflow_uuid, site_uuid, site_name)
trigger_errorslistNo—Per-site errors encountered while queuing deployments
initiated_atstringNo—ISO8601 timestamp when the workflow was initiated
sites_found_atstringNo—ISO8601 timestamp when find_sites completed
triggered_atstringNo—ISO8601 timestamp when deployments were triggered (only when matching sites exist)
completed_atstringNo—ISO8601 timestamp when the workflow reached COMPLETED
failed_atstringNo—ISO8601 timestamp when the workflow reached FAILED
failure_reasonstringNo—Reason recorded on the failure path
_children_by_keydictNo—Child workflow ids keyed by 'dispatch:{site_uuid}'
_sites_processeddictNo—Idempotency map of sites already processed by action_trigger_deployments (keyed by site_uuid)
children_aggregatedictNo—Aggregate counts from the last all_children_terminal poll
errorstringNo—Engine-stamped failure metadata
error_typestringNo—Engine-stamped failure metadata
failed_at_statejsonNo—Engine-stamped failure metadata
failed_layerjsonNo—Engine-stamped failure metadata
failed_stepjsonNo—Engine-stamped failure metadata

States ​

StateInitialTerminalSuccessAuto-advanceDescription
initiatedYesNo—find_sites—
finding_sitesNoNo—trigger_deployments—
triggeringNoNo—check_children—
waiting_for_childrenNoNo——Poll spawned dispatch workflows until all reach a terminal state
completedNoYesYes——
failedNoYesNo——

State Diagram ​

Transitions ​

FromActionToDescription
initiatedfind_sitesfinding_sites—
finding_sitestrigger_deploymentstriggering—
triggeringcheck_childrenwaiting_for_children—
waiting_for_childrencheck_childrenwaiting_for_children—
waiting_for_childrencompletecompleted—
* (any state)failfailed—

API Usage ​

bash
POST /api/workflows/start
Content-Type: application/json

{
  "workflow_type": "spad.auto-deploy-release",
  "initial_data": {
    "tag_name": "value",
    "action": "value"
  }
}