Skip to content

Commit

Permalink
fix: add changes after review comment, remove unnecessary check
Browse files Browse the repository at this point in the history
Signed-off-by: Mykola Rudyk <[email protected]>
  • Loading branch information
m-rudyk committed Feb 15, 2024
1 parent 04b4d6b commit 88ec88d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 58 deletions.
57 changes: 16 additions & 41 deletions src/main/java/com/lpvs/service/LPVSQueueService.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.util.*;
import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;
Expand Down Expand Up @@ -146,40 +147,7 @@ public BlockingDeque<LPVSQueue> getQueue() {
public void checkForQueue() throws InterruptedException {
log.debug("Checking for previous queue");
List<LPVSQueue> webhookConfigList = queueRepository.getQueueList();
if (webhookConfigList.size() > 0) {
LPVSQueue webhookConfig = getLatestScan(webhookConfigList);
webhookConfig.setAttempts(webhookConfig.getAttempts() + 1);
queueRepository.save(webhookConfig);
}
for (LPVSQueue webhook : webhookConfigList) {
log.info("PROCESSING WebHook id = " + webhook.getId());
if (webhook.getAttempts() > maxAttempts) {
LPVSPullRequest pullRequest = new LPVSPullRequest();
pullRequest.setPullRequestUrl(webhook.getPullRequestUrl());
pullRequest.setUser(webhook.getUserId());
pullRequest.setPullRequestFilesUrl(webhook.getPullRequestFilesUrl());
pullRequest.setRepositoryName(
LPVSWebhookUtil.getRepositoryOrganization(webhook)
+ "/"
+ LPVSWebhookUtil.getRepositoryName(webhook));
pullRequest.setDate(webhook.getDate());
pullRequest.setStatus(LPVSPullRequestStatus.NO_ACCESS.toString());
pullRequest.setPullRequestHead(webhook.getPullRequestHead());
pullRequest.setPullRequestBase(webhook.getPullRequestBase());
pullRequest.setSender(webhook.getSender());
pullRequest = lpvsPullRequestRepository.saveAndFlush(pullRequest);

if (webhook.getUserId().equals("GitHub hook")) {
gitHubService.setErrorCheck(webhook);
}
queueRepository.deleteById(webhook.getId());
log.info(
"Webhook id = "
+ webhook.getId()
+ " is deleted. Details on PR #"
+ pullRequest.getId());
continue;
}
log.info("Add WebHook id = " + webhook.getId() + " to the queue.");
QUEUE.putFirst(webhook);
}
Expand Down Expand Up @@ -210,8 +178,13 @@ public LPVSQueue getLatestScan(List<LPVSQueue> webhookConfigList) {
public void processWebHook(LPVSQueue webhookConfig) {
LPVSPullRequest pullRequest = new LPVSPullRequest();
try {
log.info("GitHub queue processing...");
log.debug(webhookConfig.toString());
log.info(
"Processing webhook ID: "
+ webhookConfig.getId()
+ ", attempt: "
+ webhookConfig.getAttempts()
+ " for PR: "
+ webhookConfig.getPullRequestUrl());

String filePath = gitHubService.getPullRequestFiles(webhookConfig);

Expand Down Expand Up @@ -258,22 +231,19 @@ public void processWebHook(LPVSQueue webhookConfig) {
log.debug("Creating comment");
gitHubService.commentResults(webhookConfig, files, detectedConflicts, pullRequest);
log.debug("Results posted on GitHub");
delete(webhookConfig);
} else {
log.warn("Files are not found. Probably pull request is not exists.");
gitHubService.commentResults(webhookConfig, null, null, pullRequest);
delete(webhookConfig);
throw new Exception(
"Files are not found. Probably pull request does not exist. Terminating.");
}
delete(webhookConfig);
} catch (Exception | Error e) {
pullRequest.setStatus(LPVSPullRequestStatus.INTERNAL_ERROR.toString());
pullRequest = lpvsPullRequestRepository.saveAndFlush(pullRequest);
log.error("Can't authorize commentResults() " + e);
e.printStackTrace();
log.error("Can't authorize commentResults() " + e.getMessage());
int currentAttempts = webhookConfig.getAttempts();
if (currentAttempts < maxAttempts) {
webhookConfig.setAttempts(currentAttempts++);
webhookConfig.setAttempts(currentAttempts + 1);
try {
addFirst(webhookConfig);
} catch (InterruptedException e1) {
Expand All @@ -286,6 +256,11 @@ public void processWebHook(LPVSQueue webhookConfig) {
+ pullRequest.getId()
+ " "
+ pullRequest.getPullRequestUrl());
try {
gitHubService.commentResults(webhookConfig, null, null, pullRequest);
} catch (IOException e1) {
log.warn("Failed to post FAIL result " + e.getMessage());
}
delete(webhookConfig);
}
}
Expand Down
19 changes: 2 additions & 17 deletions src/test/java/com/lpvs/service/LPVSQueueServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,6 @@ public void testProcessWebHook__NoPRDownloaded() throws IOException {
queueService.processWebHook(webhookConfig);

verify(mockGitHubService, times(1)).getPullRequestFiles(webhookConfig);
verify(mockGitHubService, times(1))
.commentResults(eq(webhookConfig), any(), any(), eq(lpvsPullRequest));

verifyNoMoreInteractions(mockGitHubService);
verifyNoMoreInteractions(mockDetectService);
Expand All @@ -162,6 +160,8 @@ public void testProcessWebHook__NoPRDownloaded() throws IOException {
queueService.processWebHook(webhookConfig);

verify(mockGitHubService, times(2)).getPullRequestFiles(webhookConfig);
verify(mockGitHubService, times(1))
.commentResults(eq(webhookConfig), any(), any(), eq(lpvsPullRequest));
}
}

Expand Down Expand Up @@ -841,26 +841,11 @@ void setUp() {

@Test
public void testCheckForQueue() {
LPVSQueue webhookConfig = new LPVSQueue();
webhookConfig.setAttempts(0);
webhookConfig.setDate(new Date());
when(mocked_queueRepository.getQueueList()).thenReturn(List.of(webhookConfig));
assertDoesNotThrow(() -> queueService.checkForQueue());
verify(mocked_queueRepository).save(webhookConfig);
}

@Test
public void testCheckForQueue__Alternative() {
LPVSQueue webhookConfig = new LPVSQueue();
webhookConfig.setAttempts(100);
webhookConfig.setDate(new Date());
webhookConfig.setUserId("id");
webhookConfig.setRepositoryUrl("https://github.com/Samsung/LPVS");
when(mocked_queueRepository.getQueueList()).thenReturn(List.of(webhookConfig));
when(mocked_lpvsPullRequestRepository.saveAndFlush(Mockito.any(LPVSPullRequest.class)))
.thenAnswer(i -> i.getArguments()[0]);
assertDoesNotThrow(() -> queueService.checkForQueue());
verify(mocked_queueRepository).save(webhookConfig);
}

@Test
Expand Down

0 comments on commit 88ec88d

Please sign in to comment.