// Bugzilla 5.0+ REST API type definitions export interface BugzillaBug { id: number alias: string[] summary: string status: string resolution: string priority: string severity: string product: string component: string description?: string // comment 0 text (not always in bug response) creation_time: string last_change_time: string depends_on: number[] blocks: number[] url: string see_also: string[] assigned_to: string creator: string is_open: boolean } export interface BugzillaComment { id: number bug_id: number text: string creator: string time: string count: number is_private: boolean tags: string[] } export interface BugzillaSearchParams { product?: string component?: string status?: string | string[] id?: number | number[] alias?: string | string[] url?: string summary?: string limit?: number offset?: number last_change_time?: string } export interface BugzillaCreatePayload { product: string component: string summary: string version?: string url?: string description?: string status?: string priority?: string severity?: string op_sys?: string rep_platform?: string depends_on?: number[] blocks?: number[] see_also?: string[] } export interface BugzillaUpdatePayload { summary?: string status?: string resolution?: string priority?: string severity?: string depends_on?: { set: number[] } blocks?: { set: number[] } see_also?: { add?: string[]; remove?: string[] } } export interface BugzillaSearchResponse { bugs: BugzillaBug[] } export interface BugzillaCreateResponse { id: number } export interface BugzillaUpdateResponse { bugs: Array<{ id: number changes: Record }> } export interface BugzillaCommentsResponse { bugs: Record } // Product and component types export interface BugzillaComponent { id: number name: string description: string default_assigned_to: string is_active: boolean } export interface BugzillaProduct { id: number name: string description: string is_active: boolean components: BugzillaComponent[] } export interface BugzillaProductResponse { products: BugzillaProduct[] } export interface BugzillaCreateProductPayload { name: string description: string version: string is_open?: boolean } export interface BugzillaCreateComponentPayload { product: string name: string description: string default_assignee: string }