[ { "id": "github_viewer", "name": "GitHubViewer", "type": "github_viewer", "description": "Main GitHub Actions viewer component", "props": { "owner": "", "repo": "", "workflow": "", "token": "" }, "layout": { "type": "Card", "children": [ { "type": "CardHeader", "children": [ { "type": "CardTitle", "props": { "text": "GitHub Actions" } } ] }, { "type": "CardContent", "children": [ { "type": "RunFilters", "props": {} }, { "type": "RunList", "props": {} } ] } ] }, "scripts": { "init": "init.initialize", "fetchRuns": "fetch_runs.fetchRuns", "filterRuns": "filter.filterRuns" } }, { "id": "run_list", "name": "RunList", "type": "run_list", "description": "List of workflow runs with status badges", "props": { "runs": [], "loading": false, "onSelect": "selectRun" }, "layout": { "type": "Stack", "props": { "spacing": 2 }, "children": [] } }, { "id": "run_details", "name": "RunDetails", "type": "run_details", "description": "Detailed view of a single workflow run", "props": { "run": null, "jobs": [], "logs": "" }, "layout": { "type": "Card", "children": [ { "type": "CardHeader", "children": [ { "type": "CardTitle", "props": { "text": "Run Details" } } ] }, { "type": "CardContent", "children": [ { "type": "StatusBadge", "props": {} }, { "type": "JobsList", "props": {} }, { "type": "LogViewer", "props": {} } ] } ] } }, { "id": "analysis_panel", "name": "AnalysisPanel", "type": "analysis_panel", "description": "Statistics and analysis of workflow runs", "props": { "stats": {}, "timeRange": "7d" }, "layout": { "type": "Card", "children": [ { "type": "CardHeader", "children": [ { "type": "CardTitle", "props": { "text": "Run Analysis" } } ] }, { "type": "CardContent", "children": [ { "type": "StatGrid", "props": {} }, { "type": "SuccessRateChart", "props": {} } ] } ] }, "scripts": { "calculate": "analyze.calculateStats" } }, { "id": "run_filters", "name": "RunFilters", "type": "run_filters", "description": "Filter controls for workflow runs", "props": { "status": "all", "branch": "", "dateRange": "7d" }, "layout": { "type": "Stack", "props": { "direction": "row", "spacing": 2 }, "children": [ { "type": "Select", "props": { "label": "Status", "name": "status", "options": [ { "value": "all", "label": "All" }, { "value": "success", "label": "Success" }, { "value": "failure", "label": "Failure" }, { "value": "pending", "label": "Pending" } ] } }, { "type": "Input", "props": { "label": "Branch", "name": "branch", "placeholder": "main" } }, { "type": "Select", "props": { "label": "Time Range", "name": "dateRange", "options": [ { "value": "1d", "label": "Last 24 hours" }, { "value": "7d", "label": "Last 7 days" }, { "value": "30d", "label": "Last 30 days" } ] } } ] }, "scripts": { "onChange": "filter.applyFilters" } } ]