diff --git a/pom.xml b/pom.xml
index 1940351..bb8fa1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,13 +14,13 @@
org.springframework.boot
spring-boot-starter-parent
- 2.1.1.RELEASE
+ 3.1.4
UTF-8
- 1.8
+ 17
@@ -29,8 +29,8 @@
jackson-datatype-jsr310
- org.apache.httpcomponents
- httpclient
+ org.apache.httpcomponents.client5
+ httpclient5
org.springframework.boot
@@ -58,7 +58,7 @@
io.spring.javaformat
spring-javaformat-maven-plugin
- 0.0.6
+ 0.0.39
validate
@@ -103,7 +103,7 @@
org.jacoco
jacoco-maven-plugin
- 0.7.5.201505241946
+ 0.8.10
jacoco-initialize
diff --git a/src/main/java/io/spring/issuebot/IssueBotApplication.java b/src/main/java/io/spring/issuebot/IssueBotApplication.java
index fb279d9..6c1ddf6 100644
--- a/src/main/java/io/spring/issuebot/IssueBotApplication.java
+++ b/src/main/java/io/spring/issuebot/IssueBotApplication.java
@@ -49,11 +49,9 @@ public class IssueBotApplication {
}
@Bean
- RepositoryMonitor repositoryMonitor(GitHubOperations gitHub,
- MonitoringProperties monitoringProperties,
+ RepositoryMonitor repositoryMonitor(GitHubOperations gitHub, MonitoringProperties monitoringProperties,
List issueListeners) {
- return new RepositoryMonitor(gitHub, monitoringProperties.getRepositories(),
- issueListeners);
+ return new RepositoryMonitor(gitHub, monitoringProperties.getRepositories(), issueListeners);
}
}
diff --git a/src/main/java/io/spring/issuebot/RepositoryMonitor.java b/src/main/java/io/spring/issuebot/RepositoryMonitor.java
index 0ddf8e7..47293b8 100644
--- a/src/main/java/io/spring/issuebot/RepositoryMonitor.java
+++ b/src/main/java/io/spring/issuebot/RepositoryMonitor.java
@@ -59,8 +59,7 @@ class RepositoryMonitor {
private void monitor(Repository repository) {
log.info("Monitoring {}/{}", repository.getOrganization(), repository.getName());
try {
- Page page = this.gitHub.getIssues(repository.getOrganization(),
- repository.getName());
+ Page page = this.gitHub.getIssues(repository.getOrganization(), repository.getName());
while (page != null) {
for (Issue issue : page.getContent()) {
for (MultiRepositoryIssueListener issueListener : this.issueListeners) {
@@ -68,8 +67,7 @@ class RepositoryMonitor {
issueListener.onOpenIssue(repository, issue);
}
catch (Exception ex) {
- log.warn("Listener '{}' failed when handling issue '{}'",
- issueListener, issue, ex);
+ log.warn("Listener '{}' failed when handling issue '{}'", issueListener, issue, ex);
}
}
}
@@ -77,11 +75,10 @@ class RepositoryMonitor {
}
}
catch (Exception ex) {
- log.warn("A failure occurred during monitoring of {}/{}",
- repository.getOrganization(), repository.getName(), ex);
+ log.warn("A failure occurred during monitoring of {}/{}", repository.getOrganization(),
+ repository.getName(), ex);
}
- log.info("Monitoring of {}/{} completed", repository.getOrganization(),
- repository.getName());
+ log.info("Monitoring of {}/{} completed", repository.getOrganization(), repository.getName());
}
}
diff --git a/src/main/java/io/spring/issuebot/feedback/FeedbackConfiguration.java b/src/main/java/io/spring/issuebot/feedback/FeedbackConfiguration.java
index 46e81f1..19eafb8 100644
--- a/src/main/java/io/spring/issuebot/feedback/FeedbackConfiguration.java
+++ b/src/main/java/io/spring/issuebot/feedback/FeedbackConfiguration.java
@@ -44,29 +44,23 @@ import org.springframework.context.annotation.Configuration;
class FeedbackConfiguration {
@Bean
- MultiRepositoryIssueListener feedbackIssueListener(
- MonitoringProperties monitoringProperties, GitHubOperations gitHub,
- GitHubProperties githubProperties, FeedbackProperties feedbackProperties) {
+ MultiRepositoryIssueListener feedbackIssueListener(MonitoringProperties monitoringProperties,
+ GitHubOperations gitHub, GitHubProperties githubProperties, FeedbackProperties feedbackProperties) {
Map delegates = monitoringProperties.getRepositories()
- .stream()
- .collect(Collectors.toMap(Function.identity(),
- (repository) -> createListener(repository, gitHub,
- githubProperties, feedbackProperties)));
+ .stream()
+ .collect(Collectors.toMap(Function.identity(),
+ (repository) -> createListener(repository, gitHub, githubProperties, feedbackProperties)));
return new RoutingMultiRepositoryIssueListener(delegates);
}
- private FeedbackIssueListener createListener(Repository repository,
- GitHubOperations gitHub, GitHubProperties githubProperties,
- FeedbackProperties feedbackProperties) {
- return new FeedbackIssueListener(gitHub, feedbackProperties.getRequiredLabel(),
- repository.getCollaborators(),
+ private FeedbackIssueListener createListener(Repository repository, GitHubOperations gitHub,
+ GitHubProperties githubProperties, FeedbackProperties feedbackProperties) {
+ return new FeedbackIssueListener(gitHub, feedbackProperties.getRequiredLabel(), repository.getCollaborators(),
githubProperties.getCredentials().getUsername(),
- new StandardFeedbackListener(gitHub,
- feedbackProperties.getProvidedLabel(),
- feedbackProperties.getRequiredLabel(),
- feedbackProperties.getReminderLabel(),
- feedbackProperties.getReminderComment(),
- feedbackProperties.getCloseComment(), Collections.emptyList()));
+ new StandardFeedbackListener(gitHub, feedbackProperties.getProvidedLabel(),
+ feedbackProperties.getRequiredLabel(), feedbackProperties.getReminderLabel(),
+ feedbackProperties.getReminderComment(), feedbackProperties.getCloseComment(),
+ Collections.emptyList()));
}
}
diff --git a/src/main/java/io/spring/issuebot/feedback/FeedbackIssueListener.java b/src/main/java/io/spring/issuebot/feedback/FeedbackIssueListener.java
index a8be59c..ed23214 100644
--- a/src/main/java/io/spring/issuebot/feedback/FeedbackIssueListener.java
+++ b/src/main/java/io/spring/issuebot/feedback/FeedbackIssueListener.java
@@ -43,8 +43,7 @@ final class FeedbackIssueListener implements IssueListener {
private final FeedbackListener feedbackListener;
- FeedbackIssueListener(GitHubOperations gitHub, String labelName,
- List collaborators, String username,
+ FeedbackIssueListener(GitHubOperations gitHub, String labelName, List collaborators, String username,
FeedbackListener feedbackListener) {
this.gitHub = gitHub;
this.labelName = labelName;
@@ -90,8 +89,7 @@ final class FeedbackIssueListener implements IssueListener {
Page page = this.gitHub.getEvents(issue);
while (page != null) {
for (Event event : page.getContent()) {
- if (Event.Type.LABELED.equals(event.getType())
- && this.labelName.equals(event.getLabel().getName())) {
+ if (Event.Type.LABELED.equals(event.getType()) && this.labelName.equals(event.getLabel().getName())) {
createdAt = event.getCreationTime();
}
}
diff --git a/src/main/java/io/spring/issuebot/feedback/StandardFeedbackListener.java b/src/main/java/io/spring/issuebot/feedback/StandardFeedbackListener.java
index dd047f1..3dc78db 100644
--- a/src/main/java/io/spring/issuebot/feedback/StandardFeedbackListener.java
+++ b/src/main/java/io/spring/issuebot/feedback/StandardFeedbackListener.java
@@ -45,9 +45,8 @@ final class StandardFeedbackListener implements FeedbackListener {
private final List issueListeners;
- StandardFeedbackListener(GitHubOperations gitHub, String providedLabel,
- String requiredLabel, String reminderLabel, String reminderComment,
- String closeComment, List issueListeners) {
+ StandardFeedbackListener(GitHubOperations gitHub, String providedLabel, String requiredLabel, String reminderLabel,
+ String reminderComment, String closeComment, List issueListeners) {
this.gitHub = gitHub;
this.providedLabel = providedLabel;
this.requiredLabel = requiredLabel;
diff --git a/src/main/java/io/spring/issuebot/github/Comment.java b/src/main/java/io/spring/issuebot/github/Comment.java
index d7a697d..ad0b300 100644
--- a/src/main/java/io/spring/issuebot/github/Comment.java
+++ b/src/main/java/io/spring/issuebot/github/Comment.java
@@ -39,8 +39,7 @@ public final class Comment {
* @param creationTime the creation time
*/
@JsonCreator
- public Comment(@JsonProperty("user") User user,
- @JsonProperty("created_at") OffsetDateTime creationTime) {
+ public Comment(@JsonProperty("user") User user, @JsonProperty("created_at") OffsetDateTime creationTime) {
this.user = user;
this.creationTime = creationTime;
}
diff --git a/src/main/java/io/spring/issuebot/github/Event.java b/src/main/java/io/spring/issuebot/github/Event.java
index f175bcd..c7570db 100644
--- a/src/main/java/io/spring/issuebot/github/Event.java
+++ b/src/main/java/io/spring/issuebot/github/Event.java
@@ -45,8 +45,7 @@ public class Event {
* @param label the label associated with the event
*/
@JsonCreator
- public Event(@JsonProperty("event") String type,
- @JsonProperty("created_at") OffsetDateTime creationTime,
+ public Event(@JsonProperty("event") String type, @JsonProperty("created_at") OffsetDateTime creationTime,
@JsonProperty("label") Label label) {
this.type = Type.valueFrom(type);
this.creationTime = creationTime;
diff --git a/src/main/java/io/spring/issuebot/github/GitHubTemplate.java b/src/main/java/io/spring/issuebot/github/GitHubTemplate.java
index e5d2bb2..aee8260 100644
--- a/src/main/java/io/spring/issuebot/github/GitHubTemplate.java
+++ b/src/main/java/io/spring/issuebot/github/GitHubTemplate.java
@@ -28,6 +28,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.hc.client5.http.utils.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,7 +45,6 @@ import org.springframework.http.client.ClientHttpResponse;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-import org.springframework.util.Base64Utils;
import org.springframework.util.StreamUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.client.DefaultResponseErrorHandler;
@@ -86,31 +86,24 @@ public class GitHubTemplate implements GitHubOperations {
rest.setErrorHandler(new DefaultResponseErrorHandler() {
@Override
public void handleError(ClientHttpResponse response) throws IOException {
- if (response.getStatusCode() == HttpStatus.FORBIDDEN && response
- .getHeaders().getFirst("X-RateLimit-Remaining").equals("0")) {
- throw new IllegalStateException(
- "Rate limit exceeded. Limit will reset at "
- + new Date(Long
- .valueOf(response.getHeaders()
- .getFirst("X-RateLimit-Reset"))
- * 1000));
+ if (response.getStatusCode() == HttpStatus.FORBIDDEN
+ && response.getHeaders().getFirst("X-RateLimit-Remaining").equals("0")) {
+ throw new IllegalStateException("Rate limit exceeded. Limit will reset at "
+ + new Date(Long.valueOf(response.getHeaders().getFirst("X-RateLimit-Reset")) * 1000));
}
}
});
BufferingClientHttpRequestFactory bufferingClient = new BufferingClientHttpRequestFactory(
new HttpComponentsClientHttpRequestFactory());
rest.setRequestFactory(bufferingClient);
- rest.setInterceptors(Collections
- .singletonList(new BasicAuthorizationInterceptor(username, password)));
- rest.setMessageConverters(
- Arrays.asList(new ErrorLoggingMappingJackson2HttpMessageConverter()));
+ rest.setInterceptors(Collections.singletonList(new BasicAuthorizationInterceptor(username, password)));
+ rest.setMessageConverters(Arrays.asList(new ErrorLoggingMappingJackson2HttpMessageConverter()));
return rest;
}
@Override
public Page getIssues(String organization, String repository) {
- String url = "https://api.github.com/repos/" + organization + "/" + repository
- + "/issues";
+ String url = "https://api.github.com/repos/" + organization + "/" + repository + "/issues";
return getPage(url, Issue[].class);
}
@@ -129,8 +122,7 @@ public class GitHubTemplate implements GitHubOperations {
return null;
}
ResponseEntity contents = this.rest.getForEntity(url, type);
- return new StandardPage<>(Arrays.asList(contents.getBody()),
- () -> getPage(getNextUrl(contents), type));
+ return new StandardPage<>(Arrays.asList(contents.getBody()), () -> getPage(getNextUrl(contents), type));
}
private String getNextUrl(ResponseEntity> response) {
@@ -141,16 +133,13 @@ public class GitHubTemplate implements GitHubOperations {
public Issue addLabel(Issue issue, String labelName) {
URI uri = URI.create(issue.getLabelsUrl().replace("{/name}", ""));
log.info("Adding label {} to {}", labelName, uri);
- ResponseEntity