Ignore own comments when determining if feedback has been provided
This commit is contained in:
@@ -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(),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user