-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmergebot_states.dot
70 lines (60 loc) · 2.29 KB
/
mergebot_states.dot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# https://edotor.net/
digraph MergeBot {
subgraph states {
node [shape=oval][style=filled,fillcolor=lightgray]
starting [penwidth=3]
idle
ready
integrating
runningStatusChecks
integrationFailed
}
subgraph events {
node [shape=box][style=dotted]
".pullRequestsLoaded(empty)"
".pullRequestsLoaded(!empty)"
".pullRequestDidChange(.include)"
".pullRequestDidChange(.exclude)"
".noMorePullRequests"
".integrationDidChangeStatus(.done)"
".integrationDidChangeStatus(.failed)"
".integrationDidChangeStatus(.updating)"
".integrate"
".statusChecksDidComplete(.passed)"
".statusChecksDidComplete(.failed)"
".statusChecksDidComplete(.timedOut)"
".integrationFailureHandled"
".retryIntegration"
}
subgraph cluster_reduce {
color=blue
label="reduce()"
subgraph reduceStarting {
starting -> ".pullRequestsLoaded(empty)" -> idle
starting -> ".pullRequestsLoaded(!empty)" -> ready
}
subgraph reduceIdle {
idle -> ".pullRequestDidChange(.include)" -> ready
}
subgraph reduceReady {
ready -> ".noMorePullRequests" -> idle
ready -> ".integrate" -> integrating
}
subgraph reduceIntegrating {
integrating -> ".integrationDidChangeStatus(.done)" -> ready
integrating -> ".integrationDidChangeStatus(.failed)" -> integrationFailed
integrating -> ".integrationDidChangeStatus(.updating)" -> runningStatusChecks
integrating -> ".pullRequestDidChange(.exclude)" -> ready
integrating -> ".retryIntegration" -> integrating
}
subgraph reduceRunningStatusChecks {
runningStatusChecks -> ".statusChecksDidComplete(.passed)" -> integrating
runningStatusChecks -> ".statusChecksDidComplete(.failed)" -> integrationFailed
runningStatusChecks -> ".statusChecksDidComplete(.timedOut)" -> integrationFailed
runningStatusChecks -> ".pullRequestDidChange(.exclude)" -> ready
}
subgraph reduceIntegrationFailed {
integrationFailed -> ".integrationFailureHandled" -> ready
}
}
}