@volter/twin-github 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +162 -20
- package/client/github-mirror.tsx +10 -4
- package/package.json +2 -2
- package/src/cli.ts +3 -2
- package/src/github-a11y-snapshot.uitest.ts +117 -0
- package/src/github-budget.ts +198 -0
- package/src/github-capabilities.ts +502 -23
- package/src/github-connector.ts +832 -61
- package/src/github-events.ts +11 -1
- package/src/github-git-http.ts +248 -0
- package/src/github-git-plane.ts +511 -0
- package/src/github-graphql.ts +212 -1
- package/src/github-journey.uitest.ts +193 -0
- package/src/github-mirror-state.ts +369 -0
- package/src/github-mirror-ui.ts +53 -372
- package/src/github-server.ts +125 -21
- package/src/github-shared.ts +26 -0
- package/src/github-twin.ts +821 -53
- package/src/github-ui-conformance.ts +2 -2
- package/src/index.ts +71 -5
- package/test-fixtures/github-openapi-operations.json +467 -34
|
@@ -15,96 +15,529 @@
|
|
|
15
15
|
},
|
|
16
16
|
"paths": {
|
|
17
17
|
"/repos/{owner}/{repo}/issues": {
|
|
18
|
-
"get": {
|
|
19
|
-
|
|
18
|
+
"get": {
|
|
19
|
+
"operationId": "issues/list-for-repo",
|
|
20
|
+
"summary": "List repository issues",
|
|
21
|
+
"tags": [
|
|
22
|
+
"issues"
|
|
23
|
+
],
|
|
24
|
+
"responses": {
|
|
25
|
+
"200": {
|
|
26
|
+
"description": "list of issues"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"post": {
|
|
31
|
+
"operationId": "issues/create",
|
|
32
|
+
"summary": "Create an issue",
|
|
33
|
+
"tags": [
|
|
34
|
+
"issues"
|
|
35
|
+
],
|
|
36
|
+
"responses": {
|
|
37
|
+
"201": {
|
|
38
|
+
"description": "issue created"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
20
42
|
},
|
|
21
43
|
"/repos/{owner}/{repo}/issues/{issue_number}": {
|
|
22
|
-
"patch": {
|
|
44
|
+
"patch": {
|
|
45
|
+
"operationId": "issues/update",
|
|
46
|
+
"summary": "Update an issue (title/body/state/labels/assignees/milestone)",
|
|
47
|
+
"tags": [
|
|
48
|
+
"issues"
|
|
49
|
+
],
|
|
50
|
+
"responses": {
|
|
51
|
+
"200": {
|
|
52
|
+
"description": "issue updated"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
23
56
|
},
|
|
24
57
|
"/repos/{owner}/{repo}/issues/{issue_number}/comments": {
|
|
25
|
-
"get": {
|
|
26
|
-
|
|
58
|
+
"get": {
|
|
59
|
+
"operationId": "issues/list-comments",
|
|
60
|
+
"summary": "List issue comments",
|
|
61
|
+
"tags": [
|
|
62
|
+
"issues"
|
|
63
|
+
],
|
|
64
|
+
"responses": {
|
|
65
|
+
"200": {
|
|
66
|
+
"description": "list of comments"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"post": {
|
|
71
|
+
"operationId": "issues/create-comment",
|
|
72
|
+
"summary": "Create an issue comment",
|
|
73
|
+
"tags": [
|
|
74
|
+
"issues"
|
|
75
|
+
],
|
|
76
|
+
"responses": {
|
|
77
|
+
"201": {
|
|
78
|
+
"description": "comment created"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
27
82
|
},
|
|
28
83
|
"/repos/{owner}/{repo}/issues/{issue_number}/labels": {
|
|
29
|
-
"post": {
|
|
84
|
+
"post": {
|
|
85
|
+
"operationId": "issues/add-labels",
|
|
86
|
+
"summary": "Add labels to an issue",
|
|
87
|
+
"tags": [
|
|
88
|
+
"issues"
|
|
89
|
+
],
|
|
90
|
+
"responses": {
|
|
91
|
+
"200": {
|
|
92
|
+
"description": "labels added"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
30
96
|
},
|
|
31
97
|
"/repos/{owner}/{repo}/issues/{issue_number}/lock": {
|
|
32
|
-
"put": {
|
|
98
|
+
"put": {
|
|
99
|
+
"operationId": "issues/lock",
|
|
100
|
+
"summary": "Lock an issue conversation",
|
|
101
|
+
"tags": [
|
|
102
|
+
"issues"
|
|
103
|
+
],
|
|
104
|
+
"responses": {
|
|
105
|
+
"204": {
|
|
106
|
+
"description": "locked"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
33
110
|
},
|
|
34
111
|
"/repos/{owner}/{repo}/issues/comments": {
|
|
35
|
-
"get": {
|
|
112
|
+
"get": {
|
|
113
|
+
"operationId": "issues/list-comments-for-repo",
|
|
114
|
+
"summary": "List issue comments for a repository (repo-wide, across all issues)",
|
|
115
|
+
"tags": [
|
|
116
|
+
"issues"
|
|
117
|
+
],
|
|
118
|
+
"responses": {
|
|
119
|
+
"200": {
|
|
120
|
+
"description": "list of comments"
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
36
124
|
},
|
|
37
125
|
"/repos/{owner}/{repo}/issues/events": {
|
|
38
|
-
"get": {
|
|
126
|
+
"get": {
|
|
127
|
+
"operationId": "issues/list-events-for-repo",
|
|
128
|
+
"summary": "List issue events for a repository (repo-wide, across all issues)",
|
|
129
|
+
"tags": [
|
|
130
|
+
"issues"
|
|
131
|
+
],
|
|
132
|
+
"responses": {
|
|
133
|
+
"200": {
|
|
134
|
+
"description": "list of events"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
39
138
|
},
|
|
40
139
|
"/repos/{owner}/{repo}/pulls": {
|
|
41
|
-
"get": {
|
|
42
|
-
|
|
140
|
+
"get": {
|
|
141
|
+
"operationId": "pulls/list",
|
|
142
|
+
"summary": "List pull requests",
|
|
143
|
+
"tags": [
|
|
144
|
+
"pulls"
|
|
145
|
+
],
|
|
146
|
+
"responses": {
|
|
147
|
+
"200": {
|
|
148
|
+
"description": "list of pull requests"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"post": {
|
|
153
|
+
"operationId": "pulls/create",
|
|
154
|
+
"summary": "Create a pull request",
|
|
155
|
+
"tags": [
|
|
156
|
+
"pulls"
|
|
157
|
+
],
|
|
158
|
+
"responses": {
|
|
159
|
+
"201": {
|
|
160
|
+
"description": "pull request created"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
43
164
|
},
|
|
44
165
|
"/repos/{owner}/{repo}/pulls/{pull_number}": {
|
|
45
|
-
"get": {
|
|
46
|
-
|
|
166
|
+
"get": {
|
|
167
|
+
"operationId": "pulls/get",
|
|
168
|
+
"summary": "Get a pull request",
|
|
169
|
+
"tags": [
|
|
170
|
+
"pulls"
|
|
171
|
+
],
|
|
172
|
+
"responses": {
|
|
173
|
+
"200": {
|
|
174
|
+
"description": "pull request"
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
"patch": {
|
|
179
|
+
"operationId": "pulls/update",
|
|
180
|
+
"summary": "Update a pull request",
|
|
181
|
+
"tags": [
|
|
182
|
+
"pulls"
|
|
183
|
+
],
|
|
184
|
+
"responses": {
|
|
185
|
+
"200": {
|
|
186
|
+
"description": "pull request updated"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
47
190
|
},
|
|
48
191
|
"/repos/{owner}/{repo}/pulls/{pull_number}/merge": {
|
|
49
|
-
"put": {
|
|
192
|
+
"put": {
|
|
193
|
+
"operationId": "pulls/merge",
|
|
194
|
+
"summary": "Merge a pull request",
|
|
195
|
+
"tags": [
|
|
196
|
+
"pulls"
|
|
197
|
+
],
|
|
198
|
+
"responses": {
|
|
199
|
+
"200": {
|
|
200
|
+
"description": "merged"
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
50
204
|
},
|
|
51
205
|
"/repos/{owner}/{repo}/pulls/{pull_number}/files": {
|
|
52
|
-
"get": {
|
|
206
|
+
"get": {
|
|
207
|
+
"operationId": "pulls/list-files",
|
|
208
|
+
"summary": "List pull request files",
|
|
209
|
+
"tags": [
|
|
210
|
+
"pulls"
|
|
211
|
+
],
|
|
212
|
+
"responses": {
|
|
213
|
+
"200": {
|
|
214
|
+
"description": "list of changed files"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
53
218
|
},
|
|
54
219
|
"/repos/{owner}/{repo}/pulls/{pull_number}/reviews": {
|
|
55
|
-
"get": {
|
|
56
|
-
|
|
220
|
+
"get": {
|
|
221
|
+
"operationId": "pulls/list-reviews",
|
|
222
|
+
"summary": "List reviews for a pull request",
|
|
223
|
+
"tags": [
|
|
224
|
+
"pulls"
|
|
225
|
+
],
|
|
226
|
+
"responses": {
|
|
227
|
+
"200": {
|
|
228
|
+
"description": "list of reviews"
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"post": {
|
|
233
|
+
"operationId": "pulls/create-review",
|
|
234
|
+
"summary": "Create a review for a pull request",
|
|
235
|
+
"tags": [
|
|
236
|
+
"pulls"
|
|
237
|
+
],
|
|
238
|
+
"responses": {
|
|
239
|
+
"200": {
|
|
240
|
+
"description": "review created"
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
57
244
|
},
|
|
58
245
|
"/repos/{owner}/{repo}/pulls/{pull_number}/comments": {
|
|
59
|
-
"
|
|
246
|
+
"get": {
|
|
247
|
+
"operationId": "pulls/list-review-comments",
|
|
248
|
+
"summary": "List review comments on a pull request",
|
|
249
|
+
"tags": [
|
|
250
|
+
"pulls"
|
|
251
|
+
],
|
|
252
|
+
"responses": {
|
|
253
|
+
"200": {
|
|
254
|
+
"description": "list of review comments"
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
"post": {
|
|
259
|
+
"operationId": "pulls/create-review-comment",
|
|
260
|
+
"summary": "Create a diff-anchored review comment",
|
|
261
|
+
"tags": [
|
|
262
|
+
"pulls"
|
|
263
|
+
],
|
|
264
|
+
"responses": {
|
|
265
|
+
"201": {
|
|
266
|
+
"description": "review comment created"
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
"/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies": {
|
|
272
|
+
"post": {
|
|
273
|
+
"operationId": "pulls/create-reply-for-review-comment",
|
|
274
|
+
"summary": "Create a reply for a review comment",
|
|
275
|
+
"tags": [
|
|
276
|
+
"pulls"
|
|
277
|
+
],
|
|
278
|
+
"responses": {
|
|
279
|
+
"201": {
|
|
280
|
+
"description": "reply created"
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
60
284
|
},
|
|
61
285
|
"/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": {
|
|
62
|
-
"post": {
|
|
286
|
+
"post": {
|
|
287
|
+
"operationId": "pulls/request-reviewers",
|
|
288
|
+
"summary": "Request reviewers for a pull request",
|
|
289
|
+
"tags": [
|
|
290
|
+
"pulls"
|
|
291
|
+
],
|
|
292
|
+
"responses": {
|
|
293
|
+
"201": {
|
|
294
|
+
"description": "reviewers requested"
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
63
298
|
},
|
|
64
299
|
"/repos/{owner}/{repo}/pulls/comments": {
|
|
65
|
-
"get": {
|
|
300
|
+
"get": {
|
|
301
|
+
"operationId": "pulls/list-review-comments-for-repo",
|
|
302
|
+
"summary": "List review comments in a repository (repo-wide, across all pull requests)",
|
|
303
|
+
"tags": [
|
|
304
|
+
"pulls"
|
|
305
|
+
],
|
|
306
|
+
"responses": {
|
|
307
|
+
"200": {
|
|
308
|
+
"description": "list of review comments"
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
66
312
|
},
|
|
67
313
|
"/repos/{owner}/{repo}": {
|
|
68
|
-
"get": {
|
|
314
|
+
"get": {
|
|
315
|
+
"operationId": "repos/get",
|
|
316
|
+
"summary": "Get a repository",
|
|
317
|
+
"tags": [
|
|
318
|
+
"repos"
|
|
319
|
+
],
|
|
320
|
+
"responses": {
|
|
321
|
+
"200": {
|
|
322
|
+
"description": "repository"
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
69
326
|
},
|
|
70
327
|
"/repos/{owner}/{repo}/branches": {
|
|
71
|
-
"get": {
|
|
328
|
+
"get": {
|
|
329
|
+
"operationId": "repos/list-branches",
|
|
330
|
+
"summary": "List branches",
|
|
331
|
+
"tags": [
|
|
332
|
+
"repos"
|
|
333
|
+
],
|
|
334
|
+
"responses": {
|
|
335
|
+
"200": {
|
|
336
|
+
"description": "list of branches"
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
72
340
|
},
|
|
73
341
|
"/repos/{owner}/{repo}/contents/{path}": {
|
|
74
|
-
"get": {
|
|
342
|
+
"get": {
|
|
343
|
+
"operationId": "repos/get-content",
|
|
344
|
+
"summary": "Get repository content",
|
|
345
|
+
"tags": [
|
|
346
|
+
"repos"
|
|
347
|
+
],
|
|
348
|
+
"responses": {
|
|
349
|
+
"200": {
|
|
350
|
+
"description": "file content"
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
"put": {
|
|
355
|
+
"operationId": "repos/create-or-update-file-contents",
|
|
356
|
+
"summary": "Create or update file contents",
|
|
357
|
+
"tags": [
|
|
358
|
+
"repos"
|
|
359
|
+
],
|
|
360
|
+
"responses": {
|
|
361
|
+
"200": {
|
|
362
|
+
"description": "file content"
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
"delete": {
|
|
367
|
+
"operationId": "repos/delete-file",
|
|
368
|
+
"summary": "Delete a file",
|
|
369
|
+
"tags": [
|
|
370
|
+
"repos"
|
|
371
|
+
],
|
|
372
|
+
"responses": {
|
|
373
|
+
"200": {
|
|
374
|
+
"description": "file content"
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
75
378
|
},
|
|
76
379
|
"/repos/{owner}/{repo}/community/profile": {
|
|
77
|
-
"get": {
|
|
380
|
+
"get": {
|
|
381
|
+
"operationId": "repos/get-community-profile-metrics",
|
|
382
|
+
"summary": "Get community profile metrics",
|
|
383
|
+
"tags": [
|
|
384
|
+
"repos"
|
|
385
|
+
],
|
|
386
|
+
"responses": {
|
|
387
|
+
"200": {
|
|
388
|
+
"description": "community profile"
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
78
392
|
},
|
|
79
393
|
"/repos/{owner}/{repo}/merge-upstream": {
|
|
80
|
-
"post": {
|
|
394
|
+
"post": {
|
|
395
|
+
"operationId": "repos/merge-upstream",
|
|
396
|
+
"summary": "Sync a fork branch with the upstream repository",
|
|
397
|
+
"tags": [
|
|
398
|
+
"repos"
|
|
399
|
+
],
|
|
400
|
+
"responses": {
|
|
401
|
+
"200": {
|
|
402
|
+
"description": "merge result"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
81
406
|
},
|
|
82
407
|
"/repos/{owner}/{repo}/vulnerability-alerts": {
|
|
83
|
-
"get": {
|
|
408
|
+
"get": {
|
|
409
|
+
"operationId": "repos/check-vulnerability-alerts",
|
|
410
|
+
"summary": "Check if Dependabot vulnerability alerts are enabled",
|
|
411
|
+
"tags": [
|
|
412
|
+
"repos"
|
|
413
|
+
],
|
|
414
|
+
"responses": {
|
|
415
|
+
"204": {
|
|
416
|
+
"description": "enabled"
|
|
417
|
+
},
|
|
418
|
+
"404": {
|
|
419
|
+
"description": "disabled"
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
84
423
|
},
|
|
85
424
|
"/repos/{owner}/{repo}/git/refs": {
|
|
86
|
-
"post": {
|
|
425
|
+
"post": {
|
|
426
|
+
"operationId": "git/create-ref",
|
|
427
|
+
"summary": "Create a reference",
|
|
428
|
+
"tags": [
|
|
429
|
+
"git"
|
|
430
|
+
],
|
|
431
|
+
"responses": {
|
|
432
|
+
"201": {
|
|
433
|
+
"description": "ref created"
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
87
437
|
},
|
|
88
438
|
"/repos/{owner}/{repo}/git/ref/{ref}": {
|
|
89
|
-
"get": {
|
|
439
|
+
"get": {
|
|
440
|
+
"operationId": "git/get-ref",
|
|
441
|
+
"summary": "Get a reference",
|
|
442
|
+
"tags": [
|
|
443
|
+
"git"
|
|
444
|
+
],
|
|
445
|
+
"responses": {
|
|
446
|
+
"200": {
|
|
447
|
+
"description": "ref"
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
}
|
|
90
451
|
},
|
|
91
452
|
"/repos/{owner}/{repo}/git/matching-refs/{ref}": {
|
|
92
|
-
"get": {
|
|
453
|
+
"get": {
|
|
454
|
+
"operationId": "git/list-matching-refs",
|
|
455
|
+
"summary": "List matching references",
|
|
456
|
+
"tags": [
|
|
457
|
+
"git"
|
|
458
|
+
],
|
|
459
|
+
"responses": {
|
|
460
|
+
"200": {
|
|
461
|
+
"description": "list of matching refs"
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
93
465
|
},
|
|
94
466
|
"/repos/{owner}/{repo}/commits/{commit_sha}/comments": {
|
|
95
|
-
"get": {
|
|
467
|
+
"get": {
|
|
468
|
+
"operationId": "repos/list-commit-comments",
|
|
469
|
+
"summary": "List commit comments",
|
|
470
|
+
"tags": [
|
|
471
|
+
"repos"
|
|
472
|
+
],
|
|
473
|
+
"responses": {
|
|
474
|
+
"200": {
|
|
475
|
+
"description": "list of commit comments"
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
96
479
|
},
|
|
97
480
|
"/repos/{owner}/{repo}/stats/contributors": {
|
|
98
|
-
"get": {
|
|
481
|
+
"get": {
|
|
482
|
+
"operationId": "repos/get-contributors-stats",
|
|
483
|
+
"summary": "Get all contributor commit activity (async-computed statistics)",
|
|
484
|
+
"tags": [
|
|
485
|
+
"repos"
|
|
486
|
+
],
|
|
487
|
+
"responses": {
|
|
488
|
+
"200": {
|
|
489
|
+
"description": "contributor stats"
|
|
490
|
+
},
|
|
491
|
+
"202": {
|
|
492
|
+
"description": "stats being computed"
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
99
496
|
},
|
|
100
497
|
"/repos/{owner}/{repo}/stats/commit_activity": {
|
|
101
|
-
"get": {
|
|
498
|
+
"get": {
|
|
499
|
+
"operationId": "repos/get-commit-activity-stats",
|
|
500
|
+
"summary": "Get the last year of commit activity (async-computed statistics)",
|
|
501
|
+
"tags": [
|
|
502
|
+
"repos"
|
|
503
|
+
],
|
|
504
|
+
"responses": {
|
|
505
|
+
"200": {
|
|
506
|
+
"description": "commit activity"
|
|
507
|
+
},
|
|
508
|
+
"202": {
|
|
509
|
+
"description": "stats being computed"
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
}
|
|
102
513
|
},
|
|
103
514
|
"/repos/{owner}/{repo}/transfer": {
|
|
104
|
-
"post": {
|
|
515
|
+
"post": {
|
|
516
|
+
"operationId": "repos/transfer",
|
|
517
|
+
"summary": "Transfer a repository to another owner",
|
|
518
|
+
"tags": [
|
|
519
|
+
"repos"
|
|
520
|
+
],
|
|
521
|
+
"responses": {
|
|
522
|
+
"202": {
|
|
523
|
+
"description": "transfer accepted"
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
105
527
|
},
|
|
106
528
|
"/repos/{owner}/{repo}/automated-security-fixes": {
|
|
107
|
-
"delete": {
|
|
529
|
+
"delete": {
|
|
530
|
+
"operationId": "repos/disable-automated-security-fixes",
|
|
531
|
+
"summary": "Disable automated security fixes (Dependabot security updates toggle)",
|
|
532
|
+
"tags": [
|
|
533
|
+
"repos"
|
|
534
|
+
],
|
|
535
|
+
"responses": {
|
|
536
|
+
"204": {
|
|
537
|
+
"description": "disabled"
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
108
541
|
}
|
|
109
542
|
}
|
|
110
543
|
}
|