Skip to content
This repository has been archived by the owner on Oct 3, 2021. It is now read-only.

Commit

Permalink
Add support for multiple pull request decoration in mono repo
Browse files Browse the repository at this point in the history
If multiple micro-services are modified at once then only the final Sonarqube PR decoration appeared in the checks tab of Github. This change updates the name of the Status check to include the Sonarqube project name so that multiple checks can be attached to the one pull request.
  • Loading branch information
useful-devops-tools authored Jul 26, 2020
1 parent f624269 commit a606728
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,10 @@ public String getAnalysisProjectKey() {
return project.getKey();
}

public String getAnalysisProjectName() {
return project.getName();
}

public List<QualityGate.Condition> findFailedConditions() {
return qualityGate.getConditions().stream().filter(c -> c.getStatus() == QualityGate.EvaluationStatus.ERROR)
.collect(Collectors.toList());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ public DecorationResult createCheckRun(AnalysisDetails analysisDetails, AlmSetti

Map<String, Object> inputObjectArguments = new HashMap<>();
inputObjectArguments.put("repositoryId", repositoryAuthenticationToken.getRepositoryId());
inputObjectArguments.put("name", "Sonarqube Results");
inputObjectArguments.put("name", String.format("%s Sonarqube Results", analysisDetails.getAnalysisProjectName()));
inputObjectArguments.put("status", RequestableCheckStatusState.COMPLETED);
inputObjectArguments.put("conclusion", QualityGate.Status.OK == analysisDetails.getQualityGateStatus() ?
CheckConclusionState.SUCCESS : CheckConclusionState.FAILURE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,7 @@ private void createCheckRunHappyPath(QualityGate.Status status, String basePath,
when(analysisDetails.createAnalysisSummary(any())).thenReturn("dummy summary");
when(analysisDetails.getCommitSha()).thenReturn("commit SHA");
when(analysisDetails.getAnalysisProjectKey()).thenReturn("projectKey");
when(analysisDetails.getAnalysisProjectName()).thenReturn("projectName");
when(analysisDetails.getBranchName()).thenReturn("branchName");
when(analysisDetails.getAnalysisDate()).thenReturn(new Date(1234567890));
when(analysisDetails.getAnalysisId()).thenReturn("analysis ID");
Expand Down Expand Up @@ -486,7 +487,7 @@ private void createCheckRunHappyPath(QualityGate.Status status, String basePath,
assertThat(annotationArgumentCaptor.getValue()).isEqualTo(expectedAnnotationObjects);

verify(inputObjectBuilders.get(position + 1)).put(eq("repositoryId"), eq("repository ID"));
verify(inputObjectBuilders.get(position + 1)).put(eq("name"), eq("Sonarqube Results"));
verify(inputObjectBuilders.get(position + 1)).put(eq("name"), eq("projectName Sonarqube Results"));
verify(inputObjectBuilders.get(position + 1)).put(eq("headSha"), eq("commit SHA"));
verify(inputObjectBuilders.get(position + 1)).put(eq("status"), eq(RequestableCheckStatusState.COMPLETED));
verify(inputObjectBuilders.get(position + 1)).put(eq("conclusion"), eq(status == QualityGate.Status.OK ?
Expand Down

0 comments on commit a606728

Please sign in to comment.