Удаление потерянных (удаленных) ПР
This commit is contained in:
parent
5b96965518
commit
4b7b14f6df
8
pom.xml
8
pom.xml
@ -30,12 +30,6 @@
|
|||||||
<artifactId>spring-boot-starter</artifactId>
|
<artifactId>spring-boot-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- <dependency>-->
|
|
||||||
<!-- <groupId>com.google.code.gson</groupId>-->
|
|
||||||
<!-- <artifactId>gson</artifactId>-->
|
|
||||||
<!-- <version>2.8.5</version>-->
|
|
||||||
<!-- </dependency>-->
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-devtools</artifactId>
|
<artifactId>spring-boot-devtools</artifactId>
|
||||||
@ -46,7 +40,7 @@
|
|||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- https://mvnrepository.com/artifact/org.liquibase/liquibase-core -->
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.liquibase</groupId>
|
<groupId>org.liquibase</groupId>
|
||||||
<artifactId>liquibase-core</artifactId>
|
<artifactId>liquibase-core</artifactId>
|
||||||
|
@ -13,14 +13,8 @@ public class AppConfig {
|
|||||||
@Bean
|
@Bean
|
||||||
public TaskScheduler taskScheduler() {
|
public TaskScheduler taskScheduler() {
|
||||||
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
|
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
|
||||||
taskScheduler.setPoolSize(6);
|
taskScheduler.setPoolSize(5);
|
||||||
return taskScheduler;
|
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 org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -25,4 +26,10 @@ public interface PullRequestsRepository extends JpaRepository<PullRequest, Long>
|
|||||||
|
|
||||||
void deleteAllByIdIn(Collection<Long> id);
|
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;
|
//package com.tsc.bitbucketbot.scheduler;
|
||||||
//
|
//
|
||||||
|
//import com.tsc.bitbucketbot.domain.entity.PullRequest;
|
||||||
//import com.tsc.bitbucketbot.domain.entity.User;
|
//import com.tsc.bitbucketbot.domain.entity.User;
|
||||||
|
//import com.tsc.bitbucketbot.service.PullRequestsService;
|
||||||
//import com.tsc.bitbucketbot.service.UserService;
|
//import com.tsc.bitbucketbot.service.UserService;
|
||||||
//import lombok.RequiredArgsConstructor;
|
//import lombok.RequiredArgsConstructor;
|
||||||
//import org.springframework.scheduling.annotation.Scheduled;
|
//import org.springframework.scheduling.annotation.Scheduled;
|
||||||
@ -13,10 +15,14 @@
|
|||||||
//public class SchedulerNotification {
|
//public class SchedulerNotification {
|
||||||
//
|
//
|
||||||
// private final UserService userService;
|
// 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() {
|
// public void goodMorning() {
|
||||||
// List<User> users = userService.getAllRegister();
|
// 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 org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -47,7 +48,17 @@ public class SchedulerPullRequest {
|
|||||||
private final BitbucketConfig bitbucketConfig;
|
private final BitbucketConfig bitbucketConfig;
|
||||||
|
|
||||||
@Scheduled(fixedRate = 30000)
|
@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();
|
final List<User> users = userService.getAllRegister();
|
||||||
for (User user : users) {
|
for (User user : users) {
|
||||||
Optional<PullRequestSheetJson> sheetJson = Utils.urlToJson(bitbucketConfig.getUrlPullRequestClose(), user.getToken(), PullRequestSheetJson.class);
|
Optional<PullRequestSheetJson> sheetJson = Utils.urlToJson(bitbucketConfig.getUrlPullRequestClose(), user.getToken(), PullRequestSheetJson.class);
|
||||||
@ -96,9 +107,9 @@ public class SchedulerPullRequest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(fixedRate = 30000)
|
private Set<Long> checkOpenPullRequest() {
|
||||||
public void checkOldPullRequest() {
|
|
||||||
final List<User> users = userService.getAllRegister();
|
final List<User> users = userService.getAllRegister();
|
||||||
|
final Set<Long> ids = new HashSet<>();
|
||||||
for (User user : users) {
|
for (User user : users) {
|
||||||
Optional<PullRequestSheetJson> sheetJson = Utils.urlToJson(bitbucketConfig.getUrlPullRequestOpen(), user.getToken(), PullRequestSheetJson.class);
|
Optional<PullRequestSheetJson> sheetJson = Utils.urlToJson(bitbucketConfig.getUrlPullRequestOpen(), user.getToken(), PullRequestSheetJson.class);
|
||||||
while (sheetJson.isPresent() && sheetJson.get().getValues() != null && !sheetJson.get().getValues().isEmpty()) {
|
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));
|
.collect(Collectors.toMap(PullRequest::getId, pullRequest -> pullRequest));
|
||||||
final Set<PullRequest> pullRequests = pullRequestsService.getAllById(existsPullRequestBitbucket.keySet());
|
final Set<PullRequest> pullRequests = pullRequestsService.getAllById(existsPullRequestBitbucket.keySet());
|
||||||
if (!existsPullRequestBitbucket.isEmpty() && !pullRequests.isEmpty()) {
|
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) {
|
if (pullRequestBitbucketSheet.getNextPageStart() != null) {
|
||||||
@ -126,23 +142,19 @@ public class SchedulerPullRequest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
private List<PullRequest> processingUpdate(Map<Long, PullRequest> newPullRequests, Set<PullRequest> pullRequests) {
|
private void processingUpdate(Map<Long, PullRequest> newPullRequests, Set<PullRequest> pullRequests) {
|
||||||
List<PullRequest> updatePullRequest = new ArrayList<>();
|
|
||||||
for (PullRequest pullRequest : pullRequests) {
|
for (PullRequest pullRequest : pullRequests) {
|
||||||
PullRequest newPullRequest = newPullRequests.get(pullRequest.getId());
|
PullRequest newPullRequest = newPullRequests.get(pullRequest.getId());
|
||||||
@NonNull boolean author = processingAuthor(pullRequest, newPullRequest);
|
processingAuthor(pullRequest, newPullRequest);
|
||||||
@NonNull boolean reviewer = processingReviewer(pullRequest, newPullRequest);
|
processingReviewer(pullRequest, newPullRequest);
|
||||||
if (author || reviewer) {
|
|
||||||
updatePullRequest.add(newPullRequest);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return updatePullRequest;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean processingReviewer(PullRequest pullRequest, PullRequest newPullRequest) {
|
private void processingReviewer(PullRequest pullRequest, PullRequest newPullRequest) {
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
changeVersionPr(pullRequest, newPullRequest).ifPresent(stringBuilder::append);
|
changeVersionPr(pullRequest, newPullRequest).ifPresent(stringBuilder::append);
|
||||||
String message = stringBuilder.toString();
|
String message = stringBuilder.toString();
|
||||||
@ -161,13 +173,11 @@ public class SchedulerPullRequest {
|
|||||||
newPullRequest.getAuthor().getLogin()))
|
newPullRequest.getAuthor().getLogin()))
|
||||||
.build())
|
.build())
|
||||||
);
|
);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
private boolean processingAuthor(PullRequest pullRequest, PullRequest newPullRequest) {
|
private void processingAuthor(PullRequest pullRequest, PullRequest newPullRequest) {
|
||||||
final User author = pullRequest.getAuthor();
|
final User author = pullRequest.getAuthor();
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
if (author.getTelegramId() != null) {
|
if (author.getTelegramId() != null) {
|
||||||
@ -176,10 +186,8 @@ public class SchedulerPullRequest {
|
|||||||
final String message = stringBuilder.toString();
|
final String message = stringBuilder.toString();
|
||||||
if (!Message.EMPTY.equalsIgnoreCase(message)) {
|
if (!Message.EMPTY.equalsIgnoreCase(message)) {
|
||||||
messageSendService.add(MessageSend.builder().message(message).telegramId(author.getTelegramId()).build());
|
messageSendService.add(MessageSend.builder().message(message).telegramId(author.getTelegramId()).build());
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@ -29,4 +29,8 @@ public interface PullRequestsService {
|
|||||||
|
|
||||||
void deleteAll(@NonNull Set<Long> id);
|
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);
|
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