UNPKG

md-linear-sync

Version:

Sync Linear tickets to local markdown files with status-based folder organization

119 lines 2.66 kB
export interface TicketMetadata { linear_id: string; title: string; status: "Todo" | "In Progress" | "In Review" | "Backlog" | "Done" | "Cancelled"; assignee?: string; labels: string[]; priority: 1 | 2 | 3 | 4; due_date?: string; url: string; created_at: string; updated_at: string; } export interface Comment { id: string; author: string; content: string; created_at: string; replies?: Comment[]; } export interface TicketFile { frontmatter: TicketMetadata; content: string; comments: Comment[]; } export interface SyncOptions { direction: "push" | "pull"; ticketId?: string; } export interface WebhookPayload { type: "Issue" | "Comment"; action: "create" | "update" | "delete"; data: { id: string; title?: string; description?: string; state?: { name: string; }; assignee?: { email: string; }; labels?: { name: string; }[]; priority?: number; dueDate?: string; updatedAt: string; url: string; }; comment?: { id: string; body: string; user: { email: string; }; createdAt: string; }; } export interface RetryConfig { maxAttempts: 3; delays: [0, 30000, 120000]; } export interface SlackNotification { type: "success" | "error" | "info"; title: string; message: string; ticketId?: string; ticketUrl?: string; changes?: Record<string, { from: any; to: any; }>; timestamp: string; } export interface StatusMapping { id: string; folder: string; type?: string; } export interface LinearSyncConfig { teamId: string; teamName: string; projectId: string; projectName: string; statusMapping: Record<string, StatusMapping>; labelMapping: Record<string, { id: string; color: string; description?: string; }>; timezone: string; lastUpdated: string; } export interface LinearApiConfig { apiKey: string; teamId: string; webhookSecret?: string; } export interface SlackConfig { webhookUrl?: string; } export type StatusFolder = "todo" | "in-progress" | "in-review" | "backlog" | "completed" | "cancelled"; export interface LinearTeam { id: string; name: string; key: string; } export interface LinearProject { id: string; name: string; description?: string; } export interface LinearWorkflowState { id: string; name: string; type: string; position: number; } //# sourceMappingURL=index.d.ts.map