MCPcopy Create free account
hub / github.com/github/gh-aw / buildMissingDataSummary

Function buildMissingDataSummary

pkg/cli/logs_report_errors.go:111–154  ·  view source on GitHub ↗

buildMissingDataSummary aggregates missing data across all runs

(processedRuns []ProcessedRun)

Source from the content-addressed store, hash-verified

109
110// buildMissingDataSummary aggregates missing data across all runs
111func buildMissingDataSummary(processedRuns []ProcessedRun) []MissingDataSummary {
112 reportLog.Printf("Building missing data summary from %d processed runs", len(processedRuns))
113 result := aggregateSummaryItems(
114 processedRuns,
115 // getItems: extract missing data from each run
116 func(pr ProcessedRun) []MissingDataReport {
117 return pr.MissingData
118 },
119 // getKey: use data type as the aggregation key
120 func(data MissingDataReport) string {
121 return data.DataType
122 },
123 // createSummary: create new summary for first occurrence
124 func(data MissingDataReport) *MissingDataSummary {
125 return &MissingDataSummary{
126 DataType: data.DataType,
127 AggregatedSummaryBase: AggregatedSummaryBase{
128 Count: 1,
129 Workflows: []string{data.WorkflowName},
130 FirstReason: data.Reason,
131 RunIDs: []int64{data.RunID},
132 },
133 }
134 },
135 // updateSummary: update existing summary with new occurrence
136 func(summary *MissingDataSummary, data MissingDataReport) {
137 summary.Count++
138 summary.Workflows = sliceutil.MergeUnique(summary.Workflows, data.WorkflowName)
139 summary.RunIDs = append(summary.RunIDs, data.RunID)
140 },
141 // finalizeSummary: populate display fields for console rendering
142 func(summary *MissingDataSummary) {
143 summary.WorkflowsDisplay = strings.Join(summary.Workflows, ", ")
144 summary.FirstReasonDisplay = summary.FirstReason
145 },
146 )
147
148 // Sort by count descending
149 slices.SortFunc(result, func(a, b MissingDataSummary) int {
150 return cmp.Compare(b.Count, a.Count)
151 })
152
153 return result
154}

Callers 1

buildLogsDataFunction · 0.85

Calls 3

MergeUniqueFunction · 0.92
aggregateSummaryItemsFunction · 0.85
PrintfMethod · 0.45

Tested by

no test coverage detected