/** * Enhanced GitHub PR comment generation for schema changes. * * This module generates detailed, actionable PR comments that help reviewers * understand the impact of schema changes on downstream consumers. */ import type { BehavioralDiff, ToolDiff, ChangeSeverity } from './types.js'; import type { MigrationGuide } from './migration-generator.js'; /** * Severity badge configuration. */ export type BadgeColor = 'red' | 'orange' | 'blue' | 'green'; /** * A section in the PR comment. */ export interface CommentSection { title: string; content: string; priority: number; collapsed?: boolean; } /** * Affected workflow information for PR comments. */ export interface AffectedWorkflow { name: string; description: string; affectedTools: string[]; severity: ChangeSeverity; } /** * Complete PR comment structure. */ export interface PRComment { /** Main title/header */ title: string; /** Summary of changes */ summary: string; /** Severity badge */ badge: { label: string; color: BadgeColor; message: string; }; /** Detailed sections */ sections: CommentSection[]; /** Quick action items */ actionItems: string[]; /** Footer with metadata */ footer: string; /** Full rendered markdown */ markdown: string; } /** * Configuration for PR comment generation. */ export interface PRCommentConfig { /** Maximum tools to show in detail */ maxDetailedTools?: number; /** Maximum changes per tool */ maxChangesPerTool?: number; /** Maximum affected workflows to show */ maxAffectedWorkflows?: number; /** Include migration examples */ includeMigrationExamples?: boolean; /** Maximum migration examples */ maxMigrationExamples?: number; /** Include collapsible sections */ useCollapsibleSections?: boolean; /** Repository URL for linking */ repositoryUrl?: string; /** Base branch name */ baseBranch?: string; /** Head branch name */ headBranch?: string; } /** * Get badge color for severity level. */ export declare function getBadgeColor(severity: ChangeSeverity): BadgeColor; /** * Generate a shields.io badge URL. */ export declare function generateBadgeUrl(label: string, message: string, color: BadgeColor): string; /** * Generate a markdown badge. */ export declare function generateBadgeMarkdown(label: string, message: string, color: BadgeColor): string; /** * Generate a complete PR comment for a behavioral diff. */ export declare function generatePRComment(diff: BehavioralDiff, config?: PRCommentConfig, migrationGuide?: MigrationGuide, affectedWorkflows?: AffectedWorkflow[]): PRComment; /** * Generate a compact PR comment for simple diffs. */ export declare function generateCompactPRComment(diff: BehavioralDiff): string; /** * Generate a status check summary for CI. */ export declare function generateCIStatusSummary(diff: BehavioralDiff): { conclusion: 'success' | 'failure' | 'neutral'; title: string; summary: string; }; /** * Generate diff visualization as a table. */ export declare function generateDiffTable(toolDiffs: ToolDiff[]): string; /** * Determine if a PR comment should block merge. */ export declare function shouldBlockMerge(diff: BehavioralDiff, strictMode?: boolean): boolean; /** * Get emoji for severity level. */ export declare function getSeverityEmoji(severity: ChangeSeverity): string; //# sourceMappingURL=pr-comment-generator.d.ts.map