internal/platform/thresholds.go (52 lines of code) (raw):

/* * Copyright 2021-2024 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package platform import ( "fmt" "strconv" "github.com/JetBrains/qodana-cli/internal/platform/thirdpartyscan" ) const severityAny = "any" const severityCritical = "critical" const severityHigh = "high" const severityModerate = "moderate" const severityLow = "low" const severityInfo = "info" func getFailureThresholds(c thirdpartyscan.Context) map[string]string { yaml := c.QodanaYamlConfig() ret := make(map[string]string) if yaml.FailThreshold != nil { ret[severityAny] = strconv.Itoa(*yaml.FailThreshold) } if yaml.FailureConditions.SeverityThresholds != nil { thresholds := *yaml.FailureConditions.SeverityThresholds if thresholds.Any != nil { ret[severityAny] = strconv.Itoa(*thresholds.Any) } if thresholds.Critical != nil { ret[severityCritical] = strconv.Itoa(*thresholds.Critical) } if thresholds.High != nil { ret[severityHigh] = strconv.Itoa(*thresholds.High) } if thresholds.Moderate != nil { ret[severityModerate] = strconv.Itoa(*thresholds.Moderate) } if thresholds.Low != nil { ret[severityLow] = strconv.Itoa(*thresholds.Low) } if thresholds.Info != nil { ret[severityInfo] = strconv.Itoa(*thresholds.Info) } } if c.FailThreshold() != "" { // console option overrides the behavior ret = make(map[string]string) ret[severityAny] = c.FailThreshold() } return ret } func thresholdsToArgs(thresholds map[string]string) []string { args := make([]string, 0) for severity, value := range thresholds { args = append(args, fmt.Sprintf("--threshold-%s=%s", severity, value)) } return args }