mirror of
https://github.com/stablyai/orca.git
synced 2026-11-03 10:37:35 +00:00
80 lines
2.6 KiB
TypeScript
80 lines
2.6 KiB
TypeScript
import { z } from 'zod'
|
|
import type { GitHubPRRefreshReason } from '../github/pull-request-refresh-types'
|
|
import { RepoSelector, SlugRepo } from './github-repo-target-params'
|
|
import { OptionalString, requiredString } from './rpc-param-primitives'
|
|
|
|
export const OptionalPRRefreshReason = z
|
|
.unknown()
|
|
.optional()
|
|
.transform((value): GitHubPRRefreshReason | undefined => {
|
|
return value === 'visible' ||
|
|
value === 'active' ||
|
|
value === 'post-push' ||
|
|
value === 'manual' ||
|
|
value === 'swr'
|
|
? value
|
|
: undefined
|
|
})
|
|
|
|
export const PrForBranch = RepoSelector.extend({
|
|
branch: requiredString('Missing branch'),
|
|
reason: OptionalPRRefreshReason,
|
|
linkedPRNumber: z.number().int().positive().nullable().optional(),
|
|
fallbackPRNumber: z.number().int().positive().nullable().optional(),
|
|
acceptMergedFallbackPR: z.boolean().optional(),
|
|
currentHeadOid: z.string().nullable().optional()
|
|
})
|
|
|
|
export const PullRequest = RepoSelector.extend({
|
|
prNumber: z.number().int().positive(),
|
|
noCache: z.boolean().optional(),
|
|
prRepo: SlugRepo.nullable().optional()
|
|
})
|
|
|
|
export const PRCommentReaction = RepoSelector.extend({
|
|
reactionSubjectId: requiredString('Missing reaction subject ID'),
|
|
content: z.enum(['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes']),
|
|
reacted: z.boolean(),
|
|
prRepo: SlugRepo.nullable().optional()
|
|
})
|
|
|
|
export const PullRequestChecks = PullRequest.extend({
|
|
headSha: OptionalString
|
|
})
|
|
|
|
export const PullRequestCheckDetails = RepoSelector.extend({
|
|
checkRunId: z.number().int().positive().optional(),
|
|
workflowRunId: z.number().int().positive().optional(),
|
|
checkName: OptionalString,
|
|
url: OptionalString.nullable().optional(),
|
|
prRepo: SlugRepo.nullable().optional()
|
|
})
|
|
|
|
export const RerunPullRequestChecks = PullRequest.extend({
|
|
headSha: OptionalString,
|
|
failedOnly: z.boolean().optional()
|
|
})
|
|
|
|
export const PullRequestFileContents = RepoSelector.extend({
|
|
prNumber: z.number().int().positive(),
|
|
prRepo: SlugRepo.nullable().optional(),
|
|
path: requiredString('Missing file path'),
|
|
oldPath: OptionalString,
|
|
status: z.enum(['added', 'removed', 'modified', 'renamed', 'copied', 'changed', 'unchanged']),
|
|
headSha: requiredString('Missing head SHA'),
|
|
baseSha: requiredString('Missing base SHA')
|
|
})
|
|
|
|
export const PullRequestFileViewed = RepoSelector.extend({
|
|
prRepo: SlugRepo.nullable().optional(),
|
|
pullRequestId: requiredString('Missing pull request ID'),
|
|
path: requiredString('Missing file path'),
|
|
viewed: z.boolean()
|
|
})
|
|
|
|
export const ReviewThread = RepoSelector.extend({
|
|
prRepo: SlugRepo.nullable().optional(),
|
|
threadId: requiredString('Missing thread ID'),
|
|
resolve: z.boolean()
|
|
})
|