diff --git a/lib/checkPullRequestReview.js b/lib/checkPullRequestReview.js index 10178a66..424bbc53 100644 --- a/lib/checkPullRequestReview.js +++ b/lib/checkPullRequestReview.js @@ -361,7 +361,7 @@ const handleResponseToReview = async (context) => { (assignee) => assignee.login ); const unassignedUsers = usersInComment.filter( - (user) => !assignees.includes(user) + (user) => !assignees.includes(user) && user !== commenter ); if (unassignedUsers.length === 0) { diff --git a/spec/checkPullRequestReviewSpec.js b/spec/checkPullRequestReviewSpec.js index a9a1ef10..1531ab54 100644 --- a/spec/checkPullRequestReviewSpec.js +++ b/spec/checkPullRequestReviewSpec.js @@ -1627,5 +1627,29 @@ describe('Pull Request Review Module', () => { commentPayloadData.payload.comment.body = initialCommentBody; }); }); + + describe('when commenter self references in comment', () => { + const initialCommentBody = commentPayloadData.payload.comment.body; + beforeAll(() => { + commentPayloadData.payload.comment.body = ( + '@testuser @reviewer1 PTAL'); + }); + beforeEach(async () => { + await robot.receive(commentPayloadData); + }); + + it('should not assign commenter to the PR', () => { + expect(github.issues.addAssignees).toHaveBeenCalledWith({ + repo: commentPayloadData.payload.repository.name, + owner: commentPayloadData.payload.repository.owner.login, + issue_number: commentPayloadData.payload.issue.number, + assignees: ['reviewer1'], + }); + }); + + afterAll(() => { + commentPayloadData.payload.comment.body = initialCommentBody; + }); + }); }); });