func GenerateAllUnitTestsSettings()

in pkg/degradation-detector/setting/unitTestsSettings.go [94:151]


func GenerateAllUnitTestsSettings(backendUrl string, client *http.Client) []detector.PerformanceSettings {
	settings := make([]detector.PerformanceSettings, 0, 1000)

	mainSettings := detector.PerformanceSettings{
		Db:    "perfUnitTests",
		Table: "report",
		BaseSettings: detector.BaseSettings{
			Branch:  "master",
			Machine: "intellij-linux-%-hetzner-%",
			Metric:  "attempt.mean.ms",
		},
	}

	tests, err := detector.FetchAllTests(backendUrl, client, mainSettings)
	if err != nil {
		slog.Error("error while getting tests", "error", err)
		return settings
	}

	// Iterate over team configurations
	for _, config := range teamConfigs {
		teamSettings := generateProductTestsSettings(
			tests,
			mainSettings,
			config,
		)
		settings = append(settings, teamSettings...)
	}

	// Collect all packages to exclude from default settings
	allPackages := collectAllPackages(teamConfigs)
	// Generate default settings (excluding specified packages)
	defaultSlackSettings := detector.SlackSettings{
		Channel:     "ij-perf-unit-tests-alerts",
		ProductLink: "perfUnit",
	}
	defaultTests := filterTests(tests, allPackages, false)
	for _, test := range defaultTests {
		settings = append(settings, detector.PerformanceSettings{
			Project: test,
			Db:      mainSettings.Db,
			Table:   mainSettings.Table,
			BaseSettings: detector.BaseSettings{
				Branch:        mainSettings.Branch,
				Machine:       mainSettings.Machine,
				Metric:        mainSettings.Metric,
				SlackSettings: defaultSlackSettings,
				AnalysisSettings: detector.AnalysisSettings{
					MinimumSegmentLength:      30,
					MedianDifferenceThreshold: 20,
					EffectSizeThreshold:       2,
				},
			},
		})
	}

	return settings
}