@automate.ax/integration-contracts 0.55.0
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/dist/airtable/api.d.ts +19 -0
- package/dist/airtable/api.js +44 -0
- package/dist/airtable/index.d.ts +353 -0
- package/dist/airtable/index.js +32 -0
- package/dist/airtable/schemas.d.ts +716 -0
- package/dist/airtable/schemas.js +184 -0
- package/dist/asana/api.d.ts +70 -0
- package/dist/asana/api.js +119 -0
- package/dist/asana/index.d.ts +384 -0
- package/dist/asana/index.js +38 -0
- package/dist/asana/schemas.d.ts +1060 -0
- package/dist/asana/schemas.js +512 -0
- package/dist/brevo/api.d.ts +31 -0
- package/dist/brevo/api.js +64 -0
- package/dist/brevo/index.d.ts +822 -0
- package/dist/brevo/index.js +51 -0
- package/dist/brevo/schemas.d.ts +1217 -0
- package/dist/brevo/schemas.js +332 -0
- package/dist/github/index.d.ts +37 -0
- package/dist/github/index.js +106 -0
- package/dist/github/schemas.d.ts +8014 -0
- package/dist/github/schemas.js +113 -0
- package/dist/gmail/gmail.d.ts +172 -0
- package/dist/gmail/gmail.js +405 -0
- package/dist/gmail/index.d.ts +262 -0
- package/dist/gmail/index.js +23 -0
- package/dist/gmail/schemas.d.ts +444 -0
- package/dist/gmail/schemas.js +242 -0
- package/dist/google-calendar/event-schemas.d.ts +117 -0
- package/dist/google-calendar/event-schemas.js +13 -0
- package/dist/google-calendar/google-calendar.d.ts +147 -0
- package/dist/google-calendar/google-calendar.js +583 -0
- package/dist/google-calendar/index.d.ts +365 -0
- package/dist/google-calendar/index.js +24 -0
- package/dist/google-calendar/schemas.d.ts +592 -0
- package/dist/google-calendar/schemas.js +379 -0
- package/dist/google-forms/event-schemas.d.ts +105 -0
- package/dist/google-forms/event-schemas.js +20 -0
- package/dist/google-forms/google-forms.d.ts +243 -0
- package/dist/google-forms/google-forms.js +581 -0
- package/dist/google-forms/index.d.ts +141 -0
- package/dist/google-forms/index.js +20 -0
- package/dist/google-forms/schemas.d.ts +618 -0
- package/dist/google-forms/schemas.js +383 -0
- package/dist/linear/api.d.ts +63 -0
- package/dist/linear/api.js +88 -0
- package/dist/linear/index.d.ts +1338 -0
- package/dist/linear/index.js +55 -0
- package/dist/linear/schemas.d.ts +1795 -0
- package/dist/linear/schemas.js +760 -0
- package/dist/outlook/graph.d.ts +34 -0
- package/dist/outlook/graph.js +98 -0
- package/dist/outlook/index.d.ts +115 -0
- package/dist/outlook/index.js +11 -0
- package/dist/outlook/schemas.d.ts +529 -0
- package/dist/outlook/schemas.js +312 -0
- package/dist/resend/index.d.ts +707 -0
- package/dist/resend/index.js +54 -0
- package/dist/resend/schemas.d.ts +1033 -0
- package/dist/resend/schemas.js +377 -0
- package/dist/slack/index.d.ts +151 -0
- package/dist/slack/index.js +22 -0
- package/dist/slack/schemas.d.ts +641 -0
- package/dist/slack/schemas.js +581 -0
- package/dist/teams/graph.d.ts +33 -0
- package/dist/teams/graph.js +95 -0
- package/dist/teams/index.d.ts +164 -0
- package/dist/teams/index.js +21 -0
- package/dist/teams/schemas.d.ts +675 -0
- package/dist/teams/schemas.js +365 -0
- package/dist/trello/api.d.ts +69 -0
- package/dist/trello/api.js +140 -0
- package/dist/trello/event-schemas.d.ts +1101 -0
- package/dist/trello/event-schemas.js +233 -0
- package/dist/trello/index.d.ts +721 -0
- package/dist/trello/index.js +35 -0
- package/dist/trello/schemas.d.ts +283 -0
- package/dist/trello/schemas.js +401 -0
- package/dist/triggers.d.ts +26 -0
- package/dist/triggers.js +33 -0
- package/dist/vercel/index.d.ts +1065 -0
- package/dist/vercel/index.js +114 -0
- package/dist/vercel/schemas.d.ts +1518 -0
- package/dist/vercel/schemas.js +335 -0
- package/dist/whatsapp/api.d.ts +62 -0
- package/dist/whatsapp/api.js +121 -0
- package/dist/whatsapp/index.d.ts +614 -0
- package/dist/whatsapp/index.js +35 -0
- package/dist/whatsapp/schemas.d.ts +926 -0
- package/dist/whatsapp/schemas.js +326 -0
- package/package.json +169 -0
- package/src/airtable/api.ts +66 -0
- package/src/airtable/index.ts +41 -0
- package/src/airtable/schemas.ts +231 -0
- package/src/asana/api.ts +171 -0
- package/src/asana/index.ts +49 -0
- package/src/asana/schemas.ts +655 -0
- package/src/brevo/api.ts +89 -0
- package/src/brevo/index.ts +66 -0
- package/src/brevo/schemas.ts +449 -0
- package/src/github/index.ts +217 -0
- package/src/github/schemas.ts +435 -0
- package/src/gmail/gmail.ts +577 -0
- package/src/gmail/index.ts +26 -0
- package/src/gmail/schemas.ts +327 -0
- package/src/google-calendar/event-schemas.ts +16 -0
- package/src/google-calendar/google-calendar.ts +727 -0
- package/src/google-calendar/index.ts +27 -0
- package/src/google-calendar/schemas.ts +529 -0
- package/src/google-forms/event-schemas.ts +26 -0
- package/src/google-forms/google-forms.ts +683 -0
- package/src/google-forms/index.ts +23 -0
- package/src/google-forms/schemas.ts +499 -0
- package/src/linear/api.ts +141 -0
- package/src/linear/index.ts +71 -0
- package/src/linear/schemas.ts +1060 -0
- package/src/outlook/graph.ts +132 -0
- package/src/outlook/index.ts +14 -0
- package/src/outlook/schemas.ts +388 -0
- package/src/resend/index.ts +70 -0
- package/src/resend/schemas.ts +462 -0
- package/src/slack/index.ts +29 -0
- package/src/slack/schemas.ts +737 -0
- package/src/teams/graph.ts +130 -0
- package/src/teams/index.ts +27 -0
- package/src/teams/schemas.ts +463 -0
- package/src/trello/api.ts +190 -0
- package/src/trello/event-schemas.ts +290 -0
- package/src/trello/index.ts +45 -0
- package/src/trello/schemas.ts +507 -0
- package/src/triggers.ts +68 -0
- package/src/vercel/index.ts +147 -0
- package/src/vercel/schemas.ts +594 -0
- package/src/whatsapp/api.ts +171 -0
- package/src/whatsapp/index.ts +46 -0
- package/src/whatsapp/schemas.ts +341 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
import {
|
|
3
|
+
GITHUB_ISSUE_CLOSED_EVENT_SCHEMA,
|
|
4
|
+
GITHUB_ISSUE_EVENT_SCHEMA,
|
|
5
|
+
GITHUB_ISSUE_OPENED_EVENT_SCHEMA,
|
|
6
|
+
GITHUB_ISSUE_REOPENED_EVENT_SCHEMA,
|
|
7
|
+
GITHUB_PULL_REQUEST_CLOSED_EVENT_SCHEMA,
|
|
8
|
+
GITHUB_PULL_REQUEST_EVENT_SCHEMA,
|
|
9
|
+
GITHUB_PULL_REQUEST_MERGED_EVENT_SCHEMA,
|
|
10
|
+
GITHUB_PULL_REQUEST_OPENED_EVENT_SCHEMA,
|
|
11
|
+
GITHUB_PULL_REQUEST_READY_FOR_REVIEW_EVENT_SCHEMA,
|
|
12
|
+
GITHUB_PULL_REQUEST_REVIEW_APPROVED_EVENT_SCHEMA,
|
|
13
|
+
GITHUB_PULL_REQUEST_REVIEW_CHANGES_REQUESTED_EVENT_SCHEMA,
|
|
14
|
+
GITHUB_PULL_REQUEST_REVIEW_DISMISSED_EVENT_SCHEMA,
|
|
15
|
+
GITHUB_PULL_REQUEST_REVIEW_EVENT_SCHEMA,
|
|
16
|
+
GITHUB_PULL_REQUEST_REVIEW_SUBMITTED_EVENT_SCHEMA,
|
|
17
|
+
GITHUB_PULL_REQUEST_SYNCHRONIZED_EVENT_SCHEMA,
|
|
18
|
+
GITHUB_PUSH_EVENT_SCHEMA,
|
|
19
|
+
GITHUB_RELEASE_EVENT_SCHEMA,
|
|
20
|
+
GITHUB_RELEASE_PUBLISHED_EVENT_SCHEMA,
|
|
21
|
+
GITHUB_WORKFLOW_RUN_CANCELLED_EVENT_SCHEMA,
|
|
22
|
+
GITHUB_WORKFLOW_RUN_COMPLETED_EVENT_SCHEMA,
|
|
23
|
+
GITHUB_WORKFLOW_RUN_EVENT_SCHEMA,
|
|
24
|
+
GITHUB_WORKFLOW_RUN_FAILED_EVENT_SCHEMA,
|
|
25
|
+
GITHUB_WORKFLOW_RUN_REQUESTED_EVENT_SCHEMA,
|
|
26
|
+
GITHUB_WORKFLOW_RUN_STARTED_EVENT_SCHEMA,
|
|
27
|
+
GITHUB_WORKFLOW_RUN_SUCCEEDED_EVENT_SCHEMA,
|
|
28
|
+
} from "./schemas"
|
|
29
|
+
|
|
30
|
+
export * from "./schemas"
|
|
31
|
+
|
|
32
|
+
export const GITHUB_TRIGGER_CONFIG_SCHEMA = z.object({})
|
|
33
|
+
|
|
34
|
+
type GitHubTriggerContract<TEventSchema> = {
|
|
35
|
+
readonly configSchema: typeof GITHUB_TRIGGER_CONFIG_SCHEMA
|
|
36
|
+
readonly eventSchema: TEventSchema
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Named registry shape keeps declaration emit within its serialization limit. */
|
|
40
|
+
type GitHubTriggerContracts = {
|
|
41
|
+
readonly "github.issue.closed": GitHubTriggerContract<
|
|
42
|
+
typeof GITHUB_ISSUE_CLOSED_EVENT_SCHEMA
|
|
43
|
+
>
|
|
44
|
+
readonly "github.issue.event": GitHubTriggerContract<
|
|
45
|
+
typeof GITHUB_ISSUE_EVENT_SCHEMA
|
|
46
|
+
>
|
|
47
|
+
readonly "github.issue.opened": GitHubTriggerContract<
|
|
48
|
+
typeof GITHUB_ISSUE_OPENED_EVENT_SCHEMA
|
|
49
|
+
>
|
|
50
|
+
readonly "github.issue.reopened": GitHubTriggerContract<
|
|
51
|
+
typeof GITHUB_ISSUE_REOPENED_EVENT_SCHEMA
|
|
52
|
+
>
|
|
53
|
+
readonly "github.pull-request.closed": GitHubTriggerContract<
|
|
54
|
+
typeof GITHUB_PULL_REQUEST_CLOSED_EVENT_SCHEMA
|
|
55
|
+
>
|
|
56
|
+
readonly "github.pull-request.event": GitHubTriggerContract<
|
|
57
|
+
typeof GITHUB_PULL_REQUEST_EVENT_SCHEMA
|
|
58
|
+
>
|
|
59
|
+
readonly "github.pull-request.merged": GitHubTriggerContract<
|
|
60
|
+
typeof GITHUB_PULL_REQUEST_MERGED_EVENT_SCHEMA
|
|
61
|
+
>
|
|
62
|
+
readonly "github.pull-request.opened": GitHubTriggerContract<
|
|
63
|
+
typeof GITHUB_PULL_REQUEST_OPENED_EVENT_SCHEMA
|
|
64
|
+
>
|
|
65
|
+
readonly "github.pull-request.ready-for-review": GitHubTriggerContract<
|
|
66
|
+
typeof GITHUB_PULL_REQUEST_READY_FOR_REVIEW_EVENT_SCHEMA
|
|
67
|
+
>
|
|
68
|
+
readonly "github.pull-request-review.approved": GitHubTriggerContract<
|
|
69
|
+
typeof GITHUB_PULL_REQUEST_REVIEW_APPROVED_EVENT_SCHEMA
|
|
70
|
+
>
|
|
71
|
+
readonly "github.pull-request-review.changes-requested": GitHubTriggerContract<
|
|
72
|
+
typeof GITHUB_PULL_REQUEST_REVIEW_CHANGES_REQUESTED_EVENT_SCHEMA
|
|
73
|
+
>
|
|
74
|
+
readonly "github.pull-request-review.dismissed": GitHubTriggerContract<
|
|
75
|
+
typeof GITHUB_PULL_REQUEST_REVIEW_DISMISSED_EVENT_SCHEMA
|
|
76
|
+
>
|
|
77
|
+
readonly "github.pull-request-review.event": GitHubTriggerContract<
|
|
78
|
+
typeof GITHUB_PULL_REQUEST_REVIEW_EVENT_SCHEMA
|
|
79
|
+
>
|
|
80
|
+
readonly "github.pull-request-review.submitted": GitHubTriggerContract<
|
|
81
|
+
typeof GITHUB_PULL_REQUEST_REVIEW_SUBMITTED_EVENT_SCHEMA
|
|
82
|
+
>
|
|
83
|
+
readonly "github.pull-request.synchronized": GitHubTriggerContract<
|
|
84
|
+
typeof GITHUB_PULL_REQUEST_SYNCHRONIZED_EVENT_SCHEMA
|
|
85
|
+
>
|
|
86
|
+
readonly "github.push": GitHubTriggerContract<typeof GITHUB_PUSH_EVENT_SCHEMA>
|
|
87
|
+
readonly "github.release.event": GitHubTriggerContract<
|
|
88
|
+
typeof GITHUB_RELEASE_EVENT_SCHEMA
|
|
89
|
+
>
|
|
90
|
+
readonly "github.release.published": GitHubTriggerContract<
|
|
91
|
+
typeof GITHUB_RELEASE_PUBLISHED_EVENT_SCHEMA
|
|
92
|
+
>
|
|
93
|
+
readonly "github.workflow-run.cancelled": GitHubTriggerContract<
|
|
94
|
+
typeof GITHUB_WORKFLOW_RUN_CANCELLED_EVENT_SCHEMA
|
|
95
|
+
>
|
|
96
|
+
readonly "github.workflow-run.completed": GitHubTriggerContract<
|
|
97
|
+
typeof GITHUB_WORKFLOW_RUN_COMPLETED_EVENT_SCHEMA
|
|
98
|
+
>
|
|
99
|
+
readonly "github.workflow-run.event": GitHubTriggerContract<
|
|
100
|
+
typeof GITHUB_WORKFLOW_RUN_EVENT_SCHEMA
|
|
101
|
+
>
|
|
102
|
+
readonly "github.workflow-run.failed": GitHubTriggerContract<
|
|
103
|
+
typeof GITHUB_WORKFLOW_RUN_FAILED_EVENT_SCHEMA
|
|
104
|
+
>
|
|
105
|
+
readonly "github.workflow-run.requested": GitHubTriggerContract<
|
|
106
|
+
typeof GITHUB_WORKFLOW_RUN_REQUESTED_EVENT_SCHEMA
|
|
107
|
+
>
|
|
108
|
+
readonly "github.workflow-run.started": GitHubTriggerContract<
|
|
109
|
+
typeof GITHUB_WORKFLOW_RUN_STARTED_EVENT_SCHEMA
|
|
110
|
+
>
|
|
111
|
+
readonly "github.workflow-run.succeeded": GitHubTriggerContract<
|
|
112
|
+
typeof GITHUB_WORKFLOW_RUN_SUCCEEDED_EVENT_SCHEMA
|
|
113
|
+
>
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export const githubTriggerContracts: GitHubTriggerContracts = {
|
|
117
|
+
"github.issue.closed": {
|
|
118
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
119
|
+
eventSchema: GITHUB_ISSUE_CLOSED_EVENT_SCHEMA,
|
|
120
|
+
},
|
|
121
|
+
"github.issue.event": {
|
|
122
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
123
|
+
eventSchema: GITHUB_ISSUE_EVENT_SCHEMA,
|
|
124
|
+
},
|
|
125
|
+
"github.issue.opened": {
|
|
126
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
127
|
+
eventSchema: GITHUB_ISSUE_OPENED_EVENT_SCHEMA,
|
|
128
|
+
},
|
|
129
|
+
"github.issue.reopened": {
|
|
130
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
131
|
+
eventSchema: GITHUB_ISSUE_REOPENED_EVENT_SCHEMA,
|
|
132
|
+
},
|
|
133
|
+
"github.pull-request.closed": {
|
|
134
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
135
|
+
eventSchema: GITHUB_PULL_REQUEST_CLOSED_EVENT_SCHEMA,
|
|
136
|
+
},
|
|
137
|
+
"github.pull-request.event": {
|
|
138
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
139
|
+
eventSchema: GITHUB_PULL_REQUEST_EVENT_SCHEMA,
|
|
140
|
+
},
|
|
141
|
+
"github.pull-request.merged": {
|
|
142
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
143
|
+
eventSchema: GITHUB_PULL_REQUEST_MERGED_EVENT_SCHEMA,
|
|
144
|
+
},
|
|
145
|
+
"github.pull-request.opened": {
|
|
146
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
147
|
+
eventSchema: GITHUB_PULL_REQUEST_OPENED_EVENT_SCHEMA,
|
|
148
|
+
},
|
|
149
|
+
"github.pull-request.ready-for-review": {
|
|
150
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
151
|
+
eventSchema: GITHUB_PULL_REQUEST_READY_FOR_REVIEW_EVENT_SCHEMA,
|
|
152
|
+
},
|
|
153
|
+
"github.pull-request-review.approved": {
|
|
154
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
155
|
+
eventSchema: GITHUB_PULL_REQUEST_REVIEW_APPROVED_EVENT_SCHEMA,
|
|
156
|
+
},
|
|
157
|
+
"github.pull-request-review.changes-requested": {
|
|
158
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
159
|
+
eventSchema: GITHUB_PULL_REQUEST_REVIEW_CHANGES_REQUESTED_EVENT_SCHEMA,
|
|
160
|
+
},
|
|
161
|
+
"github.pull-request-review.dismissed": {
|
|
162
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
163
|
+
eventSchema: GITHUB_PULL_REQUEST_REVIEW_DISMISSED_EVENT_SCHEMA,
|
|
164
|
+
},
|
|
165
|
+
"github.pull-request-review.event": {
|
|
166
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
167
|
+
eventSchema: GITHUB_PULL_REQUEST_REVIEW_EVENT_SCHEMA,
|
|
168
|
+
},
|
|
169
|
+
"github.pull-request-review.submitted": {
|
|
170
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
171
|
+
eventSchema: GITHUB_PULL_REQUEST_REVIEW_SUBMITTED_EVENT_SCHEMA,
|
|
172
|
+
},
|
|
173
|
+
"github.pull-request.synchronized": {
|
|
174
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
175
|
+
eventSchema: GITHUB_PULL_REQUEST_SYNCHRONIZED_EVENT_SCHEMA,
|
|
176
|
+
},
|
|
177
|
+
"github.push": {
|
|
178
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
179
|
+
eventSchema: GITHUB_PUSH_EVENT_SCHEMA,
|
|
180
|
+
},
|
|
181
|
+
"github.release.event": {
|
|
182
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
183
|
+
eventSchema: GITHUB_RELEASE_EVENT_SCHEMA,
|
|
184
|
+
},
|
|
185
|
+
"github.release.published": {
|
|
186
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
187
|
+
eventSchema: GITHUB_RELEASE_PUBLISHED_EVENT_SCHEMA,
|
|
188
|
+
},
|
|
189
|
+
"github.workflow-run.cancelled": {
|
|
190
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
191
|
+
eventSchema: GITHUB_WORKFLOW_RUN_CANCELLED_EVENT_SCHEMA,
|
|
192
|
+
},
|
|
193
|
+
"github.workflow-run.completed": {
|
|
194
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
195
|
+
eventSchema: GITHUB_WORKFLOW_RUN_COMPLETED_EVENT_SCHEMA,
|
|
196
|
+
},
|
|
197
|
+
"github.workflow-run.event": {
|
|
198
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
199
|
+
eventSchema: GITHUB_WORKFLOW_RUN_EVENT_SCHEMA,
|
|
200
|
+
},
|
|
201
|
+
"github.workflow-run.failed": {
|
|
202
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
203
|
+
eventSchema: GITHUB_WORKFLOW_RUN_FAILED_EVENT_SCHEMA,
|
|
204
|
+
},
|
|
205
|
+
"github.workflow-run.requested": {
|
|
206
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
207
|
+
eventSchema: GITHUB_WORKFLOW_RUN_REQUESTED_EVENT_SCHEMA,
|
|
208
|
+
},
|
|
209
|
+
"github.workflow-run.started": {
|
|
210
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
211
|
+
eventSchema: GITHUB_WORKFLOW_RUN_STARTED_EVENT_SCHEMA,
|
|
212
|
+
},
|
|
213
|
+
"github.workflow-run.succeeded": {
|
|
214
|
+
configSchema: GITHUB_TRIGGER_CONFIG_SCHEMA,
|
|
215
|
+
eventSchema: GITHUB_WORKFLOW_RUN_SUCCEEDED_EVENT_SCHEMA,
|
|
216
|
+
},
|
|
217
|
+
}
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
import type { Encodable } from "@automate.ax/codec"
|
|
2
|
+
import type { webhooks } from "@octokit/openapi-webhooks-types"
|
|
3
|
+
import type { Octokit } from "@octokit/rest"
|
|
4
|
+
import { z } from "zod"
|
|
5
|
+
|
|
6
|
+
const GITHUB_EVENT_BASE_SCHEMA = z.looseObject({
|
|
7
|
+
installation: z.looseObject({ id: z.number().int().positive() }),
|
|
8
|
+
repository: z.looseObject({
|
|
9
|
+
full_name: z.string(),
|
|
10
|
+
id: z.number().int().positive(),
|
|
11
|
+
}),
|
|
12
|
+
sender: z.looseObject({
|
|
13
|
+
id: z.number().int().positive(),
|
|
14
|
+
login: z.string(),
|
|
15
|
+
}),
|
|
16
|
+
})
|
|
17
|
+
const GITHUB_ISSUE_EVENT_BASE_SCHEMA = GITHUB_EVENT_BASE_SCHEMA.extend({
|
|
18
|
+
action: z.string(),
|
|
19
|
+
issue: z.looseObject({ id: z.number(), number: z.number().int() }),
|
|
20
|
+
})
|
|
21
|
+
const GITHUB_PULL_REQUEST_EVENT_BASE_SCHEMA = GITHUB_EVENT_BASE_SCHEMA.extend({
|
|
22
|
+
action: z.string(),
|
|
23
|
+
pull_request: z.looseObject({
|
|
24
|
+
id: z.number(),
|
|
25
|
+
merged: z.boolean(),
|
|
26
|
+
number: z.number().int(),
|
|
27
|
+
}),
|
|
28
|
+
})
|
|
29
|
+
const GITHUB_PULL_REQUEST_REVIEW_EVENT_BASE_SCHEMA =
|
|
30
|
+
GITHUB_PULL_REQUEST_EVENT_BASE_SCHEMA.extend({
|
|
31
|
+
review: z.looseObject({ id: z.number() }),
|
|
32
|
+
})
|
|
33
|
+
const GITHUB_PUSH_EVENT_BASE_SCHEMA = GITHUB_EVENT_BASE_SCHEMA.extend({
|
|
34
|
+
after: z.string(),
|
|
35
|
+
before: z.string(),
|
|
36
|
+
ref: z.string(),
|
|
37
|
+
})
|
|
38
|
+
const GITHUB_RELEASE_EVENT_BASE_SCHEMA = GITHUB_EVENT_BASE_SCHEMA.extend({
|
|
39
|
+
action: z.string(),
|
|
40
|
+
release: z.looseObject({ id: z.number(), tag_name: z.string() }),
|
|
41
|
+
})
|
|
42
|
+
const GITHUB_WORKFLOW_RUN_EVENT_BASE_SCHEMA = GITHUB_EVENT_BASE_SCHEMA.extend({
|
|
43
|
+
action: z.string(),
|
|
44
|
+
workflow_run: z.looseObject({
|
|
45
|
+
conclusion: z.string().nullable(),
|
|
46
|
+
id: z.number(),
|
|
47
|
+
}),
|
|
48
|
+
})
|
|
49
|
+
const GITHUB_ISSUE_BASE_SCHEMA = z.looseObject({
|
|
50
|
+
id: z.number(),
|
|
51
|
+
number: z.number().int(),
|
|
52
|
+
title: z.string(),
|
|
53
|
+
})
|
|
54
|
+
const GITHUB_PULL_REQUEST_BASE_SCHEMA = GITHUB_ISSUE_BASE_SCHEMA.extend({
|
|
55
|
+
head: z.looseObject({ ref: z.string(), sha: z.string() }),
|
|
56
|
+
})
|
|
57
|
+
const GITHUB_ISSUE_COMMENT_BASE_SCHEMA = z.looseObject({
|
|
58
|
+
body: z.string().nullable(),
|
|
59
|
+
id: z.number(),
|
|
60
|
+
})
|
|
61
|
+
const GITHUB_PULL_REQUEST_REVIEW_BASE_SCHEMA = z.looseObject({
|
|
62
|
+
id: z.number(),
|
|
63
|
+
state: z.string(),
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
type GitHubWebhookPayload<TKey extends keyof webhooks> =
|
|
67
|
+
webhooks[TKey]["post"] extends {
|
|
68
|
+
requestBody: {
|
|
69
|
+
content: { "application/json": infer TPayload }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
? TPayload & Record<string, Encodable>
|
|
73
|
+
: never
|
|
74
|
+
|
|
75
|
+
/** Official GitHub issue webhook payload union. */
|
|
76
|
+
export type GitHubIssueEvent = GitHubWebhookPayload<
|
|
77
|
+
Extract<keyof webhooks, `issues-${string}`>
|
|
78
|
+
>
|
|
79
|
+
|
|
80
|
+
/** Official GitHub pull request webhook payload union. */
|
|
81
|
+
export type GitHubPullRequestEvent = GitHubWebhookPayload<
|
|
82
|
+
Extract<keyof webhooks, `pull-request-${string}`>
|
|
83
|
+
>
|
|
84
|
+
|
|
85
|
+
/** Official GitHub pull request review webhook payload union. */
|
|
86
|
+
export type GitHubPullRequestReviewEvent = GitHubWebhookPayload<
|
|
87
|
+
Extract<keyof webhooks, `pull-request-review-${string}`>
|
|
88
|
+
>
|
|
89
|
+
|
|
90
|
+
/** Official GitHub push webhook payload. */
|
|
91
|
+
export type GitHubPushEvent = GitHubWebhookPayload<"push">
|
|
92
|
+
|
|
93
|
+
/** Official GitHub release webhook payload union. */
|
|
94
|
+
export type GitHubReleaseEvent = GitHubWebhookPayload<
|
|
95
|
+
Extract<keyof webhooks, `release-${string}`>
|
|
96
|
+
>
|
|
97
|
+
|
|
98
|
+
/** Official GitHub workflow run webhook payload union. */
|
|
99
|
+
export type GitHubWorkflowRunEvent = GitHubWebhookPayload<
|
|
100
|
+
Extract<keyof webhooks, `workflow-run-${string}`>
|
|
101
|
+
>
|
|
102
|
+
|
|
103
|
+
/** GitHub issue-opened webhook payload. */
|
|
104
|
+
export type GitHubIssueOpenedEvent = GitHubWebhookPayload<"issues-opened">
|
|
105
|
+
|
|
106
|
+
/** GitHub issue-reopened webhook payload. */
|
|
107
|
+
export type GitHubIssueReopenedEvent = GitHubWebhookPayload<"issues-reopened">
|
|
108
|
+
|
|
109
|
+
/** GitHub issue-closed webhook payload. */
|
|
110
|
+
export type GitHubIssueClosedEvent = GitHubWebhookPayload<"issues-closed">
|
|
111
|
+
|
|
112
|
+
/** GitHub pull-request-opened webhook payload. */
|
|
113
|
+
export type GitHubPullRequestOpenedEvent =
|
|
114
|
+
GitHubWebhookPayload<"pull-request-opened">
|
|
115
|
+
|
|
116
|
+
/** GitHub pull-request-ready-for-review webhook payload. */
|
|
117
|
+
export type GitHubPullRequestReadyForReviewEvent =
|
|
118
|
+
GitHubWebhookPayload<"pull-request-ready-for-review">
|
|
119
|
+
|
|
120
|
+
/** GitHub pull-request-synchronize webhook payload. */
|
|
121
|
+
export type GitHubPullRequestSynchronizedEvent =
|
|
122
|
+
GitHubWebhookPayload<"pull-request-synchronize">
|
|
123
|
+
|
|
124
|
+
/** GitHub unmerged pull-request-closed webhook payload. */
|
|
125
|
+
export type GitHubPullRequestClosedEvent =
|
|
126
|
+
GitHubWebhookPayload<"pull-request-closed"> & {
|
|
127
|
+
pull_request: GitHubWebhookPayload<"pull-request-closed">["pull_request"] & {
|
|
128
|
+
merged: false
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/** GitHub merged pull-request-closed webhook payload. */
|
|
133
|
+
export type GitHubPullRequestMergedEvent =
|
|
134
|
+
GitHubWebhookPayload<"pull-request-closed"> & {
|
|
135
|
+
pull_request: GitHubWebhookPayload<"pull-request-closed">["pull_request"] & {
|
|
136
|
+
merged: true
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** GitHub pull-request-review-submitted webhook payload. */
|
|
141
|
+
export type GitHubPullRequestReviewSubmittedEvent =
|
|
142
|
+
GitHubWebhookPayload<"pull-request-review-submitted">
|
|
143
|
+
|
|
144
|
+
/** Submitted GitHub pull request review with an approved state. */
|
|
145
|
+
export type GitHubPullRequestReviewApprovedEvent =
|
|
146
|
+
GitHubPullRequestReviewSubmittedEvent & {
|
|
147
|
+
review: GitHubPullRequestReviewSubmittedEvent["review"] & {
|
|
148
|
+
state: "approved"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** Submitted GitHub pull request review requesting changes. */
|
|
153
|
+
export type GitHubPullRequestReviewChangesRequestedEvent =
|
|
154
|
+
GitHubPullRequestReviewSubmittedEvent & {
|
|
155
|
+
review: GitHubPullRequestReviewSubmittedEvent["review"] & {
|
|
156
|
+
state: "changes_requested"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/** GitHub pull-request-review-dismissed webhook payload. */
|
|
161
|
+
export type GitHubPullRequestReviewDismissedEvent =
|
|
162
|
+
GitHubWebhookPayload<"pull-request-review-dismissed">
|
|
163
|
+
|
|
164
|
+
/** GitHub workflow-run-requested webhook payload. */
|
|
165
|
+
export type GitHubWorkflowRunRequestedEvent =
|
|
166
|
+
GitHubWebhookPayload<"workflow-run-requested">
|
|
167
|
+
|
|
168
|
+
/** GitHub workflow-run-in-progress webhook payload. */
|
|
169
|
+
export type GitHubWorkflowRunStartedEvent =
|
|
170
|
+
GitHubWebhookPayload<"workflow-run-in-progress">
|
|
171
|
+
|
|
172
|
+
/** GitHub workflow-run-completed webhook payload. */
|
|
173
|
+
export type GitHubWorkflowRunCompletedEvent =
|
|
174
|
+
GitHubWebhookPayload<"workflow-run-completed">
|
|
175
|
+
|
|
176
|
+
/** Completed GitHub workflow run with a successful conclusion. */
|
|
177
|
+
export type GitHubWorkflowRunSucceededEvent =
|
|
178
|
+
GitHubWorkflowRunCompletedEvent & {
|
|
179
|
+
workflow_run: GitHubWorkflowRunCompletedEvent["workflow_run"] & {
|
|
180
|
+
conclusion: "success"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** Completed GitHub workflow run with a failure conclusion. */
|
|
185
|
+
export type GitHubWorkflowRunFailedEvent = GitHubWorkflowRunCompletedEvent & {
|
|
186
|
+
workflow_run: GitHubWorkflowRunCompletedEvent["workflow_run"] & {
|
|
187
|
+
conclusion: "failure"
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/** Completed GitHub workflow run with a cancelled conclusion. */
|
|
192
|
+
export type GitHubWorkflowRunCancelledEvent =
|
|
193
|
+
GitHubWorkflowRunCompletedEvent & {
|
|
194
|
+
workflow_run: GitHubWorkflowRunCompletedEvent["workflow_run"] & {
|
|
195
|
+
conclusion: "cancelled"
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/** GitHub release-published webhook payload. */
|
|
200
|
+
export type GitHubReleasePublishedEvent =
|
|
201
|
+
GitHubWebhookPayload<"release-published">
|
|
202
|
+
|
|
203
|
+
/** Octokit issue response kept aligned with the installed SDK version. */
|
|
204
|
+
type GitHubIssue = Awaited<
|
|
205
|
+
ReturnType<Octokit["rest"]["issues"]["get"]>
|
|
206
|
+
>["data"] &
|
|
207
|
+
Encodable
|
|
208
|
+
|
|
209
|
+
/** Octokit pull request response kept aligned with the installed SDK version. */
|
|
210
|
+
type GitHubPullRequest = Awaited<
|
|
211
|
+
ReturnType<Octokit["rest"]["pulls"]["get"]>
|
|
212
|
+
>["data"] &
|
|
213
|
+
Encodable
|
|
214
|
+
|
|
215
|
+
/** Octokit pull request list item kept aligned with the installed SDK version. */
|
|
216
|
+
type GitHubPullRequestSummary = Awaited<
|
|
217
|
+
ReturnType<Octokit["rest"]["pulls"]["list"]>
|
|
218
|
+
>["data"][number] &
|
|
219
|
+
Encodable
|
|
220
|
+
|
|
221
|
+
/** Octokit issue comment response kept aligned with the installed SDK version. */
|
|
222
|
+
type GitHubIssueComment = Awaited<
|
|
223
|
+
ReturnType<Octokit["rest"]["issues"]["createComment"]>
|
|
224
|
+
>["data"] &
|
|
225
|
+
Encodable
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Octokit pull request review response kept aligned with the installed SDK
|
|
229
|
+
* version.
|
|
230
|
+
*/
|
|
231
|
+
type GitHubPullRequestReview = Awaited<
|
|
232
|
+
ReturnType<Octokit["rest"]["pulls"]["createReview"]>
|
|
233
|
+
>["data"] &
|
|
234
|
+
Encodable
|
|
235
|
+
|
|
236
|
+
export const GITHUB_ISSUE_EVENT_SCHEMA: z.ZodType<GitHubIssueEvent> =
|
|
237
|
+
z.custom<GitHubIssueEvent>(
|
|
238
|
+
(value) => GITHUB_ISSUE_EVENT_BASE_SCHEMA.safeParse(value).success,
|
|
239
|
+
)
|
|
240
|
+
export const GITHUB_PULL_REQUEST_EVENT_SCHEMA: z.ZodType<GitHubPullRequestEvent> =
|
|
241
|
+
z.custom<GitHubPullRequestEvent>(
|
|
242
|
+
(value) => GITHUB_PULL_REQUEST_EVENT_BASE_SCHEMA.safeParse(value).success,
|
|
243
|
+
)
|
|
244
|
+
export const GITHUB_PULL_REQUEST_REVIEW_EVENT_SCHEMA: z.ZodType<GitHubPullRequestReviewEvent> =
|
|
245
|
+
z.custom<GitHubPullRequestReviewEvent>(
|
|
246
|
+
(value) =>
|
|
247
|
+
GITHUB_PULL_REQUEST_REVIEW_EVENT_BASE_SCHEMA.safeParse(value).success,
|
|
248
|
+
)
|
|
249
|
+
export const GITHUB_PUSH_EVENT_SCHEMA: z.ZodType<GitHubPushEvent> =
|
|
250
|
+
z.custom<GitHubPushEvent>(
|
|
251
|
+
(value) => GITHUB_PUSH_EVENT_BASE_SCHEMA.safeParse(value).success,
|
|
252
|
+
)
|
|
253
|
+
export const GITHUB_RELEASE_EVENT_SCHEMA: z.ZodType<GitHubReleaseEvent> =
|
|
254
|
+
z.custom<GitHubReleaseEvent>(
|
|
255
|
+
(value) => GITHUB_RELEASE_EVENT_BASE_SCHEMA.safeParse(value).success,
|
|
256
|
+
)
|
|
257
|
+
export const GITHUB_WORKFLOW_RUN_EVENT_SCHEMA: z.ZodType<GitHubWorkflowRunEvent> =
|
|
258
|
+
z.custom<GitHubWorkflowRunEvent>(
|
|
259
|
+
(value) => GITHUB_WORKFLOW_RUN_EVENT_BASE_SCHEMA.safeParse(value).success,
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
export const GITHUB_ISSUE_OPENED_EVENT_SCHEMA = githubSemanticEventSchema<
|
|
263
|
+
GitHubIssueEvent,
|
|
264
|
+
GitHubIssueOpenedEvent
|
|
265
|
+
>(GITHUB_ISSUE_EVENT_SCHEMA, (event) => event.action === "opened")
|
|
266
|
+
export const GITHUB_ISSUE_REOPENED_EVENT_SCHEMA = githubSemanticEventSchema<
|
|
267
|
+
GitHubIssueEvent,
|
|
268
|
+
GitHubIssueReopenedEvent
|
|
269
|
+
>(GITHUB_ISSUE_EVENT_SCHEMA, (event) => event.action === "reopened")
|
|
270
|
+
export const GITHUB_ISSUE_CLOSED_EVENT_SCHEMA = githubSemanticEventSchema<
|
|
271
|
+
GitHubIssueEvent,
|
|
272
|
+
GitHubIssueClosedEvent
|
|
273
|
+
>(GITHUB_ISSUE_EVENT_SCHEMA, (event) => event.action === "closed")
|
|
274
|
+
export const GITHUB_PULL_REQUEST_OPENED_EVENT_SCHEMA =
|
|
275
|
+
githubSemanticEventSchema<
|
|
276
|
+
GitHubPullRequestEvent,
|
|
277
|
+
GitHubPullRequestOpenedEvent
|
|
278
|
+
>(GITHUB_PULL_REQUEST_EVENT_SCHEMA, (event) => event.action === "opened")
|
|
279
|
+
export const GITHUB_PULL_REQUEST_READY_FOR_REVIEW_EVENT_SCHEMA =
|
|
280
|
+
githubSemanticEventSchema<
|
|
281
|
+
GitHubPullRequestEvent,
|
|
282
|
+
GitHubPullRequestReadyForReviewEvent
|
|
283
|
+
>(
|
|
284
|
+
GITHUB_PULL_REQUEST_EVENT_SCHEMA,
|
|
285
|
+
(event) => event.action === "ready_for_review",
|
|
286
|
+
)
|
|
287
|
+
export const GITHUB_PULL_REQUEST_SYNCHRONIZED_EVENT_SCHEMA =
|
|
288
|
+
githubSemanticEventSchema<
|
|
289
|
+
GitHubPullRequestEvent,
|
|
290
|
+
GitHubPullRequestSynchronizedEvent
|
|
291
|
+
>(GITHUB_PULL_REQUEST_EVENT_SCHEMA, (event) => event.action === "synchronize")
|
|
292
|
+
export const GITHUB_PULL_REQUEST_CLOSED_EVENT_SCHEMA =
|
|
293
|
+
githubSemanticEventSchema<
|
|
294
|
+
GitHubPullRequestEvent,
|
|
295
|
+
GitHubPullRequestClosedEvent
|
|
296
|
+
>(
|
|
297
|
+
GITHUB_PULL_REQUEST_EVENT_SCHEMA,
|
|
298
|
+
(event) => event.action === "closed" && !event.pull_request.merged,
|
|
299
|
+
)
|
|
300
|
+
export const GITHUB_PULL_REQUEST_MERGED_EVENT_SCHEMA =
|
|
301
|
+
githubSemanticEventSchema<
|
|
302
|
+
GitHubPullRequestEvent,
|
|
303
|
+
GitHubPullRequestMergedEvent
|
|
304
|
+
>(
|
|
305
|
+
GITHUB_PULL_REQUEST_EVENT_SCHEMA,
|
|
306
|
+
(event) => event.action === "closed" && event.pull_request.merged,
|
|
307
|
+
)
|
|
308
|
+
export const GITHUB_PULL_REQUEST_REVIEW_SUBMITTED_EVENT_SCHEMA =
|
|
309
|
+
githubSemanticEventSchema<
|
|
310
|
+
GitHubPullRequestReviewEvent,
|
|
311
|
+
GitHubPullRequestReviewSubmittedEvent
|
|
312
|
+
>(
|
|
313
|
+
GITHUB_PULL_REQUEST_REVIEW_EVENT_SCHEMA,
|
|
314
|
+
(event) => event.action === "submitted",
|
|
315
|
+
)
|
|
316
|
+
export const GITHUB_PULL_REQUEST_REVIEW_APPROVED_EVENT_SCHEMA =
|
|
317
|
+
githubSemanticEventSchema<
|
|
318
|
+
GitHubPullRequestReviewEvent,
|
|
319
|
+
GitHubPullRequestReviewApprovedEvent
|
|
320
|
+
>(
|
|
321
|
+
GITHUB_PULL_REQUEST_REVIEW_EVENT_SCHEMA,
|
|
322
|
+
(event) =>
|
|
323
|
+
event.action === "submitted" && event.review.state === "approved",
|
|
324
|
+
)
|
|
325
|
+
export const GITHUB_PULL_REQUEST_REVIEW_CHANGES_REQUESTED_EVENT_SCHEMA =
|
|
326
|
+
githubSemanticEventSchema<
|
|
327
|
+
GitHubPullRequestReviewEvent,
|
|
328
|
+
GitHubPullRequestReviewChangesRequestedEvent
|
|
329
|
+
>(
|
|
330
|
+
GITHUB_PULL_REQUEST_REVIEW_EVENT_SCHEMA,
|
|
331
|
+
(event) =>
|
|
332
|
+
event.action === "submitted" &&
|
|
333
|
+
event.review.state === "changes_requested",
|
|
334
|
+
)
|
|
335
|
+
export const GITHUB_PULL_REQUEST_REVIEW_DISMISSED_EVENT_SCHEMA =
|
|
336
|
+
githubSemanticEventSchema<
|
|
337
|
+
GitHubPullRequestReviewEvent,
|
|
338
|
+
GitHubPullRequestReviewDismissedEvent
|
|
339
|
+
>(
|
|
340
|
+
GITHUB_PULL_REQUEST_REVIEW_EVENT_SCHEMA,
|
|
341
|
+
(event) => event.action === "dismissed",
|
|
342
|
+
)
|
|
343
|
+
export const GITHUB_WORKFLOW_RUN_REQUESTED_EVENT_SCHEMA =
|
|
344
|
+
githubSemanticEventSchema<
|
|
345
|
+
GitHubWorkflowRunEvent,
|
|
346
|
+
GitHubWorkflowRunRequestedEvent
|
|
347
|
+
>(GITHUB_WORKFLOW_RUN_EVENT_SCHEMA, (event) => event.action === "requested")
|
|
348
|
+
export const GITHUB_WORKFLOW_RUN_STARTED_EVENT_SCHEMA =
|
|
349
|
+
githubSemanticEventSchema<
|
|
350
|
+
GitHubWorkflowRunEvent,
|
|
351
|
+
GitHubWorkflowRunStartedEvent
|
|
352
|
+
>(GITHUB_WORKFLOW_RUN_EVENT_SCHEMA, (event) => event.action === "in_progress")
|
|
353
|
+
export const GITHUB_WORKFLOW_RUN_COMPLETED_EVENT_SCHEMA =
|
|
354
|
+
githubSemanticEventSchema<
|
|
355
|
+
GitHubWorkflowRunEvent,
|
|
356
|
+
GitHubWorkflowRunCompletedEvent
|
|
357
|
+
>(GITHUB_WORKFLOW_RUN_EVENT_SCHEMA, (event) => event.action === "completed")
|
|
358
|
+
export const GITHUB_WORKFLOW_RUN_SUCCEEDED_EVENT_SCHEMA =
|
|
359
|
+
githubSemanticEventSchema<
|
|
360
|
+
GitHubWorkflowRunEvent,
|
|
361
|
+
GitHubWorkflowRunSucceededEvent
|
|
362
|
+
>(
|
|
363
|
+
GITHUB_WORKFLOW_RUN_EVENT_SCHEMA,
|
|
364
|
+
(event) =>
|
|
365
|
+
event.action === "completed" &&
|
|
366
|
+
event.workflow_run.conclusion === "success",
|
|
367
|
+
)
|
|
368
|
+
export const GITHUB_WORKFLOW_RUN_FAILED_EVENT_SCHEMA =
|
|
369
|
+
githubSemanticEventSchema<
|
|
370
|
+
GitHubWorkflowRunEvent,
|
|
371
|
+
GitHubWorkflowRunFailedEvent
|
|
372
|
+
>(
|
|
373
|
+
GITHUB_WORKFLOW_RUN_EVENT_SCHEMA,
|
|
374
|
+
(event) =>
|
|
375
|
+
event.action === "completed" &&
|
|
376
|
+
event.workflow_run.conclusion === "failure",
|
|
377
|
+
)
|
|
378
|
+
export const GITHUB_WORKFLOW_RUN_CANCELLED_EVENT_SCHEMA =
|
|
379
|
+
githubSemanticEventSchema<
|
|
380
|
+
GitHubWorkflowRunEvent,
|
|
381
|
+
GitHubWorkflowRunCancelledEvent
|
|
382
|
+
>(
|
|
383
|
+
GITHUB_WORKFLOW_RUN_EVENT_SCHEMA,
|
|
384
|
+
(event) =>
|
|
385
|
+
event.action === "completed" &&
|
|
386
|
+
event.workflow_run.conclusion === "cancelled",
|
|
387
|
+
)
|
|
388
|
+
export const GITHUB_RELEASE_PUBLISHED_EVENT_SCHEMA = githubSemanticEventSchema<
|
|
389
|
+
GitHubReleaseEvent,
|
|
390
|
+
GitHubReleasePublishedEvent
|
|
391
|
+
>(GITHUB_RELEASE_EVENT_SCHEMA, (event) => event.action === "published")
|
|
392
|
+
|
|
393
|
+
export const GITHUB_ISSUE_SCHEMA = z.custom<GitHubIssue>(
|
|
394
|
+
(value) => GITHUB_ISSUE_BASE_SCHEMA.safeParse(value).success,
|
|
395
|
+
)
|
|
396
|
+
export const GITHUB_PULL_REQUEST_SCHEMA = z.custom<GitHubPullRequest>(
|
|
397
|
+
(value) => GITHUB_PULL_REQUEST_BASE_SCHEMA.safeParse(value).success,
|
|
398
|
+
)
|
|
399
|
+
export const GITHUB_PULL_REQUEST_SUMMARY_SCHEMA =
|
|
400
|
+
z.custom<GitHubPullRequestSummary>(
|
|
401
|
+
(value) => GITHUB_PULL_REQUEST_BASE_SCHEMA.safeParse(value).success,
|
|
402
|
+
)
|
|
403
|
+
export const GITHUB_ISSUE_COMMENT_SCHEMA = z.custom<GitHubIssueComment>(
|
|
404
|
+
(value) => GITHUB_ISSUE_COMMENT_BASE_SCHEMA.safeParse(value).success,
|
|
405
|
+
)
|
|
406
|
+
export const GITHUB_PULL_REQUEST_REVIEW_SCHEMA =
|
|
407
|
+
z.custom<GitHubPullRequestReview>(
|
|
408
|
+
(value) => GITHUB_PULL_REQUEST_REVIEW_BASE_SCHEMA.safeParse(value).success,
|
|
409
|
+
)
|
|
410
|
+
export const GITHUB_PULL_REQUEST_MERGE_SCHEMA = z.object({
|
|
411
|
+
/** Provider status text describing the merge result. */
|
|
412
|
+
message: z.string(),
|
|
413
|
+
|
|
414
|
+
/** Whether GitHub merged the pull request. */
|
|
415
|
+
merged: z.boolean(),
|
|
416
|
+
|
|
417
|
+
/** Merge commit SHA, when GitHub created one. */
|
|
418
|
+
sha: z.string().nullable(),
|
|
419
|
+
})
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Narrows a validated broad GitHub webhook family to one semantic event.
|
|
423
|
+
*
|
|
424
|
+
* @param schema - Broad webhook-family schema.
|
|
425
|
+
* @param matches - Semantic action or status classifier.
|
|
426
|
+
*/
|
|
427
|
+
function githubSemanticEventSchema<TEvent, TSemanticEvent extends TEvent>(
|
|
428
|
+
schema: z.ZodType<TEvent>,
|
|
429
|
+
matches: (event: TEvent) => boolean,
|
|
430
|
+
): z.ZodType<TSemanticEvent> {
|
|
431
|
+
return z.custom<TSemanticEvent>((value) => {
|
|
432
|
+
const event = schema.safeParse(value)
|
|
433
|
+
return event.success && matches(event.data)
|
|
434
|
+
})
|
|
435
|
+
}
|