mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-11-04 02:32:07 +01:00
Add issue subtree hold preview foundation
This commit is contained in:
1 parent
24232078fd
commit
fbc40becfc
20 files changed
+1414
No files matched your search
@@ -0,0 +1,43 @@
|
||||
import { z } from "zod";
|
||||
import {
|
||||
ISSUE_TREE_CONTROL_MODES,
|
||||
ISSUE_TREE_HOLD_RELEASE_POLICY_STRATEGIES,
|
||||
} from "../constants.js";
|
||||
|
||||
export const issueTreeControlModeSchema = z.enum(ISSUE_TREE_CONTROL_MODES);
|
||||
|
||||
export const issueTreeHoldReleasePolicySchema = z
|
||||
.object({
|
||||
strategy: z.enum(ISSUE_TREE_HOLD_RELEASE_POLICY_STRATEGIES).default("manual"),
|
||||
note: z.string().trim().min(1).max(500).optional().nullable(),
|
||||
})
|
||||
.strict();
|
||||
|
||||
export const previewIssueTreeControlSchema = z
|
||||
.object({
|
||||
mode: issueTreeControlModeSchema,
|
||||
releasePolicy: issueTreeHoldReleasePolicySchema.optional().nullable(),
|
||||
})
|
||||
.strict();
|
||||
|
||||
export type PreviewIssueTreeControl = z.infer<typeof previewIssueTreeControlSchema>;
|
||||
|
||||
export const createIssueTreeHoldSchema = z
|
||||
.object({
|
||||
mode: issueTreeControlModeSchema,
|
||||
reason: z.string().trim().min(1).max(1000).optional().nullable(),
|
||||
releasePolicy: issueTreeHoldReleasePolicySchema.optional().nullable(),
|
||||
})
|
||||
.strict();
|
||||
|
||||
export type CreateIssueTreeHold = z.infer<typeof createIssueTreeHoldSchema>;
|
||||
|
||||
export const releaseIssueTreeHoldSchema = z
|
||||
.object({
|
||||
reason: z.string().trim().min(1).max(1000).optional().nullable(),
|
||||
releasePolicy: issueTreeHoldReleasePolicySchema.optional().nullable(),
|
||||
metadata: z.record(z.unknown()).optional().nullable(),
|
||||
})
|
||||
.strict();
|
||||
|
||||
export type ReleaseIssueTreeHold = z.infer<typeof releaseIssueTreeHoldSchema>;
|
||||
Reference in new issue
Block a user