Удаление потерянных (удаленных) ПР
This commit is contained in:
parent
5b96965518
commit
4b7b14f6df
8
pom.xml
8
pom.xml
@ -30,12 +30,6 @@
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.google.code.gson</groupId>-->
|
||||
<!-- <artifactId>gson</artifactId>-->
|
||||
<!-- <version>2.8.5</version>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
@ -46,7 +40,7 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.liquibase/liquibase-core -->
|
||||
|
||||
<dependency>
|
||||
<groupId>org.liquibase</groupId>
|
||||
<artifactId>liquibase-core</artifactId>
|
||||
|
@ -13,14 +13,8 @@ public class AppConfig {
|
||||
@Bean
|
||||
public TaskScheduler taskScheduler() {
|
||||
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
|
||||
taskScheduler.setPoolSize(6);
|
||||
taskScheduler.setPoolSize(5);
|
||||
return taskScheduler;
|
||||
}
|
||||
|
||||
// @Bean
|
||||
// public ObjectMapper objectMapper(ObjectMapper objectMapper) {
|
||||
// objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
// return objectMapper;
|
||||
// }
|
||||
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
@ -25,4 +26,10 @@ public interface PullRequestsRepository extends JpaRepository<PullRequest, Long>
|
||||
|
||||
void deleteAllByIdIn(Collection<Long> id);
|
||||
|
||||
@Query("SELECT p FROM PullRequest p LEFT JOIN p.reviewers r WHERE r.user=:reviewer")
|
||||
List<PullRequest> findAllByReviewers(@Param("reviewer") String reviewer);
|
||||
|
||||
@Query("SELECT p.id from PullRequest p")
|
||||
Set<Long> getAllIds();
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
//package com.tsc.bitbucketbot.scheduler;
|
||||
//
|
||||
//import com.tsc.bitbucketbot.domain.entity.PullRequest;
|
||||
//import com.tsc.bitbucketbot.domain.entity.User;
|
||||
//import com.tsc.bitbucketbot.service.PullRequestsService;
|
||||
//import com.tsc.bitbucketbot.service.UserService;
|
||||
//import lombok.RequiredArgsConstructor;
|
||||
//import org.springframework.scheduling.annotation.Scheduled;
|
||||
@ -13,10 +15,14 @@
|
||||
//public class SchedulerNotification {
|
||||
//
|
||||
// private final UserService userService;
|
||||
// private final PullRequestsService pullRequestsService;
|
||||
//
|
||||
// @Scheduled(cron = "0 9 * * MON-FRI")
|
||||
//// @Scheduled(cron = "0 9 * * MON-FRI")
|
||||
// @Scheduled(fixedRate = 50000)
|
||||
// public void goodMorning() {
|
||||
// List<User> users = userService.getAllRegister();
|
||||
// List<PullRequest> mstruchkov = pullRequestsService.getAllByReviewer("mstruchkov");
|
||||
// System.out.println();
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
@ -24,6 +24,7 @@ import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
@ -47,7 +48,17 @@ public class SchedulerPullRequest {
|
||||
private final BitbucketConfig bitbucketConfig;
|
||||
|
||||
@Scheduled(fixedRate = 30000)
|
||||
public void checkClosePullRequest() {
|
||||
public void checkOldPullRequest() {
|
||||
Set<Long> existsId = pullRequestsService.getAllId();
|
||||
Set<Long> openId = checkOpenPullRequest();
|
||||
checkClosePullRequest();
|
||||
existsId.removeAll(openId);
|
||||
if (!existsId.isEmpty()) {
|
||||
pullRequestsService.deleteAll(existsId);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkClosePullRequest() {
|
||||
final List<User> users = userService.getAllRegister();
|
||||
for (User user : users) {
|
||||
Optional<PullRequestSheetJson> sheetJson = Utils.urlToJson(bitbucketConfig.getUrlPullRequestClose(), user.getToken(), PullRequestSheetJson.class);
|
||||
@ -96,9 +107,9 @@ public class SchedulerPullRequest {
|
||||
}
|
||||
}
|
||||
|
||||
@Scheduled(fixedRate = 30000)
|
||||
public void checkOldPullRequest() {
|
||||
private Set<Long> checkOpenPullRequest() {
|
||||
final List<User> users = userService.getAllRegister();
|
||||
final Set<Long> ids = new HashSet<>();
|
||||
for (User user : users) {
|
||||
Optional<PullRequestSheetJson> sheetJson = Utils.urlToJson(bitbucketConfig.getUrlPullRequestOpen(), user.getToken(), PullRequestSheetJson.class);
|
||||
while (sheetJson.isPresent() && sheetJson.get().getValues() != null && !sheetJson.get().getValues().isEmpty()) {
|
||||
@ -116,7 +127,12 @@ public class SchedulerPullRequest {
|
||||
.collect(Collectors.toMap(PullRequest::getId, pullRequest -> pullRequest));
|
||||
final Set<PullRequest> pullRequests = pullRequestsService.getAllById(existsPullRequestBitbucket.keySet());
|
||||
if (!existsPullRequestBitbucket.isEmpty() && !pullRequests.isEmpty()) {
|
||||
pullRequestsService.updateAll(processingUpdate(existsPullRequestBitbucket, pullRequests));
|
||||
processingUpdate(existsPullRequestBitbucket, pullRequests);
|
||||
ids.addAll(
|
||||
pullRequestsService.updateAll(existsPullRequestBitbucket.values()).stream()
|
||||
.map(PullRequest::getId)
|
||||
.collect(Collectors.toSet())
|
||||
);
|
||||
}
|
||||
|
||||
if (pullRequestBitbucketSheet.getNextPageStart() != null) {
|
||||
@ -126,23 +142,19 @@ public class SchedulerPullRequest {
|
||||
}
|
||||
}
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private List<PullRequest> processingUpdate(Map<Long, PullRequest> newPullRequests, Set<PullRequest> pullRequests) {
|
||||
List<PullRequest> updatePullRequest = new ArrayList<>();
|
||||
private void processingUpdate(Map<Long, PullRequest> newPullRequests, Set<PullRequest> pullRequests) {
|
||||
for (PullRequest pullRequest : pullRequests) {
|
||||
PullRequest newPullRequest = newPullRequests.get(pullRequest.getId());
|
||||
@NonNull boolean author = processingAuthor(pullRequest, newPullRequest);
|
||||
@NonNull boolean reviewer = processingReviewer(pullRequest, newPullRequest);
|
||||
if (author || reviewer) {
|
||||
updatePullRequest.add(newPullRequest);
|
||||
}
|
||||
processingAuthor(pullRequest, newPullRequest);
|
||||
processingReviewer(pullRequest, newPullRequest);
|
||||
}
|
||||
return updatePullRequest;
|
||||
}
|
||||
|
||||
private boolean processingReviewer(PullRequest pullRequest, PullRequest newPullRequest) {
|
||||
private void processingReviewer(PullRequest pullRequest, PullRequest newPullRequest) {
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
changeVersionPr(pullRequest, newPullRequest).ifPresent(stringBuilder::append);
|
||||
String message = stringBuilder.toString();
|
||||
@ -161,13 +173,11 @@ public class SchedulerPullRequest {
|
||||
newPullRequest.getAuthor().getLogin()))
|
||||
.build())
|
||||
);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private boolean processingAuthor(PullRequest pullRequest, PullRequest newPullRequest) {
|
||||
private void processingAuthor(PullRequest pullRequest, PullRequest newPullRequest) {
|
||||
final User author = pullRequest.getAuthor();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (author.getTelegramId() != null) {
|
||||
@ -176,10 +186,8 @@ public class SchedulerPullRequest {
|
||||
final String message = stringBuilder.toString();
|
||||
if (!Message.EMPTY.equalsIgnoreCase(message)) {
|
||||
messageSendService.add(MessageSend.builder().message(message).telegramId(author.getTelegramId()).build());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
|
@ -29,4 +29,8 @@ public interface PullRequestsService {
|
||||
|
||||
void deleteAll(@NonNull Set<Long> id);
|
||||
|
||||
List<PullRequest> getAllByReviewer(@NonNull String login);
|
||||
|
||||
Set<Long> getAllId();
|
||||
|
||||
}
|
||||
|
@ -60,4 +60,14 @@ public class PullRequestsServiceImpl implements PullRequestsService {
|
||||
pullRequestsRepository.deleteAllByIdIn(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PullRequest> getAllByReviewer(@NonNull String login) {
|
||||
return pullRequestsRepository.findAllByReviewers(login);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Long> getAllId() {
|
||||
return pullRequestsRepository.getAllIds();
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user