Skip to content
Proud to collaborate with Microsoft for Startups

cloudflare.pages.auto-deploy-push ​

Handle a GitHub push webhook by matching Cloudflare Pages projects on (repository, branch) and dispatching a build-and-deploy per match. Removes the need for a GitHub Actions deploy job.

Overview ​

PropertyValue
Workflow typeLinear
LibraryApp-cloudflare
Version1.0

Input Schema ​

FieldTypeRequiredDefaultDescription
repository_uuidstringNo—GitHub repository UUID from the push webhook (matches CloudflarePagesProject.github_repository_uuid).
branch_namestringNo—Branch pushed; also accepts source_ref.
organization_uuidstringNo—Org UUID; inferred from the matched project(s) when omitted.
push_refstringNo—Webhook push id for idempotency.
commit_shastringNo—Commit SHA pushed.
commit_messagestringNo—Commit message.
commit_authorstringNo—Commit author.
pusher_namestringNo—Login of the pusher.

Output Schema ​

FieldTypeRequiredDefaultDescription
repository_uuidstringNo—GitHub repository UUID from the push webhook (matches CloudflarePagesProject.github_repository_uuid).
branch_namestringNo—Branch pushed; also accepts source_ref.
organization_uuidstringNo—Org UUID; inferred from the matched project(s) when omitted.
push_refstringNo—Webhook push id for idempotency.
commit_shastringNo—Commit SHA pushed.
commit_messagestringNo—Commit message.
commit_authorstringNo—Commit author.
pusher_namestringNo—Login of the pusher.
matching_projectslistNo—Projects matched (pages_project_uuid/project_name).
skipped_projectslistNo—Projects considered but skipped (currently always empty).
triggered_countintegerNo—Number of build-and-deploy children dispatched.
deploymentslistNo—Per-project dispatch records (child_workflow_uuid, pages_project_uuid, project_name).
trigger_errorslistNo—Per-project dispatch errors.
children_aggregatedictNo—Aggregate counts from the last children poll.
_children_by_keydictNo—Child workflow ids keyed by 'dispatch:{pages_project_uuid}'.
initiated_atstringNo—ISO8601 timestamp when the workflow was initiated.
triggered_atstringNo—ISO8601 timestamp when children were dispatched.
completed_atstringNo—ISO8601 timestamp when the workflow completed.
failure_reasonstringNo—Engine-stamped human-readable failure reason
failed_at_statestringNo—Engine-stamped state when the workflow failed
failed_stepstringNo—Engine-stamped step name (DAG path)
failed_layerintegerNo—Engine-stamped layer index (DAG path)
errorstringNo—Engine-stamped exception message
error_typestringNo—Engine-stamped exception class name
failure_typestringNo—Engine-stamped failure category (atomic path)
failed_actionstringNo—Engine-stamped action method that raised (atomic path)

States ​

StateInitialTerminalSuccessAuto-advanceDescription
initiatedYesNo—find_projectsPush webhook accepted
finding_projectsNoNo—trigger_deploymentsMatch projects on (repository, branch)
triggeringNoNo——Dispatch + poll build-and-deploy children
completedNoYesYes—All dispatched children terminal (or nothing matched)
failedNoYesNo—A dispatched child failed or an error occurred

State Diagram ​

Transitions ​

FromActionToDescription
initiatedfind_projectsfinding_projects—
finding_projectstrigger_deploymentstriggering—
triggeringcheck_childrentriggering—
triggeringcompletecompleted—
* (any state)failfailed—

API Usage ​

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

{
  "workflow_type": "cloudflare.pages.auto-deploy-push",
  "initial_data": {
    "repository_uuid": "value",
    "branch_name": "value",
    "organization_uuid": "value",
    "push_ref": "value"
  }
}