Search in sources :

Example 6 with QualityGateStatus

use of org.sonar.server.computation.task.projectanalysis.measure.QualityGateStatus in project sonarqube by SonarSource.

the class QualityGateMeasuresStep method updateMeasures.

private void updateMeasures(Component project, Set<Condition> conditions, QualityGateDetailsDataBuilder builder) {
    Multimap<Metric, Condition> conditionsPerMetric = conditions.stream().collect(Collectors.index(Condition::getMetric, java.util.function.Function.identity()));
    for (Map.Entry<Metric, Collection<Condition>> entry : conditionsPerMetric.asMap().entrySet()) {
        Metric metric = entry.getKey();
        Optional<Measure> measure = measureRepository.getRawMeasure(project, metric);
        if (!measure.isPresent()) {
            continue;
        }
        MetricEvaluationResult metricEvaluationResult = evaluateQualityGate(measure.get(), entry.getValue());
        String text = evaluationResultTextConverter.asText(metricEvaluationResult.condition, metricEvaluationResult.evaluationResult);
        builder.addLabel(text);
        Measure updatedMeasure = Measure.updatedMeasureBuilder(measure.get()).setQualityGateStatus(new QualityGateStatus(metricEvaluationResult.evaluationResult.getLevel(), text)).create();
        measureRepository.update(project, metric, updatedMeasure);
        builder.addEvaluatedCondition(metricEvaluationResult);
    }
}
Also used : EvaluatedCondition(org.sonar.server.computation.task.projectanalysis.measure.qualitygatedetails.EvaluatedCondition) Condition(org.sonar.server.computation.task.projectanalysis.qualitygate.Condition) QualityGateStatus(org.sonar.server.computation.task.projectanalysis.measure.QualityGateStatus) Measure(org.sonar.server.computation.task.projectanalysis.measure.Measure) Collection(java.util.Collection) Metric(org.sonar.server.computation.task.projectanalysis.metric.Metric) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap)

Aggregations

QualityGateStatus (org.sonar.server.computation.task.projectanalysis.measure.QualityGateStatus)6 Measure (org.sonar.server.computation.task.projectanalysis.measure.Measure)3 Notification (org.sonar.api.notifications.Notification)2 Event (org.sonar.server.computation.task.projectanalysis.event.Event)2 Metric (org.sonar.server.computation.task.projectanalysis.metric.Metric)2 ImmutableMap (com.google.common.collect.ImmutableMap)1 Collection (java.util.Collection)1 Map (java.util.Map)1 Test (org.junit.Test)1 EvaluatedCondition (org.sonar.server.computation.task.projectanalysis.measure.qualitygatedetails.EvaluatedCondition)1 QualityGateDetailsData (org.sonar.server.computation.task.projectanalysis.measure.qualitygatedetails.QualityGateDetailsData)1 Condition (org.sonar.server.computation.task.projectanalysis.qualitygate.Condition)1