1{
2 "lexicon": 1,
3 "id": "sh.tangled.pipeline",
4 "needsCbor": true,
5 "needsType": true,
6 "defs": {
7 "main": {
8 "type": "record",
9 "key": "tid",
10 "record": {
11 "type": "object",
12 "required": [
13 "triggerMetadata",
14 "workflows"
15 ],
16 "properties": {
17 "triggerMetadata": {
18 "type": "ref",
19 "ref": "#triggerMetadata"
20 },
21 "workflows": {
22 "type": "array",
23 "items": {
24 "type": "ref",
25 "ref": "#workflow"
26 }
27 }
28 }
29 }
30 },
31 "triggerMetadata": {
32 "type": "object",
33 "required": [
34 "kind",
35 "repo"
36 ],
37 "properties": {
38 "kind": {
39 "type": "string",
40 "enum": [
41 "push",
42 "pull_request",
43 "manual"
44 ]
45 },
46 "repo": {
47 "type": "ref",
48 "ref": "#triggerRepo"
49 },
50 "push": {
51 "type": "ref",
52 "ref": "#pushTriggerData"
53 },
54 "pullRequest": {
55 "type": "ref",
56 "ref": "#pullRequestTriggerData"
57 },
58 "manual": {
59 "type": "ref",
60 "ref": "#manualTriggerData"
61 }
62 }
63 },
64 "triggerRepo": {
65 "type": "object",
66 "required": [
67 "knot",
68 "did",
69 "repo",
70 "defaultBranch"
71 ],
72 "properties": {
73 "knot": {
74 "type": "string"
75 },
76 "did": {
77 "type": "string",
78 "format": "did"
79 },
80 "repo": {
81 "type": "string"
82 },
83 "defaultBranch": {
84 "type": "string"
85 }
86 }
87 },
88 "pushTriggerData": {
89 "type": "object",
90 "required": [
91 "ref",
92 "newSha",
93 "oldSha"
94 ],
95 "properties": {
96 "ref": {
97 "type": "string"
98 },
99 "newSha": {
100 "type": "string",
101 "minLength": 40,
102 "maxLength": 40
103 },
104 "oldSha": {
105 "type": "string",
106 "minLength": 40,
107 "maxLength": 40
108 }
109 }
110 },
111 "pullRequestTriggerData": {
112 "type": "object",
113 "required": [
114 "sourceBranch",
115 "targetBranch",
116 "sourceSha",
117 "action"
118 ],
119 "properties": {
120 "sourceBranch": {
121 "type": "string"
122 },
123 "targetBranch": {
124 "type": "string"
125 },
126 "sourceSha": {
127 "type": "string",
128 "minLength": 40,
129 "maxLength": 40
130 },
131 "action": {
132 "type": "string"
133 }
134 }
135 },
136 "manualTriggerData": {
137 "type": "object",
138 "properties": {
139 "inputs": {
140 "type": "array",
141 "items": {
142 "type": "ref",
143 "ref": "#pair"
144 }
145 }
146 }
147 },
148 "workflow": {
149 "type": "object",
150 "required": [
151 "name",
152 "engine",
153 "clone",
154 "raw"
155 ],
156 "properties": {
157 "name": {
158 "type": "string"
159 },
160 "engine": {
161 "type": "string"
162 },
163 "clone": {
164 "type": "ref",
165 "ref": "#cloneOpts"
166 },
167 "raw": {
168 "type": "string"
169 }
170 }
171 },
172 "cloneOpts": {
173 "type": "object",
174 "required": [
175 "skip",
176 "depth",
177 "submodules"
178 ],
179 "properties": {
180 "skip": {
181 "type": "boolean"
182 },
183 "depth": {
184 "type": "integer"
185 },
186 "submodules": {
187 "type": "boolean"
188 }
189 }
190 },
191 "pair": {
192 "type": "object",
193 "required": [
194 "key",
195 "value"
196 ],
197 "properties": {
198 "key": {
199 "type": "string"
200 },
201 "value": {
202 "type": "string"
203 }
204 }
205 }
206 }
207}