Skip to content

Commit 0606565

Browse files
steve-marion-sonarsourcesonartech
authored andcommitted
SONAR-20582 make the gitlab vulnerability synchronization conditional on having sent a sast report to gitlab at least once.
1 parent 846d00f commit 0606565

5 files changed

Lines changed: 38 additions & 6 deletions

File tree

server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PreMeasuresComputationCheck.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.sonar.api.ExtensionPoint;
2323
import org.sonar.api.ce.ComputeEngineSide;
24+
import org.sonar.api.config.Configuration;
2425
import org.sonar.ce.task.projectanalysis.analysis.Branch;
2526

2627
/**
@@ -47,9 +48,10 @@ interface Context {
4748

4849
Branch getBranch();
4950

51+
Configuration getConfiguration();
5052
}
5153

52-
class PreMeasuresComputationCheckException extends Exception {
54+
class PreMeasuresComputationCheckException extends RuntimeException {
5355
public PreMeasuresComputationCheckException(String message) {
5456
super(message);
5557
}

server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/measure/PreMeasuresComputationChecksStep.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@
1919
*/
2020
package org.sonar.ce.task.projectanalysis.measure;
2121

22+
import org.sonar.api.config.Configuration;
2223
import org.sonar.api.utils.System2;
2324
import org.sonar.ce.task.log.CeTaskMessages;
2425
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
2526
import org.sonar.ce.task.projectanalysis.analysis.Branch;
27+
import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
2628
import org.sonar.ce.task.step.ComputationStep;
2729
import org.sonar.db.dismissmessage.MessageType;
2830

@@ -38,11 +40,15 @@ public class PreMeasuresComputationChecksStep implements ComputationStep {
3840
private final AnalysisMetadataHolder analysisMetadataHolder;
3941
private final PreMeasuresComputationCheck[] extensions;
4042
private final CeTaskMessages ceTaskMessages;
43+
private final ConfigurationRepository configurationRepository;
4144

4245

43-
public PreMeasuresComputationChecksStep(AnalysisMetadataHolder analysisMetadataHolder, CeTaskMessages ceTaskMessages, PreMeasuresComputationCheck... extensions) {
46+
public PreMeasuresComputationChecksStep(
47+
AnalysisMetadataHolder analysisMetadataHolder, CeTaskMessages ceTaskMessages,
48+
ConfigurationRepository configurationRepository, PreMeasuresComputationCheck... extensions) {
4449
this.analysisMetadataHolder = analysisMetadataHolder;
4550
this.ceTaskMessages = ceTaskMessages;
51+
this.configurationRepository = configurationRepository;
4652
this.extensions = extensions;
4753
}
4854

@@ -75,5 +81,10 @@ public Branch getBranch() {
7581
return analysisMetadataHolder.getBranch();
7682
}
7783

84+
@Override
85+
public Configuration getConfiguration() {
86+
return configurationRepository.getConfiguration();
87+
}
88+
7889
}
7990
}

server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/measure/PreMeasuresComputationChecksStepTest.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@
1919
*/
2020
package org.sonar.ce.task.projectanalysis.measure;
2121

22+
import org.junit.Before;
2223
import org.junit.Test;
2324
import org.mockito.ArgumentCaptor;
2425
import org.mockito.InOrder;
2526
import org.sonar.ce.task.log.CeTaskMessages;
2627
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolderRule;
2728
import org.sonar.ce.task.projectanalysis.analysis.Branch;
29+
import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
2830
import org.sonar.ce.task.projectanalysis.measure.PreMeasuresComputationCheck.Context;
2931
import org.sonar.ce.task.step.TestComputationStepContext;
3032
import org.sonar.db.component.BranchType;
@@ -44,6 +46,12 @@ public class PreMeasuresComputationChecksStepTest {
4446

4547
public AnalysisMetadataHolderRule analysisMetadataHolder = mock();
4648
public CeTaskMessages ceTaskMessages = mock();
49+
public ConfigurationRepository configurationRepository = mock();
50+
51+
@Before
52+
public void setup() {
53+
54+
}
4755

4856
@Test
4957
public void execute_extensions() throws PreMeasuresComputationCheckException {
@@ -114,9 +122,9 @@ public void test_getDescription() {
114122

115123
private PreMeasuresComputationChecksStep newStep(PreMeasuresComputationCheck... preMeasuresComputationChecks) {
116124
if (preMeasuresComputationChecks.length == 0) {
117-
return new PreMeasuresComputationChecksStep(analysisMetadataHolder, ceTaskMessages);
125+
return new PreMeasuresComputationChecksStep(analysisMetadataHolder, ceTaskMessages, configurationRepository);
118126
}
119-
return new PreMeasuresComputationChecksStep(analysisMetadataHolder, ceTaskMessages, preMeasuresComputationChecks);
127+
return new PreMeasuresComputationChecksStep(analysisMetadataHolder, ceTaskMessages, configurationRepository, preMeasuresComputationChecks);
120128
}
121129

122130
private void mockBranch(String branchName) {

server/sonar-db-dao/src/it/java/org/sonar/db/property/PropertiesDaoIT.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,8 +446,8 @@ public void selectGlobalProperties() {
446446
insertProperty("global.two", "two", null, null, null, null, null);
447447

448448
List<PropertyDto> properties = underTest.selectGlobalProperties(db.getSession());
449-
assertThat(properties.size())
450-
.isEqualTo(2);
449+
assertThat(properties)
450+
.hasSize(2);
451451

452452
assertThat(findByKey(properties, "global.one"))
453453
.extracting(PropertyDto::getKey, PropertyDto::getEntityUuid, PropertyDto::getUserUuid, PropertyDto::getValue)
@@ -535,6 +535,10 @@ public void selectProjectProperty() {
535535
assertThat(property)
536536
.extracting(PropertyDto::getKey, PropertyDto::getEntityUuid, PropertyDto::getUserUuid, PropertyDto::getValue)
537537
.containsExactly("project.one", "uuid10", null, "one");
538+
539+
assertThat(underTest.selectProjectProperty("uuid10", "project.one"))
540+
.isPresent()
541+
.contains(property);
538542
}
539543

540544
@Test

server/sonar-db-dao/src/main/java/org/sonar/db/property/PropertiesDao.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Collection;
2828
import java.util.Collections;
2929
import java.util.List;
30+
import java.util.Optional;
3031
import java.util.Set;
3132
import javax.annotation.CheckForNull;
3233
import javax.annotation.Nullable;
@@ -136,6 +137,12 @@ public PropertyDto selectProjectProperty(DbSession dbSession, String projectUuid
136137
return getMapper(dbSession).selectByKey(new PropertyDto().setKey(propertyKey).setEntityUuid(projectUuid));
137138
}
138139

140+
public Optional<PropertyDto> selectProjectProperty(String projectUuid, String propertyKey) {
141+
try (DbSession session = mybatis.openSession(false)) {
142+
return Optional.ofNullable(selectProjectProperty(session, projectUuid, propertyKey));
143+
}
144+
}
145+
139146
public List<PropertyDto> selectByQuery(PropertyQuery query, DbSession session) {
140147
return getMapper(session).selectByQuery(query);
141148
}

0 commit comments

Comments
 (0)