Restructure code to make it less triage-specific

This commit is contained in:
Andy Wilkinson
2015-12-07 15:38:16 +00:00
parent c0c4e2d901
commit d19f043c41
36 changed files with 414 additions and 438 deletions

View File

@@ -16,13 +16,14 @@
package io.spring.issuebot.triage;
import java.util.Arrays;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import io.spring.issuebot.github.GitHubTemplate;
import io.spring.issuebot.github.RegexLinkParser;
import io.spring.issuebot.triage.filter.StandardTriageFilters;
import io.spring.issuebot.github.GitHubOperations;
/**
* Central configuration for the beans involved in identifying issues that require triage.
@@ -31,39 +32,20 @@ import io.spring.issuebot.triage.filter.StandardTriageFilters;
*/
@Configuration
@EnableScheduling
@EnableConfigurationProperties(TriageProperties.class)
class TriageConfiguration {
@Bean
TriageProperties triageProperties() {
return new TriageProperties();
TriageIssueListener triageIssueListener(GitHubOperations gitHubOperations,
TriageProperties triageProperties) {
return new TriageIssueListener(
Arrays.asList(
new OpenedByCollaboratorTriageFilter(
triageProperties.getCollaborators()),
new LabelledTriageFilter(), new MilestoneAppliedTriageFilter(),
new CommentedByCollaboratorTriageFilter(
triageProperties.getCollaborators(), gitHubOperations)),
new LabelApplyingTriageListener(gitHubOperations,
triageProperties.getLabel()));
}
@Bean
LabelApplyingTriageListener triageListener() {
return new LabelApplyingTriageListener(gitHubTemplate());
}
@Bean
RepositoryMonitor repositoryMonitor() {
return new RepositoryMonitor(gitHubTemplate(), triageFilters(), triageListener(),
triageProperties().getRepositories());
}
@Bean
GitHubTemplate gitHubTemplate() {
TriageProperties triageProperties = triageProperties();
return new GitHubTemplate(triageProperties.getUsername(),
triageProperties.getPassword(), linkParser());
}
@Bean
StandardTriageFilters triageFilters() {
return new StandardTriageFilters(gitHubTemplate());
}
@Bean
RegexLinkParser linkParser() {
return new RegexLinkParser();
}
}