Ignore own comments when determining if feedback has been provided

This commit is contained in:
Andy Wilkinson
2015-12-09 17:38:12 +00:00
parent a4266ef86c
commit 8519bc4a78
3 changed files with 22 additions and 3 deletions

View File

@@ -38,6 +38,7 @@ class FeedbackConfiguration {
GitHubProperties githubProperties, FeedbackProperties feedbackProperties) {
return new FeedbackIssueListener(gitHub, feedbackProperties.getRequiredLabel(),
githubProperties.getRepository().getCollaborators(),
githubProperties.getCredentials().getUsername(),
new StandardFeedbackListener(gitHub,
feedbackProperties.getProvidedLabel(),
feedbackProperties.getRequiredLabel(),

View File

@@ -17,6 +17,7 @@
package io.spring.issuebot.feedback;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
import io.spring.issuebot.IssueListener;
@@ -43,10 +44,12 @@ final class FeedbackIssueListener implements IssueListener {
private final FeedbackListener feedbackListener;
FeedbackIssueListener(GitHubOperations gitHub, String labelName,
List<String> collaborators, FeedbackListener feedbackListener) {
List<String> collaborators, String username,
FeedbackListener feedbackListener) {
this.gitHub = gitHub;
this.labelName = labelName;
this.collaborators = collaborators;
this.collaborators = new ArrayList<>(collaborators);
this.collaborators.add(username);
this.feedbackListener = feedbackListener;
}

View File

@@ -48,7 +48,7 @@ public class FeedbackIssueListenerTests {
private final FeedbackListener feedbackListener = mock(FeedbackListener.class);
private final IssueListener listener = new FeedbackIssueListener(this.gitHub,
"required", Arrays.asList("Amy", "Brian"), this.feedbackListener);
"required", Arrays.asList("Amy", "Brian"), "IssueBot", this.feedbackListener);
@Test
public void pullRequestsAreIgnored() {
@@ -123,6 +123,21 @@ public class FeedbackIssueListenerTests {
verify(this.feedbackListener).feedbackRequired(issue, requestTime);
}
@Test
public void feedbackRequiredAfterCommentFromIssueBot() {
Issue issue = new Issue(null, null, null, null, null,
Arrays.asList(new Label("required")), null, null);
OffsetDateTime requestTime = OffsetDateTime.now().minusDays(1);
given(this.gitHub.getEvents(issue)).willReturn(new StandardPage<>(
Arrays.asList(new Event("labeled", requestTime, new Label("required"))),
() -> null));
given(this.gitHub.getComments(issue)).willReturn(new StandardPage<>(
Arrays.asList(new Comment(new User("IssueBot"), OffsetDateTime.now())),
() -> null));
this.listener.onOpenIssue(issue);
verify(this.feedbackListener).feedbackRequired(issue, requestTime);
}
@Test
public void issueWithNoMatchingLabeledEventIsIgnored() {
Issue issue = new Issue(null, null, null, null, null,