Skip to content

Commit

Permalink
SONAR-20582 make the gitlab vulnerability synchronization conditional…
Browse files Browse the repository at this point in the history
… on having sent a sast report to gitlab at least once.
  • Loading branch information
steve-marion-sonarsource authored and sonartech committed Feb 6, 2024
1 parent 846d00f commit 0606565
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import org.sonar.api.ExtensionPoint;
import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.api.config.Configuration;
import org.sonar.ce.task.projectanalysis.analysis.Branch;

/**
Expand All @@ -47,9 +48,10 @@ interface Context {

Branch getBranch();

Configuration getConfiguration();
}

class PreMeasuresComputationCheckException extends Exception {
class PreMeasuresComputationCheckException extends RuntimeException {
public PreMeasuresComputationCheckException(String message) {
super(message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@
*/
package org.sonar.ce.task.projectanalysis.measure;

import org.sonar.api.config.Configuration;
import org.sonar.api.utils.System2;
import org.sonar.ce.task.log.CeTaskMessages;
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolder;
import org.sonar.ce.task.projectanalysis.analysis.Branch;
import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
import org.sonar.ce.task.step.ComputationStep;
import org.sonar.db.dismissmessage.MessageType;

Expand All @@ -38,11 +40,15 @@ public class PreMeasuresComputationChecksStep implements ComputationStep {
private final AnalysisMetadataHolder analysisMetadataHolder;
private final PreMeasuresComputationCheck[] extensions;
private final CeTaskMessages ceTaskMessages;
private final ConfigurationRepository configurationRepository;


public PreMeasuresComputationChecksStep(AnalysisMetadataHolder analysisMetadataHolder, CeTaskMessages ceTaskMessages, PreMeasuresComputationCheck... extensions) {
public PreMeasuresComputationChecksStep(
AnalysisMetadataHolder analysisMetadataHolder, CeTaskMessages ceTaskMessages,
ConfigurationRepository configurationRepository, PreMeasuresComputationCheck... extensions) {
this.analysisMetadataHolder = analysisMetadataHolder;
this.ceTaskMessages = ceTaskMessages;
this.configurationRepository = configurationRepository;
this.extensions = extensions;
}

Expand Down Expand Up @@ -75,5 +81,10 @@ public Branch getBranch() {
return analysisMetadataHolder.getBranch();
}

@Override
public Configuration getConfiguration() {
return configurationRepository.getConfiguration();
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@
*/
package org.sonar.ce.task.projectanalysis.measure;

import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.InOrder;
import org.sonar.ce.task.log.CeTaskMessages;
import org.sonar.ce.task.projectanalysis.analysis.AnalysisMetadataHolderRule;
import org.sonar.ce.task.projectanalysis.analysis.Branch;
import org.sonar.ce.task.projectanalysis.component.ConfigurationRepository;
import org.sonar.ce.task.projectanalysis.measure.PreMeasuresComputationCheck.Context;
import org.sonar.ce.task.step.TestComputationStepContext;
import org.sonar.db.component.BranchType;
Expand All @@ -44,6 +46,12 @@ public class PreMeasuresComputationChecksStepTest {

public AnalysisMetadataHolderRule analysisMetadataHolder = mock();
public CeTaskMessages ceTaskMessages = mock();
public ConfigurationRepository configurationRepository = mock();

@Before
public void setup() {

}

@Test
public void execute_extensions() throws PreMeasuresComputationCheckException {
Expand Down Expand Up @@ -114,9 +122,9 @@ public void test_getDescription() {

private PreMeasuresComputationChecksStep newStep(PreMeasuresComputationCheck... preMeasuresComputationChecks) {
if (preMeasuresComputationChecks.length == 0) {
return new PreMeasuresComputationChecksStep(analysisMetadataHolder, ceTaskMessages);
return new PreMeasuresComputationChecksStep(analysisMetadataHolder, ceTaskMessages, configurationRepository);
}
return new PreMeasuresComputationChecksStep(analysisMetadataHolder, ceTaskMessages, preMeasuresComputationChecks);
return new PreMeasuresComputationChecksStep(analysisMetadataHolder, ceTaskMessages, configurationRepository, preMeasuresComputationChecks);
}

private void mockBranch(String branchName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -446,8 +446,8 @@ public void selectGlobalProperties() {
insertProperty("global.two", "two", null, null, null, null, null);

List<PropertyDto> properties = underTest.selectGlobalProperties(db.getSession());
assertThat(properties.size())
.isEqualTo(2);
assertThat(properties)
.hasSize(2);

assertThat(findByKey(properties, "global.one"))
.extracting(PropertyDto::getKey, PropertyDto::getEntityUuid, PropertyDto::getUserUuid, PropertyDto::getValue)
Expand Down Expand Up @@ -535,6 +535,10 @@ public void selectProjectProperty() {
assertThat(property)
.extracting(PropertyDto::getKey, PropertyDto::getEntityUuid, PropertyDto::getUserUuid, PropertyDto::getValue)
.containsExactly("project.one", "uuid10", null, "one");

assertThat(underTest.selectProjectProperty("uuid10", "project.one"))
.isPresent()
.contains(property);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -136,6 +137,12 @@ public PropertyDto selectProjectProperty(DbSession dbSession, String projectUuid
return getMapper(dbSession).selectByKey(new PropertyDto().setKey(propertyKey).setEntityUuid(projectUuid));
}

public Optional<PropertyDto> selectProjectProperty(String projectUuid, String propertyKey) {
try (DbSession session = mybatis.openSession(false)) {
return Optional.ofNullable(selectProjectProperty(session, projectUuid, propertyKey));
}
}

public List<PropertyDto> selectByQuery(PropertyQuery query, DbSession session) {
return getMapper(session).selectByQuery(query);
}
Expand Down

0 comments on commit 0606565

Please sign in to comment.