diff options
author | Zipeng WU <zipeng.wu@sonarsource.com> | 2023-10-04 12:40:12 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-10-12 20:02:51 +0000 |
commit | 0d4bba4a5af9f4944446ed7bb847671e068a5201 (patch) | |
tree | f0531cd3551213601d3e4f98bcfd0328c0ccd283 | |
parent | 664aa30312b0e559785536630f18433228c31467 (diff) | |
download | sonarqube-0d4bba4a5af9f4944446ed7bb847671e068a5201.tar.gz sonarqube-0d4bba4a5af9f4944446ed7bb847671e068a5201.zip |
SONAR-20604 Remove old rating conditions and use new_violations in Sonar Way definition
2 files changed, 26 insertions, 37 deletions
diff --git a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualitygate/RegisterQualityGatesIT.java b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualitygate/RegisterQualityGatesIT.java index e8240ee9554..1dad0d2b0a1 100644 --- a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualitygate/RegisterQualityGatesIT.java +++ b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualitygate/RegisterQualityGatesIT.java @@ -48,7 +48,7 @@ import static org.sonar.api.measures.CoreMetrics.NEW_MAINTAINABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_RELIABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_SECURITY_HOTSPOTS_REVIEWED_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_SECURITY_RATING_KEY; -import static org.sonar.api.measures.CoreMetrics.NEW_SECURITY_REMEDIATION_EFFORT_KEY; +import static org.sonar.api.measures.CoreMetrics.NEW_VIOLATIONS_KEY; import static org.sonar.api.measures.Metric.ValueType.INT; import static org.sonar.api.measures.Metric.ValueType.PERCENT; import static org.sonar.db.metric.MetricTesting.newMetricDto; @@ -105,9 +105,11 @@ public class RegisterQualityGatesIT { insertMetrics(); QualityGateDto builtInQualityGate = db.qualityGates().insertBuiltInQualityGate(); createBuiltInConditions(builtInQualityGate); - // Add another condition - qualityGateConditionsUpdater.createCondition(dbSession, builtInQualityGate, - NEW_SECURITY_REMEDIATION_EFFORT_KEY, OPERATOR_GREATER_THAN, "5"); + + // Add old conditions + List.of(NEW_RELIABILITY_RATING_KEY, NEW_MAINTAINABILITY_RATING_KEY, NEW_SECURITY_RATING_KEY) + .forEach(metricKey -> qualityGateConditionsUpdater.createCondition(dbSession, builtInQualityGate, + metricKey, OPERATOR_GREATER_THAN, "1")); dbSession.commit(); underTest.start(); @@ -236,20 +238,25 @@ public class RegisterQualityGatesIT { } private void insertMetrics() { - dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_RELIABILITY_RATING_KEY).setValueType(INT.name()).setHidden(false).setDirection(0)); - dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_SECURITY_RATING_KEY).setValueType(INT.name()).setHidden(false).setDirection(0)); - dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_SECURITY_REMEDIATION_EFFORT_KEY).setValueType(INT.name()).setHidden(false).setDirection(0)); - dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_MAINTAINABILITY_RATING_KEY).setValueType(PERCENT.name()).setHidden(false).setDirection(0)); - dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_COVERAGE_KEY).setValueType(PERCENT.name()).setHidden(false).setDirection(0)); - dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name()).setHidden(false).setDirection(0)); - dbClient.metricDao().insert(dbSession, newMetricDto().setKey(NEW_SECURITY_HOTSPOTS_REVIEWED_KEY).setValueType(PERCENT.name()).setHidden(false).setDirection(0)); + dbClient.metricDao().insert(dbSession, + newMetricDto().setKey(NEW_RELIABILITY_RATING_KEY).setValueType(INT.name()).setHidden(false).setDirection(0)); + dbClient.metricDao().insert(dbSession, + newMetricDto().setKey(NEW_SECURITY_RATING_KEY).setValueType(INT.name()).setHidden(false).setDirection(0)); + dbClient.metricDao().insert(dbSession, + newMetricDto().setKey(NEW_MAINTAINABILITY_RATING_KEY).setValueType(PERCENT.name()).setHidden(false).setDirection(0)); + dbClient.metricDao().insert(dbSession, + newMetricDto().setKey(NEW_VIOLATIONS_KEY).setValueType(INT.name()).setHidden(false).setDirection(0)); + dbClient.metricDao().insert(dbSession, + newMetricDto().setKey(NEW_COVERAGE_KEY).setValueType(PERCENT.name()).setHidden(false).setDirection(0)); + dbClient.metricDao().insert(dbSession, + newMetricDto().setKey(NEW_DUPLICATED_LINES_DENSITY_KEY).setValueType(PERCENT.name()).setHidden(false).setDirection(0)); + dbClient.metricDao().insert(dbSession, + newMetricDto().setKey(NEW_SECURITY_HOTSPOTS_REVIEWED_KEY).setValueType(PERCENT.name()).setHidden(false).setDirection(0)); dbSession.commit(); } private void verifyCorrectBuiltInQualityGate() { - MetricDto newReliability = metricDao.selectByKey(dbSession, NEW_RELIABILITY_RATING_KEY); - MetricDto newSecurity = metricDao.selectByKey(dbSession, NEW_SECURITY_RATING_KEY); - MetricDto newMaintainability = metricDao.selectByKey(dbSession, NEW_MAINTAINABILITY_RATING_KEY); + MetricDto newViolations = metricDao.selectByKey(dbSession, NEW_VIOLATIONS_KEY); MetricDto newCoverage = metricDao.selectByKey(dbSession, NEW_COVERAGE_KEY); MetricDto newDuplication = metricDao.selectByKey(dbSession, NEW_DUPLICATED_LINES_DENSITY_KEY); MetricDto newSecurityHotspots = metricDao.selectByKey(dbSession, NEW_SECURITY_HOTSPOTS_REVIEWED_KEY); @@ -262,9 +269,7 @@ public class RegisterQualityGatesIT { .extracting(QualityGateConditionDto::getMetricUuid, QualityGateConditionDto::getOperator, QualityGateConditionDto::getErrorThreshold) .containsExactlyInAnyOrder( - tuple(newReliability.getUuid(), OPERATOR_GREATER_THAN, "1"), - tuple(newSecurity.getUuid(), OPERATOR_GREATER_THAN, "1"), - tuple(newMaintainability.getUuid(), OPERATOR_GREATER_THAN, "1"), + tuple(newViolations.getUuid(), OPERATOR_GREATER_THAN, "0"), tuple(newCoverage.getUuid(), OPERATOR_LESS_THAN, "80"), tuple(newDuplication.getUuid(), OPERATOR_GREATER_THAN, "3"), tuple(newSecurityHotspots.getUuid(), OPERATOR_LESS_THAN, "100")); @@ -274,11 +279,7 @@ public class RegisterQualityGatesIT { List<QualityGateConditionDto> conditions = new ArrayList<>(); conditions.add(qualityGateConditionsUpdater.createCondition(dbSession, qg, - NEW_SECURITY_RATING_KEY, OPERATOR_GREATER_THAN, "1")); - conditions.add(qualityGateConditionsUpdater.createCondition(dbSession, qg, - NEW_RELIABILITY_RATING_KEY, OPERATOR_GREATER_THAN, "1")); - conditions.add(qualityGateConditionsUpdater.createCondition(dbSession, qg, - NEW_MAINTAINABILITY_RATING_KEY, OPERATOR_GREATER_THAN, "1")); + NEW_VIOLATIONS_KEY, OPERATOR_GREATER_THAN, "0")); conditions.add(qualityGateConditionsUpdater.createCondition(dbSession, qg, NEW_COVERAGE_KEY, OPERATOR_LESS_THAN, "80")); conditions.add(qualityGateConditionsUpdater.createCondition(dbSession, qg, @@ -293,11 +294,7 @@ public class RegisterQualityGatesIT { List<QualityGateConditionDto> conditions = new ArrayList<>(); conditions.add(createConditionWithoutCheckingDuplicates(qg, - NEW_SECURITY_RATING_KEY, OPERATOR_GREATER_THAN, "1")); - conditions.add(createConditionWithoutCheckingDuplicates(qg, - NEW_RELIABILITY_RATING_KEY, OPERATOR_GREATER_THAN, "1")); - conditions.add(createConditionWithoutCheckingDuplicates(qg, - NEW_MAINTAINABILITY_RATING_KEY, OPERATOR_GREATER_THAN, "1")); + NEW_VIOLATIONS_KEY, OPERATOR_GREATER_THAN, "0")); conditions.add(createConditionWithoutCheckingDuplicates(qg, NEW_COVERAGE_KEY, OPERATOR_LESS_THAN, "80")); conditions.add(createConditionWithoutCheckingDuplicates(qg, diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java index f1426313523..455ab3be636 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualitygate/RegisterQualityGates.java @@ -41,31 +41,23 @@ import org.sonar.db.qualitygate.QualityGateConditionDao; import org.sonar.db.qualitygate.QualityGateConditionDto; import org.sonar.db.qualitygate.QualityGateDao; import org.sonar.db.qualitygate.QualityGateDto; -import org.sonar.server.measure.Rating; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Arrays.asList; import static java.util.stream.Collectors.toMap; import static org.sonar.api.measures.CoreMetrics.NEW_COVERAGE_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_DUPLICATED_LINES_DENSITY_KEY; -import static org.sonar.api.measures.CoreMetrics.NEW_MAINTAINABILITY_RATING_KEY; -import static org.sonar.api.measures.CoreMetrics.NEW_RELIABILITY_RATING_KEY; import static org.sonar.api.measures.CoreMetrics.NEW_SECURITY_HOTSPOTS_REVIEWED_KEY; -import static org.sonar.api.measures.CoreMetrics.NEW_SECURITY_RATING_KEY; +import static org.sonar.api.measures.CoreMetrics.NEW_VIOLATIONS_KEY; import static org.sonar.db.qualitygate.QualityGateConditionDto.OPERATOR_GREATER_THAN; import static org.sonar.db.qualitygate.QualityGateConditionDto.OPERATOR_LESS_THAN; public class RegisterQualityGates implements Startable { private static final Logger LOGGER = LoggerFactory.getLogger(RegisterQualityGates.class); - private static final String BUILTIN_QUALITY_GATE_NAME = "Sonar way"; - private static final String A_RATING = Integer.toString(Rating.A.getIndex()); - private static final List<QualityGateCondition> QUALITY_GATE_CONDITIONS = asList( - new QualityGateCondition().setMetricKey(NEW_SECURITY_RATING_KEY).setOperator(OPERATOR_GREATER_THAN).setErrorThreshold(A_RATING), - new QualityGateCondition().setMetricKey(NEW_RELIABILITY_RATING_KEY).setOperator(OPERATOR_GREATER_THAN).setErrorThreshold(A_RATING), - new QualityGateCondition().setMetricKey(NEW_MAINTAINABILITY_RATING_KEY).setOperator(OPERATOR_GREATER_THAN).setErrorThreshold(A_RATING), + new QualityGateCondition().setMetricKey(NEW_VIOLATIONS_KEY).setOperator(OPERATOR_GREATER_THAN).setErrorThreshold("0"), new QualityGateCondition().setMetricKey(NEW_COVERAGE_KEY).setOperator(OPERATOR_LESS_THAN).setErrorThreshold("80"), new QualityGateCondition().setMetricKey(NEW_DUPLICATED_LINES_DENSITY_KEY).setOperator(OPERATOR_GREATER_THAN).setErrorThreshold("3"), new QualityGateCondition().setMetricKey(NEW_SECURITY_HOTSPOTS_REVIEWED_KEY).setOperator(OPERATOR_LESS_THAN).setErrorThreshold("100")); |