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

Function experimentDetailsFromState

pkg/cli/experiments_command.go:675–712  ·  view source on GitHub ↗

experimentDetailsFromState builds ExperimentDetails from a state.json.

(workflowID, branchName string, state *ExperimentState)

Source from the content-addressed store, hash-verified

673
674// experimentDetailsFromState builds ExperimentDetails from a state.json.
675func experimentDetailsFromState(workflowID, branchName string, state *ExperimentState) *ExperimentDetails {
676 experiments := make([]ExperimentVariantStats, 0, len(state.Counts))
677 for name, variants := range state.Counts {
678 total := 0
679 for _, c := range variants {
680 total += c
681 }
682 experiments = append(experiments, ExperimentVariantStats{
683 Name: name,
684 Variants: variants,
685 Total: total,
686 })
687 }
688 slices.SortFunc(experiments, func(a, b ExperimentVariantStats) int {
689 switch {
690 case a.Name < b.Name:
691 return -1
692 case a.Name > b.Name:
693 return 1
694 default:
695 return 0
696 }
697 })
698
699 recentRuns := state.Runs
700 const maxRecentRuns = 10
701 if len(recentRuns) > maxRecentRuns {
702 recentRuns = recentRuns[len(recentRuns)-maxRecentRuns:]
703 }
704
705 return &ExperimentDetails{
706 WorkflowID: workflowID,
707 Branch: branchName,
708 TotalRuns: experimentTotalRuns(state),
709 Experiments: experiments,
710 RecentRuns: recentRuns,
711 }
712}
713
714// experimentTotalRuns returns the total number of runs recorded in the state.
715// Prefers the runs array length when non-empty; falls back to summing all variant counts.

Callers 3

Calls 1

experimentTotalRunsFunction · 0.85

Tested by 1