stateDiagram-v2
[*] --> CloneRepo :on start
CloneRepo --> LoadConfigFromRepo :on repo config
CloneRepo --> RegisterWebhook :on server config
LoadConfigFromRepo --> ReceiveRepoConfig
ValidateRepo --> CheckCIStatus :on next ahead of main
ValidateRepo --> AdvanceNext :on dev ahead of next
ValidateRepo --> [*] :on dev == next == main
ValidateRepo --> [*] :on non-retryable error
ValidateRepo --> ValidateRepo :on retryable error
CheckCIStatus --> ReceiveCIStatus
ReceiveCIStatus --> AdvanceMain :on Pass
ReceiveCIStatus --> ValidateRepo :on Pending
ReceiveCIStatus --> [*] :on Fail
AdvanceNext --> ValidateRepo
ReceiveRepoConfig --> RegisterWebhook
RegisterWebhook --> WebhookRegistered
WebhookRegistered --> ValidateRepo
AdvanceMain --> LoadConfigFromRepo :on repo config
AdvanceMain --> ValidateRepo :on server config
[*] --> WebhookNotification :on push
WebhookNotification --> ValidateRepo